AMD desactivó en Zen 4 (Ryzen 7000) la función Loop Buffer, afectando el rendimiento en gaming de las CPU sin 3D V-Cache
Hemos esperado unos días prudenciales para dar esta información tras el informe de los compañeros de Chips and Cheese, por si AMD respondía de alguna manera y explicaba este pequeño entuerto que se ha montado. Dado que no contestan a las peticiones de diversos medios, tendremos que ofrecer la información que hay hasta hoy y, si posteriormente responden, lo haremos en un nuevo artículo, porque hay demasiadas preguntas sobre la mesa. Lo que debemos saber es que AMD ha desactivado, en silencio, la función Loop Buffer de todos los procesadores Zen 4, es decir, todos los de la serie 7000, desde servidor hasta portátiles, y esto tiene un pequeño impacto en el rendimiento en ciertos entornos.
Esta función, de la cual se habló realmente poco en su inclusión dentro de la arquitectura Zen 4, no es que sea realmente destacable. Tanto es así, que hasta hace solamente unos días nadie se había dando cuenta de que se había desactivado, pero una vez hecho, el número de procesadores afectados y las métricas de rendimiento necesitan una explicación por parte de los rojos.
AMD desactiva en silencio la función Loop Buffer del microcódigo en todas las CPU Zen 4
Antes de entrar en materia, explicaremos brevemente esta función como característica única de Zen 4, puesto que en ningún Data Sheet que hemos revisado aparece, y parece que nadie ha encontrado ni siquiera nada similar en arquitecturas anteriores o posteriores. Loop Buffer es una característica, por tanto, exclusiva de Zen 4 que está diseñada para mejorar la eficiencia y el rendimiento de las CPU de la serie 7000 gracias al procesamiento de pequeños bucles dentro del código.
Lo que hace, a grosso modo, es almacenar microoperaciones que posteriormente puede reutilizar desde el Front-End. Si ya las tiene y las ha trabajado previamente, como están almacenadas, si se necesitan, no se tienen que volver a descodificar, y por tanto, se mejora el consumo y el rendimiento, pues es trabajo ya hecho que vuelve a usarse.
Además de ganar rendimiento y bajar el consumo, también reduce la latencia de la ejecución del Dispatch, así que en principio son todo ventajas, ¿o no es así realmente? Bueno, en parte sí, en parte no. Loop Buffer dentro de Zen 4 funciona solamente si la CPU detecta bucles pequeños, solo en ese caso, donde entonces la µOps de la descodificación de dichos bucles sí que se almacenan en esta función Loop Buffer, como bien describe su nombre.
Se tienen que dar dos condiciones para ello: que el bucle sea menor al tamaño del búfer, y que el bucle se mantenga en ejecución. Si los dos casos son afirmativos, entonces las µOps que están almacenadas no tienen que acceder de nuevo al Decoder, y se producen las ventajas comentadas arriba.
AMD lo desactivó con AGESA 1.0.0.6
Y ya ha llovido, donde curiosamente nadie ha detectado el problema, entonces, ¿no hay pérdida de rendimiento ni aumento del consumo? No tan rápido "romerales", porque sí que se ha demostrado los cambios, pero son complejos.
Como puntos de referencia, y usando un 7950X3D, bajo SPEC CPU 2017 las diferencias en flotante y enteros fueron aproximadamente del 1%, típico margen de error, pero al probar Cyberpunk 2077, en el CCD con 3D V-Cache y en el CCD sin dicha caché vertical, comenzaron a verse los problemas.
Lo que vemos en la tabla y gráfico superior con dicho juego evidencia que se ha trabajado con dos BIOS distintas, la 3.10, la cual desactiva Loop Buffer en Zen 4, y la 1.21, que lo mantenía activo. Cyberpunk 2077, como juego TOP, usa Loop Buffer en determinadas tareas como simulaciones de físicas, NPCs, iluminación global, con Ray Tracing, para sombras o reflejos, y un largo etc... Por lo que depende de la escena el rendimiento se verá más o menos afectado.
Lo que muestran los datos con este juego es que con Loop Buffer desactivado para Zen 4 en el CCD sin Caché vertical, el impacto es mayor, es donde más rendimiento se pierde, y a continuación va su hermano con 3D V-Cache. Las BIOS antiguas con esta función activa son los que menos rendimiento pierden y por bastante, sobre todo en el CCD con dicha caché sobre él.
Puede haber cierta pérdida de rendimiento en gaming, o al menos, en ciertos juegos concretos
Esto deja patente que en ciertos juegos podría haber una pérdida de rendimiento al desactivar el Loop Buffer en Zen 4 y los Ryzen 7000, donde la CPU tiene que hacer más uso del Decoder para los bucles pequeños y genera cierto cuello de botella en el Front-End como hemos visto.
La caché vertical en el CCD correspondiente minimiza el impacto, ya que mejora el acceso a los datos críticos al poder almacenar más información en la L3 anexa, donde no se pierde rendimiento (menos del 1%).
Resumiendo, hay un impacto en gaming, al menos en Cyberpunk 2077, con las nuevas BIOS al desactivar AMD su Loop Buffer para Zen 4. Hablamos de una caída del 5,3%, así que es bastante importante, y no sabemos por el momento si esto implica que en otros títulos es mayor, menor o igual. Por lo tanto, hace falta que AMD salga a la palestra a explicar qué ha pasado y por qué no ha dicho abiertamente los motivos ni hablado de la posible pérdida de rendimiento en Zen 4 tras desactivar Loop Buffer, ya que los usuarios deben saberlo.