How portable are the new ARM SVE instructions?

3.1k views Asked by At

I am looking for information about the new Scalable Vector Unit (SVE) from Arm. It looks amazingly good to me for doing Image processing with beeing able to compute 2048 bit in parallel and so on. But I'm not sure if it will be running on every Armv8 like RPI 3 or just some super computer. And does anybody know a timeframe when it will be included in Linux Kernel.

I read the link from the anouncement in Aug 2016. But I was hoping to get newer informations.

2

There are 2 answers

0
BitBank On BEST ANSWER

ARMv8 SVE is not baked into standard ARMv8 processors used in phones/SBCs. It is an optional processor extension that can be used by CPU designers/fabricators. The idea is that an ARM licensee can take a standard ARMv8 license and build a CPU with much wider SIMD units. This 'custom' ARMv8 CPU will be software compatible with standard ARMv8 software due to the implementation of SVE. You can read more about it here:

https://www.community.arm.com/processors/b/blog/posts/technology-update-the-scalable-vector-extension-sve-for-the-armv8-a-architecture

0
Ciro Santilli On

To quote what BitBank said from the standards, the ARMv8 architecture reference manual DDI 0487C.a section A1.7 "ARMv8 architecture extensions" says:

SVE is an optional extension to ARMv8.2. That is, SVE requires the implementation of ARMv8.2.

A further section then says that SVE is documented on a separate document: "ARM Architecture Reference Manual Supplement, The Scalable Vector Extension (SVE), for ARMv8-A", which can currently be downloaded from: https://developer.arm.com/docs/ddi0584/latest/arm-architecture-reference-manual-supplement-the-scalable-vector-extension-sve-for-armv8-a

There is a PDF inside the ZIP in that page.

Therefore, if you want portability, you must rely on higher level constructs than assembly such as the C language.

According to the ARMv8 Reference Manual, SVE support can be checked by reading the value of the ID_AA64PFR0_EL1.SVE bits, here is an example.