Repolode
NVIDIA

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パイプラインを構築する。

収録されている特集

トピック

#gpu#cuda#rust#high-performance-computing#nvidia#gpu-programming#async#compiler-backend#heterogeneous-computing#programming-languages

よくある質問

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に対応。

バックエンド・API#concurrent-programming#multithreading#parallel-computing
1.2万+8 今週1417C++Other更新 22 日前