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

テンソルとフレームワーク

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

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

1. レイヤー

レイヤー コンポーネント 責任
共有データと契約 ルダコア Dtype、shape、devices、およびコンパイルコントラクト
デバイス テンソル ruda-kernel::tensor ストレージ、メタデータ、割り当て、およびレイアウト
デバイス バックエンド ruda-tensor-device テンソル演算をライブラリを計算するためにディスパッチします
テンソル API ruda テンソル バックエンドの汎用テンソル インターフェイス
フュージョン ルダ・フュージョン オペレーションフュージョン
自動微分 ruda-autodiff 自動微分
モデルとトレーニングのコンポーネント ruda-model、ruda-nn、ruda-optim、ruda-store、ruda-dataset モデル、ネットワーク モジュール、オプティマイザー、ストレージ、およびデータ

2. デバイス テンソル

RudaTensor<R> には、クライアント、ハンドル、メタ、デバイス、dtype、および qparams が含まれます。ストレージ ハンドルはシェイプ/ストライドとは別のものであり、量子化パラメータは別個に保存されます。

低レベルの操作では、入力がデバイスを共有していること、dtype が計算と一致していること、および量子化データが正しいパラメーターを保持していることを確認する必要があります。連続ストレージ、転置ビュー、実体化コピーは異なります。

割り当て、連続変換、再形成、順列、転送、リードバックについては、デバイス テンソル モジュール を参照してください。

3. NVIDIA バックエンド

ruda-tensor-device/cuda は ruda_tensor_device::cuda を有効にします。

cuda-fusion がない場合、Cuda<F, I> は DeviceBackend<CudaRuntime, F, I, u8> の別名になります。この機能を有効にすると、Fusion ラッパーが使用されます。 F のデフォルトは f32、I は i32 です。 cuda.rs を参照してください。

これはテンソル バックエンドであり、CUDA ドライバー API ハンドルではありません。バックエンドを選択するときは、各オペレーションの dtype と機能要件を確認してください。

4. 計算ライブラリのディスパッチ

行列演算は ruBLAS、ニューラルネットワーク演算は ruDNN、帰約とインデックス操作は ruPRIM、FFT は ruFFT、乱数生成は ruRAND に委譲されます。デバイス Backend のディスパッチモジュールを参照してください。

5. スパーステンソル、量子化、およびバッチリードバック

ruda_tensor::api::CsrTensor<B> は、SparseOps を通じてスパース構造と浮動小数点値テンソルを組み合わせます。スパース/デンス乗算、転置、加算、収集、散乱加算、およびサンプリングされた演算を提供します。これは rusparse::tensor::CsrTensor<R> とは異なります。前者はバックエンドに対して汎用的であり、後者はランタイムに対してです。 スパースガイドを参照してください。

量子化には、多次元ブロック scales、非最終軸に沿ったパッキングおよび部分パック、レイアウト変換、選択されたインデックス付け操作、および融合量子化リードバックが含まれます。論理形状はパックされたストレージ形状とは異なります。 FP8/FP4 エンコードを整数値として変換しないでください。 カーネル量子化、量子化テンソル レイアウト、および 融合トランザクション を参照してください。運用対象範囲は制度によって異なります。

バッチ リードバックは、実際のデバイスとストリームごとに記述子を編成します。 テンソル トランザクション を参照してください。

6. トレーニングとモデル推論