Difference between revisions of "Power ISA/Vector Operations"
JeremyRand (talk | contribs) (→External Links: Add Talospace link) |
JeremyRand (talk | contribs) (128-bit VSX is per-super-slice) |
||
Line 6: | Line 6: | ||
Power ISA v3.0 no longer mentions VMX at all. | Power ISA v3.0 no longer mentions VMX at all. | ||
+ | |||
+ | According to [[File:POWER9-Features-and-Specifications.pdf]] page 7, the Vector Scalar Unit (VSU)'s 128-bit hardware is dedicated per super-slice (2 threads). This may indicate that trying to aggressively use 128-bit VSX instructions in two threads that use the same super-slice will be inefficient. It is possible that clever usage of <code>taskset</code> may improve this situation. | ||
== External Links == | == External Links == |
Revision as of 22:49, 23 October 2022
The Power Architecture ISA includes a specification of vector or SIMD operations. Prior to the Power ISA, i.e. PowerPC, some of these operations were available, but defined in an external standard, called Altivec by Freescale (Motorola spin-off), Vector Multimedia Extension (VMX) by IBM, and Velocity Engine by Apple.
The Vector operations are classified as Vector Facility and Vector Scalar Extension (VSX) in current versions of the Power ISA.
Power ISA v2.07 still refers to some instructions as VMX in its summary of changes since the previous version, but the rest of the document avoids mentioning VMX completely.
Power ISA v3.0 no longer mentions VMX at all.
According to File:POWER9-Features-and-Specifications.pdf page 7, the Vector Scalar Unit (VSU)'s 128-bit hardware is dedicated per super-slice (2 threads). This may indicate that trying to aggressively use 128-bit VSX instructions in two threads that use the same super-slice will be inefficient. It is possible that clever usage of taskset
may improve this situation.
External Links
- Seebach, Peter. Unrolling AltiVec, Part 1, Introducing the PowerPC SIMD unit. Published March 01, 2005
- Seebach, Peter. Unrolling AltiVec, Part 2, Optimize code for SIMD processing. Published March 16, 2005
- Gschwind, Michael. Workload acceleration with the IBM POWER vector-scalar architecture. IBM Journal of Research and Development. Published March, 2016
- Clarke, Paul. Porting x86 vector intrinsics code to Linux on Power in a hurry. Published January 24, 2018
- OpenPOWER. Linux on Power Porting Guide: Vector Intrinsics. Published March 13, 2018
- OpenPOWER. Power Vector Intrinsic Programming Reference. Published October 12, 2020
- Talospace. Easier Power ISA vectorizing for fun and profit with GCC x86 intrinsics. Published July 26, 2019