chelsea0x3b/cudarc
Safe rust wrapper around CUDA toolkit
它解决了什么问题
它为与NVIDIA CUDA工具包交互提供了一个最小且安全的Rust API,使开发者能够在不直接处理通常用于CUDA开发的原始、不安全的C风格FFI(外部函数接口)调用的情况下,利用GPU加速。
它如何工作
cudarc 在CUDA工具包库周围创建了一个分层包装系统。它提供了三个级别的访问:
- sys:通过bindgen生成的原始FFI API。
- result:一个轻量级包装器,将CUDA函数返回值转换为Rust的
Result类型。 - safe:高层级、易用的抽象,优先考虑安全性和使用便捷性。
它支持广泛的CUDA库,包括驱动API、NVRTC(运行时编译)、cuBLAS、cuDNN、NCCL等。它还支持灵活的链接选项(动态加载、动态链接或静态链接),并支持多个CUDA版本。
适用人群
希望使用安全、符合Rust习惯的接口编写高性能GPU内核并管理CUDA资源(如内存分配和数据传输)的Rust开发者。
主要特性
- 广泛的库支持:对关键CUDA工具(如cuBLAS、cuDNN、NCCL和cuSPARSE)的包装。
- 运行时编译:与NVRTC集成,支持在运行时编译CUDA内核。
- 灵活的配置:通过特性标志支持多个CUDA和cuDNN版本。
- 便捷的内核启动:使用构建器模式指定内核参数和启动配置。
相关
- Dispatch
- 项目
- Dispatch
- 项目
- Dispatch