開発
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との相互運用を支援する計画です。