1 puntos por GN⁺ 2024-12-02 | 1 comentarios | Compartir por WhatsApp

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

 
GN⁺ 2024-12-02
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

    • Puede que el equipo de ingeniería haya desarrollado una función nueva durante meses, pero que en realidad no tuviera beneficios y se lanzara para salvar las apariencias
    • En los equipos de software también pasa que reescriben toda la base de código para mejorar el rendimiento, pero al terminar el proyecto hay más código y peor rendimiento
    • En ambos casos, el proyecto no debió haberse lanzado
  • El loop buffer de Zen 4 muestra que la empresa tiene capacidad de ingeniería para experimentar

    • Esta vez no dio resultados, pero que los ingenieros experimenten con funciones de bajo riesgo y bajo impacto es una buena forma de ganar confianza
    • Se espera que eso se traduzca en más confianza hacia adelante
  • Uso un 7950x3d y actualicé desde un 6700k de Skylake

    • Parece que inconscientemente me atraen los chips cuyo hardware loop buffer fue desactivado por software
  • En juegos, cuando el loop buffer se desactiva, el rendimiento cae 5% al fijarse en el die sin caché

    • Con mediciones de energía más detalladas se podría confirmar si está relacionado con el presupuesto térmico/energético
    • Esta función suena como algo pensado para ahorrar energía
  • 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 algunas cargas de trabajo podría haber una leve caída de rendimiento, pero AMD ha logrado pequeñas mejoras de rendimiento desde el lanzamiento
    • Debería haber sido una opción de BIOS en Zen 4. Que no lo sea sugiere un bug o un problema de seguridad
  • En Cortex-A15 es una "función de diseño principal"

    • Me pregunto si hay cifras sobre su impacto en otros chips
    • En diseños de uso prolongado (por ejemplo, consolas) podría servir como objetivo de optimización
  • No entiendo cuánto espacio ocupa el loop buffer en el die

    • Si se eliminó, me pregunto si ese espacio podría usarse en futuros chips para algo más útil, como caché L2
  • En la sección de "energía" no se divide por la cantidad de instrucciones ejecutadas por segundo

    • La métrica que habría que considerar para ver las ventajas del loop buffer no es la energía por segundo, sino el uso de energía por instrucción
  • 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