AMD Bulldozer: ¿Por qué su rendimiento no fue el esperado?

AMD Bulldozer: ¿Por qué su rendimiento no fue el esperado?

por

¿Qué causó que Bulldozer no pudiera superar a Sandy Bridge?

Hace apenas 2 semanas que AMD lanzó al mercado sus esperados microprocesadores AMD FX, conocidos por su nombre código Zambezi, y los primeros basados en la nueva arquitectura Bulldozer de AMD; los que en nuestro review mostraron un rendimiento comparable al Core i7 2600K de Intel en aplicaciones de retoque fotográfico con filtros intensivos, trazado de rayos (raytracing), render de video, y otras aplicaciones profesionales que hacen uso intensivo de cuantos hilos de procesamiento posea el equipo; pero que sin embargo no lucieron tan bien en las pruebas con juegos; rendimiento algo dispar, que aprovechando un excelente análisis realizado por Ars technica, trataremos de explicar, y además poner algo de información y gráficos adicionales que por motivos de tiempo no se pudo incluir en el review de CHW; por lo que en esencia este artículo es distinto al original, el que es de lectura recomendada.

Ya hablamos detalladamente sobre el diseño modular de la arquitectura Bulldozer, y de su arquitectura CMT, responsable de compartir de recursos entre los 2 núcleos ALU presentes en cada uno de sus módulos; pero no tocamos otros aspectos del chip que son los causantes de que el punto fuerte de Bulldozer sean las aplicaciones multi-hilo intensivas y no las aplicaciones comunes usadas típicamente por el usuario promedio.

Bulldozer por dentro

Según Ars Technica, los planes originales de AMD tenían contemplado el lanzamiento de un chip tope de gama con una frecuencia base de 4.4GHz, y que gracias a su modo Turbo llegara a una frecuencia de 5GHz; pero ello no le fue posible por temas de consumo lo que la obligó a reducir sus frecuencias objetivo y sus proyecciones. Para lograr un chip que llegue a tan elevadas frecuencias de funcionamiento lamentablemente se requiere incrementar las etapas del pipeline, y con Bulldozer AMD las incrementó sensiblemente (20 aproximadamente) en comparación con su anterior arquitectura K10.5 usada en sus Phenom II (pipeline de 12 etapas). Alimentar las tuberías de un chip con un alto número de etapas requiere el uso de grandes caches, y Bulldozer tiene muchos de sus transistores dedicados a sus caches, los que si bien crecieron en tamaño (L2 y L3), incrementaron sensiblemente sus latencias, factor que afectó también a su controlador de memoria.

Si bien cada módulo Bulldozer incluye 4 decoders x86 (K10.5 incluye 3) el número de schedulers de enteros se reduce a 1 por ALU, pero al cada scheduler estar presente en la unidad ALU, no es posible usar 2 de ellos en un único hilo (para efectos comparativos K10.5 posee 3 schedulers). Esto nos resulta en que un módulo Bulldozer es capaz de ejecutar 2 operaciones de enteros simultáneamente, mientras que K10.5 puede ejecutar 3; detalle que es compensado con su mayor número de decoders x86. AMD piensa que las aplicaciones mostrarán un mayor rendimiento al procesar varios hilos de procesamiento dentro de un mismo módulo compartiendo sus L1 y L2, pues el hacer ello ahorra la latencia adicional que se daría al acceder a la L2 de otro de los módulos, o peor aún recurrir a la L3; característica que aún no ha sido posible comprobar bajo Windows 7.

