ドキュメント / 日本語ソースを見る ↗

互換性ガイド

English | 简体中文 | 日本語 | Deutsch | Русский

ドキュメント · プログラミングガイド · 中文

1. CUDA の概念

CUDA の既知の概念 Ruda の対応インターフェース
ホストとデバイスの責務 ホスト側 Rust コードとカーネル DSL
Grid/block RudaCount/RudaDim
1 次元のグローバルスレッド位置 ABSOLUTE_POS
メモリ確保と転送 ComputeClient のメモリおよび読み戻しインターフェース
カーネルのコンパイルと起動 ruda-kernel、ruda-compiler、デバイスランタイム
BLAS、DNN、FFT、疎行列ライブラリ ruBLAS、ruDNN、ruFFT、ruSPARSE
集合通信 ruCCL

これは概念の対応表であり、関数をそのまま置き換えるものではありません。Ruda API の所有権、引数、同期、エラーの契約に従ってください。

2. CUDA C++ と PTX

Ruda は CUDA C++/NVRTC 経路と、明示的に選択する直接 PTX 経路を提供します。どちらも NVIDIA ドライバ経由で実行します。

CUDA C++ コンパイル経路は、任意の CUDA プロジェクトの無変更コンパイル、CUDA Runtime/Driver ABI の完全な置き換え、既存ライブラリバイナリの直接再リンクを提供しません。本ガイドに、すべての CUDA アプリケーションを自動変換するコマンドはありません。

直接 PTX は生成器が実装する Kernel IR を処理するもので、任意の PTX 入力プログラムを処理するものではありません。未対応の演算が別のコンパイラに自動フォールバックすることはありません。

3. バックエンドと dtype

バックエンドごとにスカラー型、アトミック演算、行列命令、メモリレイアウト、同期が異なります。デバイス機能を問い合わせてから、各演算の型とレイアウトの要件を確認してください。

共通の DType 列挙型に含まれる型が、すべてのバックエンドのすべての演算で使えるとは限りません。同じ汎用 Rust インターフェースでも、丸めや性能が同一になる保証はありません。

HIP は別の実行インターフェースを使います。PTX 命令セットのバージョン番号を適用しないでください。

4. Cargo と命名

ライブラリ表示名、Cargo パッケージ名、Rust のインポート名は異なる場合があります。計算ライブラリ一覧を参照してください。feature が利用可能な組み合わせを制御し、既定のビルドですべての経路が有効になるわけではありません。

カーネルフロントエンドは #[ruda]、RudaCount、RudaDim を使います。

5. バージョンと数値検証

ソースのバージョン、ロックファイル、feature、コンパイラバックエンド、PTX/SM、ドライバ、GPU の組み合わせが検証構成を定義します。

計算ライブラリの呼び出しを置き換える場合は、レイアウト、転置、インデックスの基数、入力と累積の dtype、正規化、特殊値、同期を一致させてください。例えば ruFFT は 2 のべき乗でない長さをパディングするため、任意長 FFT の意味論をそのまま保つ代替ではありません。