Eliminar ramas mediante instrucciones IR de fusión

Publicado 2026-01-01 01:30

Resumen: Las predicciones de rama causan sanciones de rendimiento catastróficas en procesadores modernos, lo que conduce a la pérdida de rendimiento. Aunque existen predictores de hardware y técnicas orientadas a perfiles, las ramas dependientes de datos con patrones irregulares siguen siendo difíciles. Tradicional si-conversión elimina las ramas a través de la predicación del software, pero se enfrenta a limitaciones en arquitecturas como x86. A menudo falla en los caminos que contienen instrucciones de memoria o incurre en la instrucción excesiva por encima de la cabeza especulando completamente cuerpos de rama grandes. Este documento presenta las Instrucciones de fusión de IR (MERIT), una transformación compiladora que elimina las ramas al alinear y combinar operaciones similares de caminos divergentes en el nivel de instrucción IR. Al observar que los caminos divergentes a menudo realizan operaciones estructuralmente similares con diferentes operandos, MERIT adapta la alineación de secuencias para descubrir oportunidades de fusión y emplea la vigilancia segura de nivel de operando para asegurar la corrección semántica sin necesidad de predicación de hardware. Ejecutado como pase LLVM y evaluado en 102 programas de cuatro suites de referencia, MERIT logra una velocidad media geométrica de 10,9% con mejoras máximas de 32x en comparación con el predictor de sucursal de hardware, demostrando la eficacia con la instrucción estática reducida.

Eliminar ramas por derribar instrucciones de IR - Resumen: Las falsificaciones de rama causan sanciones de rendimiento catastróficas en procesadores modernos, lo que conduce a la pérdida de rendimiento. Aunque existen predictores de hardware y técnicas orientadas a perfiles, las ramas dependientes de datos con patrones irregulares siguen siendo difíciles. Tradicional si-conversión elimina las ramas a través de la predicación del software, pero se enfrenta a limitaciones en arquitecturas como x86.

A menudo falla en los caminos que contienen instrucciones de memoria o incurre en la instrucción excesiva por encima de la cabeza especulando completamente cuerpos de rama grandes. Este documento presenta las Instrucciones de fusión de IR (MERIT), una transformación compiladora que elimina las ramas al alinear y combinar operaciones similares de caminos divergentes en el nivel de instrucción IR.

Al observar que los caminos divergentes a menudo realizan operaciones estructuralmente similares con diferentes operandos, MERIT adapta la alineación de secuencias para descubrir oportunidades de fusión y emplea la vigilancia segura de nivel de operando para asegurar la corrección semántica sin necesidad de predicación de hardware.

Ejecutado como pase LLVM y evaluado en 102 programas de cuatro suites de referencia, MERIT logra una velocidad media geométrica de 10,9% con mejoras máximas de 32x en comparación con el predictor de sucursal de hardware, demostrando la eficacia con la instrucción estática reducida.

Comentarios anónimos

Sé el primero en comentar.