AMD ha publicado un nuevo parche para la GNU Compiler Collection (GCC) destinado a mejorar la optimización para el código x86_64. La optimización, denominada Optimización de Carga Extendida, está diseñada para beneficiar al código donde se carga un tipo de datos más estrecho y luego se utiliza en una operación aritmética con un tipo de datos más amplio.
El parche, presentado por Sridevi del equipo de compiladores de AMD, aborda una situación en la que GCC actualmente utiliza instrucciones `vextract`. Sridevi explicó que el parche permitirá que GCC, en cambio, utilice cargas extendidas con registros ZMM, lo que podría lograr un mejor rendimiento. El parche identifica un patrón de “carga + conversión” dentro del árbol SLP y reduce el tipo de vector de carga si el objetivo admite la funcionalidad de carga y extensión fusionada. La función `vect_optimize_slp_widening_loads` realiza esta optimización dentro del archivo `tree-vect-loop.cc`.
Esta optimización no es específica de los procesadores Zen de AMD, sino que se aplica a la arquitectura x86_64 más amplia. AMD recientemente ha cambiado hacia la incorporación de un nuevo soporte para compiladores, incluido el soporte de destino Zen para GCC y LLVM/Clang, en una etapa anterior del proceso de desarrollo. Anteriormente, gran parte de este trabajo lo realizaban socios como SUSE después del lanzamiento. El parche está actualmente en revisión para su inclusión en GCC 17. No se incluyeron métricas de rendimiento con la presentación del parche.
Leer la cobertura original
💬 Comentarios
📜 Política de comentarios