You can get basic information using this library:
https://github.com/falahati/NvAPIWrapper
For now, it doesn't support clock speed or GPU usage, nor it does support sensor information (temp), but it can get you the bus width, memory, used memory and cores. However, there is a solid ground for adding new functions to the library and as result, you can also expand it to fit your needs, probably in less than an hour or something if you know what function of NVAPI you need to add to the library and you are familiar with basics of marshaling.
Update 2018: It now supports GPU clock information, temp sensors, and usage information.
But for the information that is currently retrievable, you need to get a list of all currently connected physical GPUs. This is possible using the NvAPIWrapper.GPU.PhysicalGPU.GetPhysicalGPUs()
static method.
This method returns an array of NvAPIWrapper.GPU.PhysicalGPU
s.
Now you can retrieve the information you desire using the properties of this class.
NvAPIWrapper.GPU.PhysicalGPU.Bios
: Gives you VBIOS version
NvAPIWrapper.GPU.PhysicalGPU.Board
: Gives you graphic board information
NvAPIWrapper.GPU.PhysicalGPU.BusInfo
: Gets GPU bus information
NvAPIWrapper.GPU.PhysicalGPU.CUDACores
: Gets total number of cores defined for this GPU
NvAPIWrapper.GPU.PhysicalGPU.CurrentPCIEDownStreamWidth
: Gets number of PCIE lanes being used for the PCIE interface downstream
NvAPIWrapper.GPU.PhysicalGPU.FullName
: Gets GPU full name
NvAPIWrapper.GPU.PhysicalGPU.GPUType
: Indicates if the GPU is integrated or discrete
NvAPIWrapper.GPU.PhysicalGPU.IRQ
: Gets GPU interrupt number
NvAPIWrapper.GPU.PhysicalGPU.IsQuadro
: Indicates if this GPU is of the Quadro line of products
NvAPIWrapper.GPU.PhysicalGPU.MemoryInfo
: Gives you every information about the memory and memory usage
NvAPIWrapper.GPU.PhysicalGPU.PCIIdentifiers
: Gives you information about the hardware PCI ids
NvAPIWrapper.GPU.PhysicalGPU.PhysicalFrameBufferSize
and NvAPIWrapper.GPU.PhysicalGPU.VirtualFrameBufferSize
: Gets the size of frame buffer in KB for this GPU
NvAPIWrapper.GPU.PhysicalGPU.ShaderSubPipeLines
: Gets number of GPU Shader SubPipes or SM units
If you need a specific function you can't find in this version of the library, please feel free to open an issue.