Scalable Vector Extension (SVE) y su sucesor SVE2 son extensiones del conjunto de instrucciones (ISA) ARMv8-A y ARMv9-A, respectivamente, diseñadas para el procesamiento vectorial de datos (SIMD - Single Instruction, Multiple Data). A diferencia de las extensiones SIMD de longitud fija como NEON, SVE introduce un modelo de vector de longitud variable, donde la longitud del vector puede ser implementada por el hardware en cualquier múltiplo de 128 bits, desde 128 hasta 2048 bits. Esto permite que el mismo código binario compilado se ejecute eficientemente en diferentes implementaciones de hardware con distintas capacidades vectoriales, sin necesidad de recompilación. SVE2 extiende las capacidades de SVE con instrucciones adicionales que mejoran el rendimiento en cargas de trabajo como procesamiento de señales digitales (DSP), machine learning (ML) y criptografía, haciéndolo más adecuado para aplicaciones de propósito general.
En el mundo real, SVE y SVE2 son fundamentales para el rendimiento de procesadores ARM de alto rendimiento. Por ejemplo, el superordenador Fugaku, que utiliza procesadores Fujitsu A64FX basados en ARM con SVE, demostró un rendimiento excepcional en simulaciones científicas y computación de alto rendimiento (HPC). Procesadores como los de la serie Neoverse de ARM (ej. Neoverse V1, V2) y los chips Apple Silicon (aunque Apple utiliza una implementación propietaria de SIMD, la filosofía de vectorización es similar) se benefician de estas extensiones para acelerar tareas en centros de datos, como inferencia de machine learning, procesamiento de bases de datos y análisis de big data. Compiladores como GCC y LLVM/Clang soportan SVE/SVE2, permitiendo a los desarrolladores optimizar sus aplicaciones mediante intrínsecos o auto-vectorización.
Para un Arquitecto de Sistemas, SVE/SVE2 es crucial por su impacto estratégico en el rendimiento y la eficiencia energética. La capacidad de longitud de vector variable de SVE reduce la necesidad de recompilar y optimizar el código para diferentes generaciones de hardware, lo que simplifica la gestión del ciclo de vida del software y reduce el 'time-to-market'. Al diseñar sistemas para HPC, ML o procesamiento de datos intensivo, la elección de una arquitectura ARM con SVE/SVE2 puede ofrecer ventajas significativas en términos de rendimiento por vatio y coste total de propiedad (TCO). Sin embargo, requiere que los desarrolladores estén familiarizados con técnicas de vectorización o que los compiladores sean lo suficientemente maduros para auto-vectorizar eficazmente. La decisión de adoptar ARM con SVE/SVE2 implica un trade-off entre la portabilidad del código binario (garantizada por SVE) y la necesidad de optimización a nivel de software para aprovechar al máximo las capacidades del hardware subyacente.