NVML or NVIDIA Management Library is a C-based API that can be used for monitoring NVIDIA GPU devices. It's closed source but can be downloaded as part of the GPU Deployment Kit.
The NVML API Reference describe various methods that are available as part of NVML.
The nvml.h
file is included in this repository so that we don't depend on
the presence of NVML in the build environment.
The bindings.go
file is the cgo bridge which calls the NVML functions. The
cgo preamble in bindings.go
uses dlopen
to dynamically load NVML and makes
its functions available.