AMD decide desactivar el búfer de bucle en Zen 4
(chipsandcheese.com)AMD desactiva el búfer de bucle de Zen 4
-
Función del búfer de bucle: Está ubicado en el frontend del CPU y almacena instrucciones obtenidas previamente. Los bucles pequeños pueden caber en el búfer de bucle, lo que permite desactivar algunas etapas del frontend para ahorrar energía y mejorar el rendimiento. Es una tecnología antigua usada en núcleos de Intel, Arm y AMD.
-
El búfer de bucle de Zen 4: Zen 4 es el único núcleo de alto rendimiento de AMD que incluye un búfer de bucle. Según experimentos con contadores de rendimiento, cuando el núcleo se ejecuta con un solo hilo tiene 144 entradas. Cuando hay dos hilos SMT activos, asigna 72 entradas a cada hilo. Si dentro del bucle ocurren llamadas y retornos, no quedan capturados en el búfer de bucle.
-
Cambios tras la actualización de BIOS: Después de actualizar un ASRock B650 PG Lightning a la versión 3.10 del BIOS, el monitoreo de rendimiento por hardware confirmó que el frontend ya no despacha micro-ops desde el búfer de bucle. Al volver al BIOS 1.21, el búfer de bucle se reactiva. AMD parece haber desactivado el búfer de bucle entre el BIOS 1.21 (AGESA versión 1.0.0.6) y el BIOS 3.10 (AGESA versión 1.2.0.2a).
SPEC CPU2017: buscando diferencias
-
Impacto en el rendimiento: Las puntuaciones de SPEC CPU2017 muestran que no hay diferencias perceptibles según si el búfer de bucle está activado o no. La puntuación total de las suites de enteros y de punto flotante muestra una diferencia menor al 1%. La mejora de rendimiento con SMT tampoco se ve afectada.
-
El papel del búfer de bucle: El objetivo principal del búfer de bucle no es mejorar el rendimiento, sino permitir que el núcleo desactive gran parte del frontend. Según la referencia de programación de procesadores de Zen 4, los contadores de rendimiento pueden programarse para aumentar en 1 cada vez que el número de eventos supera un umbral.
Cyberpunk 2077
- Prueba de rendimiento en juegos: Se usó el benchmark integrado de Cyberpunk 2077 para verificar el impacto de desactivar el búfer de bucle en el rendimiento de juegos. Se confirmó que la desactivación del búfer de bucle casi no afecta el rendimiento en juegos.
Intento de comprobar el consumo de energía
- Eficiencia energética: Se intentó verificar si el búfer de bucle mejora la eficiencia energética usando los contadores de energía del núcleo de Zen 4, pero los resultados no fueron consistentes. Con el BIOS nuevo ya no es posible probar el búfer de bucle.
Conclusión
- Razón de la desactivación del búfer de bucle: No está claro por qué AMD desactivó el búfer de bucle en Zen 4. Una función del CPU puede desactivarse debido a un bug de hardware. Zen 4 fue el primer caso en que AMD introdujo un búfer de bucle en sus CPU de alto rendimiento. El impacto en el rendimiento es casi nulo, y se estima que el impacto en el consumo de energía también sería mínimo.
1 comentarios
Opiniones de Hacker News
Es posible que la función se haya desactivado para prevenir vulnerabilidades de hardware. Esto sugiere que el loop buffer no ofrecía ventajas de rendimiento ni de consumo energético
El loop buffer de Zen 4 muestra que la empresa tiene capacidad de ingeniería para experimentar
Uso un 7950x3d y actualicé desde un 6700k de Skylake
En juegos, cuando el loop buffer se desactiva, el rendimiento cae 5% al fijarse en el die sin caché
Puede que el loop buffer fuera tan pequeño que solo marcara diferencia en escenarios específicos, y que un buffer más grande no hubiera justificado su costo
En Cortex-A15 es una "función de diseño principal"
No entiendo cuánto espacio ocupa el loop buffer en el die
En la sección de "energía" no se divide por la cantidad de instrucciones ejecutadas por segundo
Una de las diferencias entre el 68000 de 1979 y el 68010 de 1982 fue la incorporación del "modo loop", un loop buffer de 6 bytes