11个版本 (7个重大更新)
0.8.0 | 2024年2月10日 |
---|---|
0.7.0 | 2023年1月21日 |
0.6.0 | 2022年5月27日 |
0.5.0 | 2020年12月7日 |
0.3.0 | 2017年7月20日 |
#355 in 硬件支持
36,998 每月下载量
在 28 个crate中使用 (4个直接使用)
355KB
9K SLoC
nvml-wrapper-sys
Rust语言对NVIDIA管理库(NVML)的绑定,NVML是一个基于C的程序接口,用于监控和管理NVIDIA GPU中的各种状态。
它旨在作为一个第三方应用程序的平台,同时也是NVIDIA nvidia-smi工具的底层库。
请参阅 nvml-wrapper
以获取在这些绑定之上的安全包装。
绑定类型
这些绑定是使用 bindgen 的功能创建的,以生成在 libloading
crate提供的功能之上的包装器。这意味着它们是为在运行时加载NVML库而设计的;它们不适合在构建时将NVML链接到程序(静态或动态)。
做出这个选择的原因是NVML是这样的库,你实际上总是希望在运行时加载它,以下是一些原因
- NVIDIA不提供NVML的静态版本,因此无论如何都不可能静态链接它
- 在构建时链接到NVML意味着生成的二进制文件只能在具有NVIDIA GPU和良好配置的NVIDIA驱动程序安装的系统上运行
在运行时加载NVML意味着可以在没有相关硬件的系统上在运行时删除与NVIDIA相关的功能。
如果确实有理由,我愿意考虑在这个crate中维护这两种类型的绑定;请提交一个问题。
NVML支持
这些绑定是为NVML版本11生成的。NVIDIA保证NVML的每个新版本都将向后兼容,因此这些绑定应该适用于任何NVML版本更新。
旧版功能
有时在新的NVML版本中会有功能级别的API版本更新。例如
nvmlDeviceGetComputeRunningProcesses
nvmlDeviceGetComputeRunningProcesses_v2
nvmlDeviceGetComputeRunningProcesses_v3
旧版本的函数通常将继续与新版本的NVML版本一起工作;然而,新版本的函数版本将不会与旧版本的NVML安装一起工作。
默认情况下,这些绑定只包括函数的最新版本。如果您需要调用旧函数的能力,请启用 legacy-functions
功能。
许可证
根据您的选择,许可协议为Apache许可证版本2.0或MIT许可证。除非您明确声明,否则您根据Apache-2.0许可证定义的任何有意提交以包含在此crate中的贡献,应如上所述双重许可,不附加任何额外条款或条件。
依赖关系
~0–5MB