--pstate 0 is an alternative to clocks values to set the device in P0
mode, 1 will set appl. clocks to default P1 clocks, 2 to default P2..
--plimit 150W really works on the 9xx and allow to limit/reduce the gpu usage
Note: nvml interface is only available on linux and windows x64
Signed-off-by: Tanguy Pruvot <tanguy.pruvot@gmail.com>
made for linux and require libpci-dev (optional)
if libpci is not installed, card's vendor names are not handled...
Note: only a few vendor names were added, common GeForce vendors.
Signed-off-by: Tanguy Pruvot <tanguy.pruvot@gmail.com>
Since linux driver 346.72, nvidia-smi allow to query gpu/mem clocks
Tested ok on the Asus Strix 970, but fails on the Gigabyte 750 Ti
system could require first persistence mode and app clock unlock :
nvidia-smi -pm 1
nvidia-smi -acp 0
supported values are displayed by
nvidia-smi -q -d SUPPORTED_CLOCKS
Signed-off-by: Tanguy Pruvot <tanguy.pruvot@gmail.com>
heavy: reduce by 256 threads default intensity to all -i 20
cuda: put static thread init bools outside the code (made once)
api: fix nvml header to build without
nvml.dll doesnt exists for 32bit binaries! use nvapi to get infos
seems to have more/different features than NVML... like pstate etc..
This is nvapi r343 : https://developer.nvidia.com/nvapi
Signed-off-by: Tanguy Pruvot <tanguy.pruvot@gmail.com>
There was a different behavior on linux and visual studio
That was making it hard to link functions correctly
That remove some ifdef / extern "C" requirements
note about x86 releases, x86 nvml.dll is not installed on Windows x64!
Based on mwhite73 <marvin.white@gmail.com> implementation
Linked to the api system
Also fix Makefile to support standard c++ files
This prevent nvcc use without device code
Signed-off-by: Tanguy Pruvot <tanguy.pruvot@gmail.com>