#cuda #api-calls #gpu

cuda-oxide

cuda-oxide 为 CUDA 提供了一个高级、Rust 风格的包装。它在使用硬件时提供了最佳的安全性。

7 个不稳定版本 (3 个破坏性更新)

0.4.0 2021 年 6 月 16 日
0.3.1 2021 年 6 月 15 日
0.2.1 2021 年 6 月 11 日
0.1.1 2021 年 6 月 9 日

#733机器学习

每月 25 次下载

GPL-3.0-or-later

1MB
23K SLoC

cuda-oxide

cuda-oxideCUDA 的一个 安全 包装。使用 cuda-oxide,您可以执行和协调 CUDA 内核。

安全哲学

cuda-oxide 不提供 任何 GPU 端 CUDA 代码的安全性。它不将 Rust 编译成 PTX。 cuda-oxide 在使用 CUDA 库时提供了一般 CPU 级别的安全性,以及在处理 GPU 缓冲区和对象时提供了最佳可用性安全性。

目前被认为是安全的事物示例

  • 从未初始化的 GPU 缓冲区读取到主机内存
  • 一些无效的 libcuda 操作,这些操作会导致 libcuda 停止接受任何 API 调用
  • 设置可能对整个设备产生副作用的各种属性
  • 写入只读设备内存

支持的功能

  • 设备管理
  • 上下文管理
  • 模块管理
  • 模块 JIT 编译
  • 流管理
  • 内核执行
  • 设备内存读写

不支持的功能

  • 内存池
  • 统一寻址
  • 事件和流事件
  • 流状态轮询
  • 流图捕获
  • 流批量内存操作
  • 外部内存
  • 多设备辅助工具(可能已经提供,但不易使用)
  • 纹理和表面
  • OpenGL/VDPAU/EGL 兼容性

示例

查看 examples 目录以获取使用示例。

依赖项

~1.5MB
~35K SLoC