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 硬件支持

Download history 6730/week @ 2024-04-20 7717/week @ 2024-04-27 6904/week @ 2024-05-04 6499/week @ 2024-05-11 5833/week @ 2024-05-18 7170/week @ 2024-05-25 7223/week @ 2024-06-01 6609/week @ 2024-06-08 8314/week @ 2024-06-15 7945/week @ 2024-06-22 6549/week @ 2024-06-29 6570/week @ 2024-07-06 6984/week @ 2024-07-13 7461/week @ 2024-07-20 7809/week @ 2024-07-27 13645/week @ 2024-08-03

36,998 每月下载量
28 个crate中使用 (4个直接使用)

MIT/Apache

355KB
9K SLoC

nvml-wrapper-sys

Crates.io version Crates.io downloads Docs.rs docs

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.0MIT许可证
除非您明确声明,否则您根据Apache-2.0许可证定义的任何有意提交以包含在此crate中的贡献,应如上所述双重许可,不附加任何额外条款或条件。

依赖关系

~0–5MB