Difference between revisions of "Power ISA/Vector Operations"

From RCS Wiki
Jump to navigation Jump to search
(→‎External Links: SIMD.info)
(→‎Github / Gitlab pages: Fix capitalization)
 
(One intermediate revision by the same user not shown)
Line 26: Line 26:
 
* Sridhar Venkat. [https://community.ibm.com/community/user/powerdeveloper/blogs/sridhar-venkat1/2022/08/29/power10-mma MMA in IBM Power10 processor]. Published August 29, 2022
 
* Sridhar Venkat. [https://community.ibm.com/community/user/powerdeveloper/blogs/sridhar-venkat1/2022/08/29/power10-mma MMA in IBM Power10 processor]. Published August 29, 2022
 
* VectorCamp. [https://simd.info/ SIMD.info], an online searchable reference tool for C intrinsics of all major SIMD engines (including VSX).
 
* VectorCamp. [https://simd.info/ SIMD.info], an online searchable reference tool for C intrinsics of all major SIMD engines (including VSX).
 +
* VectorCamp. [https://simd.ai/ Advanced SIMD Porting Intelligence]. LLM that helps optimize and port code to SIMD architectures in seconds.
  
== Github / Gitlab pages ==
+
== GitHub / GitLab pages ==
  
 
=== Translation from other architectures ===
 
=== Translation from other architectures ===
Line 36: Line 37:
 
* [https://github.com/llvm/llvm-project/tree/main/clang/lib/Headers/ppc_wrappers Clang]. x86 to VSX.
 
* [https://github.com/llvm/llvm-project/tree/main/clang/lib/Headers/ppc_wrappers Clang]. x86 to VSX.
 
* [https://github.com/simd-everywhere/simde SIMD Everywhere]. x86/ARM/WASM to VSX (and other arches).
 
* [https://github.com/simd-everywhere/simde SIMD Everywhere]. x86/ARM/WASM to VSX (and other arches).
* [https://simd.ai/ Advanced SIMD Porting Intelligence]. LLM that helps optimize and port code to SIMD architectures in seconds.
 
  
 
=== SIMD libraries and frameworks ===
 
=== SIMD libraries and frameworks ===

Latest revision as of 15:12, 1 July 2025

The Power 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.

Power ISA v3.1 adds an optional VSX extension, MMA (Matrix-Multiply Assist), targeted at matrix math applications.

External Links

GitHub / GitLab pages

Translation from other architectures

Implementations of non-POWER instruction sets for POWER.

SIMD libraries and frameworks

Specialized implementations