Scalable Vector Extensions
Scalable Vector Extension oder kurz SVE ist der Name einer Spezifikation für SIMD-Einheiten innerhalb der ARM-Prozessorarchitektur. Die Spezifikation wurde als eine Erweiterung der 8. Generation (ARMv8, eine 64-Bit-Prozessorarchitektur) dieser Prozessorarchitektur entwickelt und soll es erlauben, SIMD-Befehle bis zu einer Breite von 2048 Bit in Schritten von 128 Bit zu definieren. SVE ist nicht kompatibel zu Neon (einer älteren SIMD-Einheit für ARM Prozessoren), sondern definiert einen neuen Befehlssatz innerhalb des ARM64-Bit Befehlssatzes, primär gedacht für High Performance Computing. Dabei definiert die Spezifikation nur den Befehlssatz und Register unabhängig von der tatsächlichen Implementierung. Die Breite der Ausführungseinheiten kann von 128 Bit bis 2048 Bit in 128 Bit-Schritten reichen, der Befehlssatz ist unabhängig von der physischen Implementierung, SVE-Code kann somit auf zukünftigen, weiterentwickelten SIMD-Einheiten (größerer Breite) ohne Codeänderungen oder Neukompilierung ausgeführt werden.
SVE arbeitet wie Neon mit 32 Registern (unterschiedlicher Breite), benötigt aber zusätzlich Vector Control Register, die Vektor-Länge angeben und Eigenschaftsregister
Weblinks
- Spezifikation von SVE: https://developer.arm.com/-/media/developer/products/architecture/DDI0584A_d_SVE.zip
- Beschreibung von SVE für die HotChips Konferenz 2016 von Nigel Stephens: https://community.arm.com/processors/b/blog/posts/technology-update-the-scalable-vector-extension-sve-for-the-armv8-a-architecture
Die erste Implementierung einer SVE-Einheit wurde von der Firma Fujitsu-Computer für deren Post-K- bzw. Fugaku (Supercomputer) gebaut, der A64FX Chip.