Localized V2 rewrite for this language is in progress. Showing English-first content for now.

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 セクション)を参照する
  • 「今日コンパイルできるもの」はテスト/フィクスチャを優先する