Pregunta

son registros SSE compartidos o duplicadas entre los procesadores lógicos (hyper threading)? ¿Puedo esperar el mismo tipo de aumento de velocidad de paralelización para un programa pesado SSE como para un programa normal (Intel afirma que el 30% de los procesadores con hyper threading)?

¿Fue útil?

Solución

No está claro a mí de la documentación de Intel si los procesadores hyperthreading compartir el archivo de registro entre hilos o tienen dos diferentes (yo supongo que en realidad son distintos, ya que de lo contrario el tiempo de cambio de contexto entre hilos HT sería bastante altos, pero esto es puramente una suposición).

En cuanto al aumento de velocidad - que va a depender de su mezcla de instrucciones y programación. Recuerde que una CPU HT no tiene ningún recursos de ejecución adicionales (unidades ALU, carga / almacenamiento, etc.), la mejora del rendimiento se debe a una mejor utilización de los recursos, ya que el código típico, sobre todo en un procesador moderno, gasta una cantidad razonable de tiempo bloqueado en espera de cargas de memoria y tiendas para completar antes de la ejecución puede continuar. HT permite que estas cargas y tiendas para ser intercalados de manera que uno puestos de hilo en una lectura, el otro se puede cambiar y comenzar a utilizar los recursos de ejecución que previamente habían estado sentados sin hacer nada.

Me imagino qué tipo de rendimiento que se vería aumentar con un programa multi-hilo SSE dependerá de la proporción de operaciones de memoria a la aritmética de operaciones. Si, por ejemplo, su programa se carga ESS 4 SSE registra desde la memoria, hace 10.000 operaciones de ESS en ellos, y luego escribe los 4 registros de espalda, no es probable que veamos una gran ventaja desde HT ser capaz de solapar los accesos a memoria, porque 99% de su tiempo de ejecución de programas va a ser gastado en el SIMD ALU y no en el acceso a memoria.

Por otro lado, si su programa es muy compute-pesado, a continuación, multithreading su programa podría mejorar el rendimiento en gran medida de los procesadores multi-núcleo, y podría darle mucho mejor que una mejora del 30% ya que en ese caso el código podría tener acceso a la plena recursos de ejecución de múltiples núcleos a la vez.

Otros consejos

Son lógicamente duplicados - cada hilo tiene su propio estado. Físicamente, pueden ser compartidas -. Depende de su aplicación hyperthreading

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top