SIMD

  • 目前各平台 SIMD 狀況
    • Intel x86_64 : AVX (以前是 SSE)

    • ARM : NEON、SVE

Intel 的 SSE 浮點運算會使用另外的 register set (XMM registers), SSE 原先使用的是 128-bit 的 registers (XMM0 ~ XMM7)

<-----  128 bits  ----->
+----------------------+
| xmm0                 |
+----------------------+
| xmm1                 |
+----------------------+
| xmm2                 |
+----------------------+
| xmm3                 |
+----------------------+
| xmm4                 |
+----------------------+
| xmm5                 |
+----------------------+
| xmm6                 |
+----------------------+
| xmm7                 |
+----------------------+

ARMv8-A - SVE

SVE 是 Scalable Vector Extensions 的縮寫, 支援 128 ~ 2048 bits (之前的 NEON 只有 64 或 128 bits)

  • SVE Auto-Vectorization