開発

CUDA Rustの紹介:GPUカーネルを書く二つの方法

原題: Introducing CUDA Rust: Two Tracks for Writing GPU Kernels

重要初期段階オープンソース

RustからGPUカーネルを直接PTXへ

NVIDIAは、RustでGPUカーネルを書き、PTXへ直接コンパイルするCUDA Rustの二つの開発経路を公開しました。

SIMT方式のcuda-oxideは、Rustコンパイラの独自codegen backendを使い、カーネル関数をRust MIR、Pliron、LLVM IRからPTXへ変換します。

cuda-oxideはLinux、compute capability 8.0以降、CUDA 12.x以降、clang、指定されたnightly Rust toolchainを必要とします。

Tile方式のcutile-rsは、安定版Rust上でCUDA Tile IRへJITコンパイルし、GPUのスレッド割り当てとメモリ配置をコンパイラへ任せます。

cutile-rsはcompute capability 8.0以降、CUDA 13.3、Rust 1.89以降、Linuxで利用できます。

メモリ安全性をコンパイル時に検査

cuda-oxideはDisjointSliceと起動契約により、GPUスレッド間の書き込み競合につながる別名参照を検査します。

cutile-rsはテンソル分割とRustの所有権を使い、各タイルへ排他的な書き込み範囲を割り当てます。

cutile-rsはcrates.ioで公開され、Hugging FaceのGrout推論エンジンとmistral.rsで利用されています。

一方、cuda-oxideはearly alphaです。NVIDIAは両方とも本番利用の準備が整っておらず、APIと対応範囲が変わると明記しています。

NVIDIAは2027年以降もCUDA Rustを成熟させ、CUDA C++やCUDA Pythonとの相互運用を支援する計画です。

原文

← 日次まとめへ戻る