Quizá el área en la que Bulldozer prometía un mayor rendimiento: su unidad de punto flotante FlexFP, la responsable de su extendido soporte a los modernos juegos de instrucciones, si bien en concepto suena impresionante por su gran flexibilidad al dividir su trabajo entre 2 hilos de procesamiento; en la práctica obedece a la nueva visión de AMD, donde el GPU será el encargado de realizar los cálculos de coma flotante, y siguiendo dicha visión usa 2 unidades FMAC de 128 bits, las que usadas en conjunto son capaces de ejecutar instrucciones AVX de 256 bits; pero una de ellas realiza el trabajo combinado de ejecutar instrucciones x87 y MMX, mientras que la otra se dedica a ejecutar instrucciones SSE y AVX. Para efectos comparativos otros CPUs poseen 3 unidades de punto flotante dedicadas a x87, MMX, y SSE/AVX, es decir mayor fuerza bruta. Debido a ello hemos apreciado que el rendimiento de test sintéticos como SuperPi, no resulta muy bueno; pues AMD espera que su rendimiento en aplicaciones SSE y AVX compense ello terminando por ofrecer un rendimiento mayor que el de su predecesor.

Hemos elaborado una tabla con todos los datos mencionados y que facilitarán su interpretación:

¿Windows 8 ofrecerá un rendimiento muy superior con Bulldozer?

Como comentamos en el review, Windows 7 no reconoce bien la arquitectura CMT y desaprovecha parte del potencial de Bulldozer, y origina un consumo mayor al tener activos todos los módulos innecesariamente, quedando sólo el throttle de frecuencias como su único método de ahorro de energía. Tomando como ejemplo al FX-8150 (3.6GHz), Windows 7 es capaz de usar el modo Turbo Core All Cores (3.9Ghz), pero no el modo Turbo Core Max (4.2GHz), característica que si podrá ser usada bajo el próximo Windows 8, logrando usar el modo Turbo Core Max (4.2Ghz) en los 2 primeros módulos (4 hilos de procesamiento), es decir una mejora del 7.7% en frecuencia, además Windows 8 podrá hacer uso del procesamiento CMT de la forma como AMD la ideó, tratando de procesar el mayor número de hilos dentro del propio módulo; brindando según AMD un rendimiento hasta 10% superior en las aplicaciones que usen pocos hilos de procesamiento (4 o menos); y quizá algunas pocas ganancias en aplicaciones que usen más de 4 hilos. Pero definitivamente ningún cambio drástico al rendimiento.

Aprovechamos para actualizar uno de los gráficos del review mostrando como se comportaría Bulldozer bajo Windows 8, además mostrando los modos Turbo:

Bulldozer: ¿Un gran diseño lanzado en el momento equivocado?

La arquitectura Bulldozer es sin dudas una de las más interesantes e innovadoras en el mundo x86; pero quizá su enfoque no se adapta mucho al usuario promedio que usa pocas aplicaciones simultáneamente, y juegos que en su mayoría apenas hacen uso de más de 2 hilos de procesamiento; siendo en la actualidad Dirt3 (EGO 2 engine) y Battlefield 3 (Frostbite 2 engine), los únicos juegos que hacen uso de múltiples hilos de procesamiento que demuestran el potencial de Bulldozer; por lo que no cabe dudas de que considerando que muchos de los nuevos motores gráficos usaran muchos núcleos para procesar muchos efectos como inteligencia artificial y físicas por CPU, Bulldozer es una apuesta a futuro.

Dejando el lado gamer y de los usuarios promedio, el rendimiento de Bulldozer en aplicaciones profesionales y nuevos softwares que le saquen provecho a sus nuevas características luce prometedor. Los de Ars Technica comentan sobre el mayor enfoque del microprocesador hacia tareas típicas de servidor y estación de trabajo, donde las aplicaciones se benefician de su capacidad multi-hilo, y su alejamiento del usuario promedio y gamer, pues los sistemas operativos de escritorio no se benefician mucho del multi-hilo; situación que sin dudas cambiará en el futuro, pero el tema es cuan conveniente será esperar por dicho futuro.

Por el momento Bulldozer es un chip que será visto con muy buenos ojos por los usuarios que usen ambientes multi-hilo intensivo con muchas aplicaciones demandantes funcionando simultáneamente; pero quizá no sea muy bien visto por el usuario promedio y gamer.

Link: Can AMD survive Bulldozer’s disappointing debut?  (Ars Technica)

Pueden también comentar esta noticia en nuestro foro.