Asayomu Tech
注目★★★★★Lobsters

Rustのportable SIMD、GPUのwarp命令へ直結

30秒で把握

  • 1VectorWareがRust portable SIMDをGPUのwarp命令へ対応付け
  • 2Simd<T, N>で演算・mask・reduction・shuffleをGPU実行
  • 3CPUとGPUで同一ソースを共有、portable SIMDはnightly限定

要約

VectorWareは、Rustのportable SIMD(core::simd)をGPU上で実行できる実装を公開した。Simd<T, N>をGPUのwarpに対応付け、NVIDIAでは32レーンへ要素を割り当て、演算・比較・マスク・reduction・lane shuffleをwarp命令へ変換する。同じRustソースをCPUとGPUで実行でき、GPU固有の注釈や型を追加せずに既存のportable SIMDコードをGPU実行の候補にできる。NVIDIAを対象に進めているが、実装のIRはAMD wavefrontやVulkan subgroupにも対応可能な設計だ。一方、portable SIMDはnightly限定で、ベクトル幅がwarp幅と一致しない場合は空きレーンや追加命令が生じる。

あなたへの影響

RustでCPU向けportable SIMDを使うチームは、GPU移植の候補コードを選定し、nightly環境で性能とコンパイラ互換性を検証するとよい。

推奨:ベクトル幅とGPUのwarp幅が一致しないと効率が下がる可能性があるため、実行形状とreductionのコストを測定する必要がある。

詳細を読む → 元記事へ※ 本文は元記事をご確認ください (asayomu は要約のみ提供)

関連する記事

※ 外部記事の権利は原著作者に帰属します。著作権削除要請は copyright@asayomu.jp までご連絡ください(受領確認 24h・実処理 72h 以内)。