1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
/*! Rust bindings for the [NVIDIA Management Library](https://developer.nvidia.com/nvidia-management-library-nvml) (NVML), a C-based programmatic interface for monitoring and managing various states within NVIDIA (primarily Tesla) GPUs. **If you want a safe wrapper, please see the crate [`nvml-wrapper`](https://crates.io/crates/nvml-wrapper).** It is intended to be a platform for building 3rd-party applications, and is also the underlying library for NVIDIA's nvidia-smi tool. NVML supports the following platforms: * Windows * Windows Server 2008 R2 64-bit * Windows Server 2012 R2 64-bit * Windows 7 64-bit * Windows 8 64-bit * Windows 10 64-bit * Linux * 64-bit * 32-bit * Hypervisors * Windows Server 2008R2/2012 Hyper-V 64-bit * Citrix XenServer 6.2 SP1+ * VMware ESX 5.1/5.5 And the following products: * Full Support * Tesla products Fermi architecture and up * Quadro products Fermi architecture and up * GRID products Kepler architecture and up * Select GeForce Titan products * Limited Support * All GeForce products Fermi architecture and up ## Compilation The NVML library comes with the NVIDIA drivers and is essentially present on any system with a functioning NVIDIA graphics card. The compilation steps vary between Windows and Linux, however. ### Windows The NVML library dll can be found at `%ProgramW6432%\NVIDIA Corporation\NVSMI\` (which is `C:\Program Files\NVIDIA Corporation\NVSMI\` on my machine). You will need to add this folder to your `PATH` in order to have everything work properly at runtime; alternatively, place a copy of the dll in the same folder as your executable. ### Linux The NVML library can be found at `/usr/lib/nvidia-<driver-version>/libnvidia-ml.so`; on my system with driver version 375.51 installed, this puts the library at `/usr/lib/nvidia-375/libnvidia-ml.so`. The `sys` crates' build script will automatically add the appropriate directory to the paths searched for the library, so you shouldn't have to do anything manually in theory. ## NVML Support These bindings were generated for NVML version 8. Each new version of NVML is guaranteed to be backwards-compatible according to NVIDIA, so these bindings should be useful regardless of NVML version bumps. ## Rust Version Support Currently supports Rust 1.19.0 or greater. The target version is the **latest** stable version; I do not intend to pin to an older one at any time. */ pub mod bindings;