ARM SVE2 (Scalable Vector Extension)(エスブイイー2)
ARM 2019年公開のARMv9 標準 SIMD命令セット。128-2048bit 可変ベクトル長・Vector Length Agnostic 設計、Fugaku スーパーコンピュータ / ARM Neoverse 採用。
概要
ARM SVE2 (Scalable Vector Extension 2) はARM Holdings が2019年9月にARMv9 アーキテクチャ標準SIMD命令セットとして発表した第2世代Scalable Vector Extension。元のSVE (2016・Fugaku スパコン向け) を強化、128 / 256 / 512 / 1024 / 2048 bit 可変ベクトル長を「HW実装が選択」する Vector Length Agnostic (VLA) 設計が最大の特徴。1コードがどの幅 (128-2048bit) でも動作・自動性能スケールする革新。
SVE / SVE2 設計思想
従来SIMD (AVX-512 / NEON) は固定幅 (256 / 512 bit) で、ソフトウェアが幅を意識して書く必要があった。SVE / SVE2 はHWベンダがベクトル長を選択 (128-2048 bit)、ソフトウェアは「VLA (Vector Length Agnostic)」コードを1度書けばどの幅でも動く。
VLA (Vector Length Agnostic) コード例
void daxpy(double *x, double *y, double a, int n) {
svbool_t pg = svwhilelt_b64(0, n);
do {
svfloat64_t xv = svld1(pg, x);
svfloat64_t yv = svld1(pg, y);
svst1(pg, y, svmla_x(pg, yv, xv, a));
// Loop continues based on actual hardware width
} while (svptest_any(pg, /*next chunk*/));
}
128bit HW では 2 double 同時・2048bit HW では 32 double 同時・全て同じソースコード。
SVE vs SVE2 比較
| 項目 | SVE (2016) | SVE2 (2019) |
|---|---|---|
| 目的 | HPC | HPC + 汎用 (NEON 完全置換) |
| 命令数 | 約400 | SVE + NEON 全機能 |
| BF16 | なし | あり |
| Matrix Mult | なし | SVE2-AES / SHA2 等 |
| 公開ARMv | ARMv8.2-A | ARMv9-A 標準 |
主要採用CPU
| CPU | 年 | ベクトル長 |
|---|---|---|
| Fujitsu A64FX (Fugaku) | 2020 | 512 bit (SVE 1) |
| ARM Neoverse V1 (Graviton 3) | 2022 | 256 bit (SVE 1) |
| ARM Neoverse V2 (Graviton 4) | 2024 | 128 bit (SVE2) |
| ARM Cortex-X4 / A720 | 2023 | 128 bit (SVE2) |
| Snapdragon 8 Gen 3 | 2023 | 128 bit (SVE2) |
| Snapdragon X Elite | 2024 | 128 bit (SVE2) |
| Apple Silicon (M シリーズ) | - | 採用なし (独自AMX) |
| NVIDIA Grace | 2023 | 128 bit (SVE2) |
なぜApple は採用しない?
Apple Silicon (M1-M4) はARMv8.6-A / ARMv9.2-A 採用するがSVE2 を採用せず、NEON (128bit・固定) + 独自AMX (Apple Matrix Extension・512bit) を使用。理由は推測:
- 既存最適化資産 (Accelerate Framework等) の互換
- 設計シンプル化
- AMX 行列演算が SIMD ベクトルより重要視
Fugaku スパコン
理化学研究所の「富岳」スーパーコンピュータ (2020-) はFujitsu A64FX (SVE 512bit) ベース。世界1位 (2020-2022 Top500)・LINPACK 442 PFLOPS・SVE 命令で科学技術計算を加速、ARM HPC 化の象徴。
関連用語との違い
- vs NEON (ARM): NEON 固定128bit / SVE2 可変
- vs AVX-512: 固定512 (AVX) / 可変 (SVE2)
- vs Apple AMX: SVE2 ベクトル / AMX 行列
FAQ
Q1: VLA コードのコンパイル?
A: GCC / LLVM 2020年以降SVE / SVE2 サポート・-march=armv9-a+sve2 等で有効化。ARM Allinea / Compiler 14 等の最適化ツールも対応。
Q2: Apple Silicon でも動く? A: 不可。Apple M シリーズはSVE2 ハードウェア非対応・NEON 限定。Mac で Linux ARM 動作させてもSVE2 命令はFault。
Q3: Snapdragon X Elite は128bit のみ? A: そう。Qualcomm の現行Oryon コアはSVE2 128bit 実装。AVX-512 級の512bit Snapdragon は2025-2026年見込み。