Pythonに組み込めるプログラミング言語。数値計算カーネルをJITコンパイルし、CUDA、Vulkan、MetalなどのCPUやGPUで実行できます。
NVIDIA/cuda-rust
NVIDIAのRust向けCUDAプラットフォーム。ホスト用ランタイムクレートに加え、RustでGPUカーネルを書くためのSIMTモデルとTileモデルを提供します。
- スター
- 3,987
- フォーク
- 360
- 未解決の Issue
- 234
- 最終コミット
- 昨日
これは何?
CUDA Rustは、Rust開発者がNVIDIA GPUを操作するための手段を提供します。CUDA driver API向けのホスト側クレートが含まれており、コンテキスト、ストリーム、デバイスバッファ、イベントに加えて、遅延実行可能で組み合わせ可能な非同期処理を扱えます。また、デバイス側のカーネルプログラミングモデルを2種類備えています。
cuda-oxideは従来型のSIMTモデルを対象としており、スレッド単位のコードを記述し、スレッド、ブロック、共有メモリを自分で管理します。独自のrustcコード生成バックエンドとして実装されており、Rustコードを事前にPTXへコンパイルします。cutile-rsはTileモデルを対象としており、カーネルが多次元テンソルのタイル全体を処理し、コンパイラが各アーキテクチャへの処理の割り当てを担います。proc-macroプラグインとして実装され、初回起動時にJITコンパイルします。
どちらのモデルも、GPUの起動境界をまたいでRustの所有権ルールを適用します。起動前に可変バッファを互いに重複しない部分へ分割し、不変バッファは共有します。このプロジェクトは初期段階の研究として説明されているため、未実装の機能やAPIの変更があることを想定してください。
主な機能
- 01Rustで使えるホスト側のdriverバインディング、コンテキスト、ストリーム、デバイスバッファ、イベント。
- 02スレッドとブロックのインデックスを明示的に扱い、PTXへ事前コンパイルするSIMTカーネルモデル。
- 03テンソルのタイルを処理し、初回起動時にJITコンパイルするTileカーネルモデル。
- 04カーネル起動をまたいでデバイスバッファに適用される、所有権に基づく借用ルール。
- 05両モデルのカーネルを、共有デバイスバッファ上で同じストリームから実行可能。
ユースケース
- スレッド、warp、共有メモリを細かく制御する必要がある場合に、RustでカスタムGPUカーネルを作成する。
- 密なテンソル処理や数値計算をタイル演算として表現し、スケジューリングをコンパイラに任せる。
- 共通のランタイムクレート上で、組み合わせ可能なデバイス処理を使って非同期GPUパイプラインを構築する。
収録されている特集
トピック
よくある質問
- cuda-rust とは?
- NVIDIAのRust向けCUDAプラットフォーム。ホスト用ランタイムクレートに加え、RustでGPUカーネルを書くためのSIMTモデルとTileモデルを提供します。 CUDA Rustは、Rust開発者がNVIDIA GPUを操作するための手段を提供します。CUDA driver API向けのホスト側クレートが含まれており、コンテキスト、ストリーム、デバイスバッファ、イベントに加えて、遅延実行可能で組み合わせ可能な非同期処理を扱えます。また、デバイス側のカーネルプログラミングモデルを2種類備えています。
- cuda-rust は無料で使えますか?ライセンスは?
- cuda-rust は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- cuda-rust は今もメンテナンスされていますか?
- 活発にメンテナンス中。cuda-rust の最終コミットは 2026年11月5日 です。
- cuda-rust は何に使えますか?
- スレッド、warp、共有メモリを細かく制御する必要がある場合に、RustでカスタムGPUカーネルを作成する。 密なテンソル処理や数値計算をタイル演算として表現し、スケジューリングをコンパイラに任せる。 共通のランタイムクレート上で、組み合わせ可能なデバイス処理を使って非同期GPUパイプラインを構築する。
- cuda-rust はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/NVIDIA/cuda-rust
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
タスクグラフを使った並列処理向けのヘッダーオンリーC++ライブラリ。CPUのマルチスレッドとCUDA GPUに対応。
CPU・GPU・メモリ使用量を行単位で表示し、AIによる最適化案も任意で生成できるPythonプロファイラー。
推測デコード、推測プリフィル、カスタムカーネルを活用し、コンシューマー向けGPUやAMD/NVIDIA混在環境で動作するC++製LLM推論サーバー。
NVIDIA GPU向けの高性能GEMMや関連する線形代数カーネルを記述するための、CUDA C++テンプレートライブラリとPython DSL。