全栈 Crate 与 API 索引
按任务选择入口层
| 任务 | 首选 API | 指南 |
|---|---|---|
| 编写 GPU Kernel | ruda、Kernel DSL、运行时客户端 |
编程指南 |
| 使用 typed tensor 与梯度 | ruda_tensor::api::Tensor、Autodiff<B> |
张量实用示例 |
| 选择张量执行目标 | Host、Cuda、Rocm、Wgpu、Router、Remote |
后端组合 |
| 调用领域算子 | ruBLAS、ruDNN、ruPRIM 等领域库 | 计算库 |
| 构建和训练模型 | Module、ruda-nn、ruda-optim |
训练指南 |
| 半精度存储与 FP32 更新 | Module::to_dtype、Fp32MasterOptimizer、GradientsAccumulator::accumulate_with_dtype |
混合精度训练 |
| 保留混合存储与待累积梯度 | TrainingRecord::capture_with_dtypes、restore_with_dtypes |
训练状态 |
| 同步副本或对集合通信求导 | DataParallel、ruda_autodiff::collective |
分布式训练 |
| 加载样本或权重 | Dataset、DataLoaderBuilder、ModuleSnapshot |
数据与存储 |
| 运行本地模型推理 | rullm |
模型推理 |
包名与源码入口
Cargo 包名、仓库目录名和 Rust 导入名可能不同。例如 ruFFT 位于 ruFFT/,安装包名为 ruda-fft,导入名为 rufft;ruSOLVER 的安装包名为 ruda-solver,导入名为 rusolver。
下表覆盖解析后的 workspace,包括通过路径依赖加入的 CANN 驱动和测试支持包。包名链接指向 Cargo manifest,源码链接指向 crate 入口。Feature 与版本以 manifest 为准,不能根据目录名推断。测试项目与原生 PyTorch 扩展不是普通的 crates.io 安装目标。
Kernel、编译器与运行时
| Cargo 包名 | Rust 导入名/源码 | 职责 |
|---|---|---|
ruda |
ruda |
GPU Kernel 门面与运行时重导出;编写 GPU 内核的入口 |
ruda-core |
ruda_core |
共享 IR、张量数据、dtype、设备与内存契约 |
ruda-compiler |
ruda_compiler |
内核前端与目标代码生成 |
ruda-kernel |
ruda_kernel |
Rust Kernel DSL、启动接口和设备张量工具 |
ruda-runtime |
ruda_runtime |
计算客户端/服务端、存储、流与调度 |
ruda-kernel-macros |
ruda_kernel_macros |
将 Kernel Rust 转为 IR 的过程宏 |
ruda-ir-macros |
ruda_ir_macros |
IR 实现的派生宏 |
驱动与昇腾设备程序
| Cargo 包名 | Rust 导入名/源码 | 职责 |
|---|---|---|
ruda-driver-cuda |
ruda_driver_cuda |
CUDA 设备、分配、编译与启动 |
ruda-driver-hip |
ruda_driver_hip |
AMD HIP 运行时适配 |
ruda-hip-sys |
ruda_hip_sys |
底层 HIP 运行时绑定 |
ruda-driver-wgpu |
ruda_driver_wgpu |
WGPU 初始化、存储和计算执行 |
ruda-driver-cpu |
ruda_driver_cpu |
CPU Kernel 运行时驱动;区别于 Host 张量后端 |
ruda-driver-cann |
ruda_driver_cann |
动态加载的 CANN AscendCL 接口 |
ruda-ascend-kernels |
ruda_ascend_kernels |
Rust 昇腾设备程序与指令降级 |
领域计算库
| Cargo 包名 | Rust 导入名/源码 | 职责 |
|---|---|---|
rublas |
rublas |
矩阵/向量算子与后端分发 |
ruDNN |
rudnn |
注意力、卷积、池化、归一化与 MoE |
ruPRIM |
ruprim |
归约、扫描、索引与逐元素内核 |
ruda-fft |
rufft |
傅里叶变换 |
ruRAND |
rurand |
随机采样与分布 |
ruSPARSE |
rusparse |
稀疏格式与算子 |
ruTENSOR |
rutensor |
张量收缩、置换与归约 |
ruCCL |
ruccl |
集合通信算法 |
ruda-solver |
rusolver |
主机科学求解器与可选设备求解内核 |
ruintegrate |
ruintegrate |
主机数值积分、ODE 积分与事件定位 |
rublas-host |
rublas_host |
CPU 带步长和批量矩阵乘 |
ruDNN-host |
rudnn_host |
CPU 神经网络算子实现 |
ruPRIM-host |
ruprim_host |
CPU 张量原语与索引 |
ruFFT-host |
rufft_host |
CPU 实数傅里叶变换 |
ruRAND-host |
rurand_host |
主机随机数生成 |
张量、微分与执行组合
| Cargo 包名 | Rust 导入名/源码 | 职责 |
|---|---|---|
ruda-tensor |
ruda_tensor |
后端契约与 api feature 下的 api::Tensor |
ruda-tensor-config |
ruda_tensor_config |
自动微分/融合共享配置 |
ruda-tensor-device |
ruda_tensor_device |
DeviceBackend、CUDA 适配器与领域库分发 |
ruda-tensor-host |
ruda_tensor_host |
Host CPU 张量后端与步长布局 |
ruda-tensor-wgpu |
ruda_tensor_wgpu |
WGPU 张量后端与设备初始化 |
ruda-tensor-rocm |
ruda_tensor_rocm |
ROCm 张量适配器 |
ruda-tensor-tch |
ruda_tensor_tch |
LibTorch 张量适配器 |
ruda-autodiff |
ruda_autodiff |
梯度图、反向传播与重计算 |
ruda-fusion |
ruda_fusion |
张量算子融合规划与执行 |
ruda-tensor-router |
ruda_tensor_router |
本地多后端路由与字节桥接 |
ruda-tensor-remote |
ruda_tensor_remote |
远程张量客户端/服务端 |
ruda-communication |
ruda_communication |
传输协议、WebSocket 与张量数据服务 |
模型、训练、存储与集成
| Cargo 包名 | Rust 导入名/源码 | 职责 |
|---|---|---|
ruda-model |
ruda_model |
模块参数、配置、Record 与数据加载器 |
ruda-model-macros |
ruda_model_macros |
Config、Module、Record 派生宏 |
ruda-model-codegen |
ruda_model_codegen |
模型派生宏使用的代码生成器 |
ruda-nn |
ruda_nn |
神经网络层、激活与损失 |
ruda-optim |
ruda_optim |
优化器、梯度累积/裁剪与调度 |
ruda-dataset |
ruda_dataset |
索引数据集、数据源与变换 |
ruda-io |
ruda_io |
主机 I/O 与可选网络下载 |
ruda-store |
ruda_store |
模型快照、Rudapack、safetensors 与 PyTorch 导入 |
ruda-llm |
rullm |
模型加载与自回归推理 |
ruda-torch-native |
ruda_torch_native |
Python ruda_torch 包的原生 cdylib;源码构建组件 |
测试与消费者支持
| Cargo 包名 | Rust 导入名/源码 | 职责 |
|---|---|---|
ruda-test-runtime |
ruda_test_runtime |
运行时/内核测试基础设施 |
ruda-test-utils |
ruda_test_utils |
内核测试辅助 |
ruda-facade-consumer |
ruda_facade_consumer |
门面 feature 连接的外部消费者测试项目 |
ruda-store-pytorch-tests |
ruda_store_pytorch_tests |
PyTorch 格式互操作测试 |
ruda-store-safetensors-tests |
ruda_store_safetensors_tests |
Safetensors 格式互操作测试 |
查找具体方法
原生 Python 方法见 PyTorch API 参考、模型编译、静态图和 LoRA/NF4 微调。算子/应用选择共享全栈自动调优策略。
架构指南介绍 mHC、压缩注意力/缓存和 Python Muon;分布式训练指南介绍显式设备、rendezvous、副本初始化、加权归约和逐 rank 恢复。
Typed tensor 方法位于 ruda-tensor/src/api,后端 trait 位于 ruda-tensor/src/backend,领域接口可从各计算库手册进入。使用符号前,先启用暴露该模块的 feature。
设备内存、提交和同步见 Runtime API,后端初始化和启动契约见 Driver API。模型参数与 Record 类型从 ruda-model 导出入口 查找,不要与编译器中名称相近的 IR 类型混用。