Test de asignación de hilos con Bulldozer

Test de asignación de hilos con Bulldozer

por

Burlando la asignación de hilos de Windows.

Si en la historia de los microprocesadores ha existido alguna arquitectura que ha dado mucho de qué hablar, esta es sin dudas Bulldozer, la que antes de su lanzamiento oficial estuvo plagada de rumores y continuas postergaciones, y su lanzamiento no fue el final de ello, pues su rendimiento irregular dependiendo del test es otro de los temas muy comentados; y que se deben a que simplemente a que los actuales sistemas operativos no reconocen su tecnología CMT, y usan a Bulldozer como si se tratara de un CPU multi-núcleo tradicional.

Se ha demostrado que realizando la desactivación manual de los ALUs adicionales, dejando a Bulldozer como un microprocesador cuádruple núcleo tradicional, se puede ganar un rendimiento entre 10 a 20% superior; pero el hacer ello supone el desperdiciar su capacidad multi-hilo. Los de The Tech Report nos traen un nuevo mini-review mostrando como ganar ese rendimiento 10 a 20% superior en Bulldozer, sin la necesidad de desactivar los ALUs adicionales en el bios setup.

Para realizar estas pruebas recurren al comando start de Windows, el que puede ser invocado desde la opción ejecutar del menú inicio de Windows, o usada cómodamente creando archivos de procesamiento por lotes (.bat); el comando start posee algunos parámetros que permiten personalizar la ejecución de un programa, pudiendo elegir el número de hilos de procesamiento, o que núcleos lógicos queremos que use la aplicación lanzada. Aquí un ejemplo:

start /AFFINITY 55 “aplicación”

En este comando de ejemplo el parámetro /AFFINITY fuerza al sistema operativo a usar una serie de núcleos lógicos expresados en formato hexadecimal, donde los de The Tech Report usan los valores: 55 (01010101, es decir un ALU por módulo) y 0F (00001111, es decir los primeros 4 núcleos lógicos, o los 4 primeros ALUs presentes en los 2 primeros módulos). “Aplicación” corresponde a la ruta completa del programa. Aquí algunos de los test que realizaron, donde curiosamente en algunas ocasiones dependiendo el número de hilos de la aplicación (probaron 2 y 4 hilos) se aprecia un rendimiento entre 10 a 20% superior al usar el modificador “55” en el parámetro /AFFINITY, como en otros casos donde el modificador “0F” logra obtener mejores resultados que la asignación automática del sistema operativo, aunque también hay ocasiones en las que la asignación automática derrota a la opción “0F”. Aquí algunos de sus test:

Link: A quick look at Bulldozer thread scheduling  (The Tech Report)

Pueden también comentar esta noticia en nuestro foro.