1,885
edits
Changes
SVE2
,no edit summary
[[Category:ARM]]
The Armv9 '''Scalable Vector Extensions verision 2''' (SVE2) provide a variable-witdh SIMD capability for [[AArch64]] systems. Note that SVE2 is a minor refinement and standardization of the original Scalable Vector Extensions (used on the [https://www.r-ccs.riken.jp/en/fugaku/ Fugaku] supercomputer), so most materials discussing SVE are also applicable to SVE2 (which will be used on systems ranging from smartphones to servers to supercomputers).
== Resources ==
* Intrinsics - Arm C Language Extensions for SVE (ACLE) - https://developer.arm.com/documentation/100987/latest
* SVE Coding Considerations with Arm Compiler - Note that this documentation is specific to Arm's own compiler, but most of it will be applicable to other compilers including gcc - https://developer.arm.com/documentation/100748/0616/SVE-Coding-Considerations-with-Arm-Compiler
* [[AArch64 Emulation]]
== Building SVE2 Code ==
=== C Compiler Options ===
gcc -march=armv8-a+sve2 ...
== Running SVE2 Code ==
To run SVE2 code on an Armv8 systemcomputer, you can use the [[AArch64 Emulation|QEMU usermode system]] software. This will trap SVE2 instructions and emulate them in software, while executing Armv8a instructions directly on the hardware:
qemu-aarch64 ''./binary''
{{Admon/tip|Running AArch64 code on x86_64|The QMEU QEMU user mode software can also be used to run AArch64 code on an x86_64 system (albeit slowly). However, this requires a full AArch64 userspace (applications and tools, such as ld) to be installed on the x86_64 system. See [[AArch64 Emulation]] for details.}}