Introduction to the NVIDIA vGPU Software Management SDK#

The NVIDIA vGPU software Management SDK enables third party applications to monitor and control NVIDIA physical GPUs and virtual GPUs that are running on virtualization hosts. The NVIDIA vGPU software Management SDK supports control and monitoring of GPUs from both the hypervisor host system and from within guest VMs.

NVIDIA vGPU software enables multiple virtual machines (VMs) to have simultaneous, direct access to a single physical GPU, using the same NVIDIA graphics drivers that are deployed on non-virtualized operating systems. For an introduction to NVIDIA vGPU software, see Virtual GPU Software User Guide.

NVIDIA vGPU Software Management Interfaces#

The local management interfaces that are supported within an NVIDIA vGPU software server are shown in Figure 38.

Diagram showing NVIDIA vGPU software server interfaces for GPU management, such as nvidia-smi and NVML

Figure 38 NVIDIA vGPU Software server interfaces for GPU management#

For a summary of the NVIDIA vGPU software server interfaces for GPU management, including the hypervisors and guest operating systems that support each interface, and notes about how each interface can be used, see Table 5.

Table 5 Summary of NVIDIA vGPU Software server interfaces for GPU management#

Interface

Hypervisor

Guest OS

Notes

nvidia-smi command

Any supported hypervisor

Windows, 64-bit Linux

Command line, interactive use

NVIDIA Management Library (NVML)

Any supported hypervisor

Windows, 64-bit Linux

Integration of NVIDIA GPU management with third-party applications

NVIDIA Control Panel

Windows

Detailed control of graphics settings, basic configuration reporting

Windows Performance Counters

Windows

Performance metrics provided by Windows Performance Counter interfaces

NVWMI

Windows

Detailed configuration and performance metrics provided by Windows WMI interfaces

Introduction to NVML#

NVIDIA Management Library (NVML) is a C-based API for monitoring and managing various states of NVIDIA GPU devices. NVML is delivered in the NVIDIA vGPU software Management SDK and as a runtime version:

  • The NVIDIA vGPU software Management SDK is distributed as separate archives for Windows and Linux.

    The SDK provides the NVML headers and stub libraries that are required to build third-party NVML applications. It also includes a sample application.

  • The runtime version of NVML is distributed with the NVIDIA vGPU software host driver.

Each new version of NVML is backwards compatible, so that applications written to a version of the NVML can expect to run unchanged on future releases of the NVIDIA vGPU software drivers and NVML library.

For details about the NVML API, see:

NVIDIA vGPU Software Management SDK contents#

The SDK consists of the NVML developer package and is distributed as separate archives for Windows and Linux:

  • Windows: grid_nvml_sdk_596.86.zip ZIP archive

  • Linux: grid_nvml_sdk_595.91.07.tgz GZIP-compressed tar archive

The contents of these archives are summarized in the following table.

Content

Windows Folder

Linux Directory

SDK Samples And Tools License Agreement

Virtual GPU Software Management SDK User Guide (this document)

NVML API documentation, on Linux as man pages

nvml_sdk/doc/

nvml_sdk/doc/

Sample source code and platform-dependent build files:

  • Windows: Visual C project

  • Linux: Make file

nvml_sdk/example/

nvml_sdk/examples/

NVML header file

nvml_sdk/include/

nvml_sdk/include/

Stub library to allow compilation on platforms without an NVIDIA driver installed

nvml_sdk/lib/

nvml_sdk/lib/