I want to get some basic GPU data: name, RAM size, and do temperature monitoring.
From NVIDIA docs, it's not clear which library to use. Is NVAPI a legacy API which should be avoided?
I believe one of the main differences is NVAPI is only available on windows
Additionally, NVML is intended for third party use:
Each new version of NVML is backwards compatible and is intended to be a platform for building 3rd party applications. https://developer.nvidia.com/nvidia-management-library-nvml
NVAPI is intended for internal use:
NVAPI is constantly and rigorously tested not only for end-users, but for internal use at NVIDIA and our closest partners. https://developer.nvidia.com/nvapi
Last, NVML is mostly for monitoring. NVAPI appears to have a greater ability to set attributes on the device (such as fan speed)