文档 / 简体中文查看源码 ↗

全栈 Crate 与 API 索引

文档首页 · English

按任务选择入口层

任务 首选 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 类型混用。