GPU プログラミング
カーネル構文、`GPU` エフェクト、そして現状。
GPU プログラミング
Sounio は GPU 計算を「後付け」ではなく、言語の第一級要素として扱うことを目指しています。
表層では次の形で現れます:
kernel fn ...(GPU カーネル)with GPU(カーネル起動、デバイスメモリ、同期など GPU 操作を行うホスト関数)
いま動くこと(コンパイラの現状)
コンパイラは kernel fn 構文を受け付け、カーネルを関数として型チェックします。
例えば、次は有効で型チェックが通るはずです:
kernel fn noop(a: &[i32]) {
// A minimal kernel (no GPU intrinsics used).
}
fn main() with IO {
println("GPU docs: kernel syntax parses and type-checks.")
}
仕様 vs 実装
Sounio の GPU プログラミングモデルには次が含まれます:
- カーネル起動 API
- デバイスメモリの確保と転送
- スレッド/ブロック ID、同期などの GPU intrinsic
これらの一部は機能フラグに依存し、実ハードウェアでの実行には外部ツールチェーン(CUDA、Metal、SPIR-V)が必要になる場合があります。
迷ったら:
stdlib/gpu/の stdlib GPU モジュールを読むspec/LANGUAGE_SPECIFICATION.md(GPU セクション)を参照する- 「今日コンパイルできるもの」はテスト/フィクスチャを優先する