Virtual GPU Software User Guide

Documentation for administrators that explains how to install and configure NVIDIA Virtual GPU manager, configure virtual GPU software in pass-through mode, and install drivers on guest operating systems.

1. Introduction to NVIDIA vGPU Software

NVIDIA vGPU software is a graphics virtualization platform that provides virtual machines (VMs) access to NVIDIA GPU technology.

1.1. How NVIDIA vGPU Software Is Used

NVIDIA vGPU software can be used in several ways.

1.1.1. NVIDIA vGPU

NVIDIA Virtual GPU (vGPU) 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. By doing this, NVIDIA vGPU provides VMs with unparalleled graphics performance, compute performance, and application compatibility, together with the cost-effectiveness and scalability brought about by sharing a GPU among multiple workloads.

For more information, see Installing and Configuring NVIDIA Virtual GPU Manager.

1.1.2. GPU Pass-Through

In GPU pass-through mode, an entire physical GPU is directly assigned to one VM, bypassing the NVIDA Virtual GPU Manager. In this mode of operation, the GPU is accessed exclusively by the NVIDIA driver running in the VM to which it is assigned. The GPU is not shared among VMs.

For more information, see Using GPU Pass-Through.

1.1.3. Bare-Metal Deployment

In a bare-metal deployment, you can use NVIDIA vGPU software graphics drivers with Quadro vDWS and GRID Virtual Applications licenses to deliver remote virtual desktops and applications. If you intend to use Tesla boards without a hypervisor for this purpose, use NVIDIA vGPU software graphics drivers, not other NVIDIA drivers.

To use NVIDIA vGPU software drivers for a bare-metal deployment, complete these tasks:

  1. Install the driver on the physical host.

    For instructions, see Installing the NVIDIA vGPU Software Graphics Driver.

  2. License any NVIDIA vGPU software that you are using.

    For instructions, see Virtual GPU Client Licensing User Guide.

  3. Configure the platform for remote access.

    To use graphics features with Tesla GPUs, you must use a supported remoting solution, for example, RemoteFX, Citrix Virtual Apps and Desktops, VNC, or similar technology.

  4. Use the display settings feature of the host OS to configure the Tesla GPU as the primary display.

    NVIDIA Tesla generally operates as a secondary device on bare-metal platforms.

  5. If the system has multiple display adapters, disable display devices connected through adapters that are not from NVIDIA.

    You can use the display settings feature of the host OS or the remoting solution for this purpose. On NVIDIA GPUs, including Tesla GPUs, a default display device is enabled.

    Users can launch applications that require NVIDIA GPU technology for enhanced user experience only after displays that are driven by NVIDIA adapters are enabled.

1.2. How this Guide Is Organized

Virtual GPU Software User Guide is organized as follows:

1.3. NVIDIA vGPU Architecture

The high-level architecture of NVIDIA vGPU is illustrated in Figure 1. Under the control of the NVIDIA Virtual GPU Manager running under the hypervisor, NVIDIA physical GPUs are capable of supporting multiple virtual GPU devices (vGPUs) that can be assigned directly to guest VMs.

Guest VMs use NVIDIA vGPUs in the same manner as a physical GPU that has been passed through by the hypervisor: an NVIDIA driver loaded in the guest VM provides direct access to the GPU for performance-critical fast paths, and a paravirtualized interface to the NVIDIA Virtual GPU Manager is used for non-performant management operations.

Figure 1. NVIDIA vGPU System Architecture

Diagram showing the high-level architecture of NVIDIA vGPU

Each NVIDIA vGPU is analogous to a conventional GPU, having a fixed amount of GPU framebuffer, and one or more virtual display outputs or “heads”. The vGPU’s framebuffer is allocated out of the physical GPU’s framebuffer at the time the vGPU is created, and the vGPU retains exclusive use of that framebuffer until it is destroyed.

All vGPUs resident on a physical GPU share access to the GPU’s engines including the graphics (3D), video decode, and video encode engines.

Figure 2. NVIDIA vGPU Internal Architecture

Diagram showing the internal architecture of NVIDIA vGPU

1.4. Supported GPUs

NVIDIA vGPU is available as a licensed product on supported Tesla GPUs. For a list of recommended server platforms and supported GPUs, consult the release notes for supported hypervisors at NVIDIA Virtual GPU Software Documentation.

1.4.1. Virtual GPU Types

The number of physical GPUs that a board has depends on the board. Each physical GPU can support several different types of virtual GPU (vGPU). vGPU types have a fixed amount of frame buffer, number of supported display heads, and maximum resolutions1. They are grouped into different series according to the different classes of workload for which they are optimized. Each series is identified by the last letter of the vGPU type name.

Series Optimal Workload
Q-series Virtual workstations for creative and technical professionals who require the performance and features of Quadro technology
C-series Compute-intensive server workloads, such as artificial intelligence (AI), deep learning, or high-performance computing (HPC)2, 3
B-series Virtual desktops for business professionals and knowledge workers
A-series App streaming or session-based solutions for virtual applications users5

The number after the board type in the vGPU type name denotes the amount of frame buffer that is allocated to a vGPU of that type. For example, a vGPU of type M60-2Q is allocated 2048 Mbytes of frame buffer on a Tesla M60 board.

Due to their differing resource requirements, the maximum number of vGPUs that can be created simultaneously on a physical GPU varies according to the vGPU type. For example, a Tesla M60 board can support up to 4 M60-2Q vGPUs on each of its two physical GPUs, for a total of 8 vGPUs, but only 2 M60-4Q vGPUs, for a total of 4 vGPUs.

When enabled, the frame-rate limiter (FRL) limits the maximum frame rate in frames per second (FPS) for a vGPU as follows:

  • For B-series vGPUs, the maximum frame rate is 45 FPS.
  • For Q-series, C-series, and A-series vGPUs, the maximum frame rate is 60 FPS.

By default, the FRL is enabled for all GPUs. The FRL is disabled when the vGPU scheduling behavior is changed from the default best-effort scheduler on GPUs that support alternative vGPU schedulers. For details, see Changing vGPU Scheduling Behavior. On vGPUs that use the best-effort scheduler, the FRL can be disabled as explained in the release notes for your chosen hypervisor at NVIDIA Virtual GPU Software Documentation.

Note:

NVIDIA vGPU is a licensed product on all supported GPU boards. A software license is required to enable all vGPU features within the guest VM. The type of license required depends on the vGPU type.

  • Q-series vGPU types require a Quadro vDWS license.
  • C-series vGPU types require a vComputeServer license but can also be used with a Quadro vDWS license.
  • B-series vGPU types require a GRID Virtual PC license but can also be used with a Quadro vDWS license.
  • A-series vGPU types require a GRID Virtual Applications license.

1.4.1.1. Tesla M60 Virtual GPU Types

Physical GPUs per board: 2
Virtual GPU Type Intended Use Case Frame Buffer (MB) Virtual Display Heads Maximum Display Resolution Maximum vGPUs per GPU Maximum vGPUs per Board Required License Edition
M60-8Q Virtual Workstations 8192 4 5120×2880 1 2 Quadro vDWS
M60-4Q Virtual Workstations 4096 4 5120×2880 2 4 Quadro vDWS
M60-2Q Virtual Workstations 2048 4 5120×2880 4 8 Quadro vDWS
M60-1Q Virtual Desktops, Virtual Workstations 1024 4 5120×2880 8 16 Quadro vDWS
M60-0Q Virtual Desktops, Virtual Workstations 512 21 2560×1600 16 32 Quadro vDWS
M60-2B Virtual Desktops 2048 4 5120×2880 4 8 GRID Virtual PC or Quadro vDWS
M60-2B44 Virtual Desktops 2048 4 5120×2880 4 8 GRID Virtual PC or Quadro vDWS
M60-1B Virtual Desktops 1024 4 5120×2880 8 16 GRID Virtual PC or Quadro vDWS
M60-1B44 Virtual Desktops 1024 4 5120×2880 8 16 GRID Virtual PC or Quadro vDWS
M60-0B Virtual Desktops 512 21 2560×1600 16 32 GRID Virtual PC or Quadro vDWS
M60-8A Virtual Applications 8192 15 1280×10245 1 2 GRID Virtual Application
M60-4A Virtual Applications 4096 15 1280×10245 2 4 GRID Virtual Application
M60-2A Virtual Applications 2048 15 1280×10245 4 8 GRID Virtual Application
M60-1A Virtual Applications 1024 15 1280×10245 8 16 GRID Virtual Application

1.4.1.2. Tesla M10 Virtual GPU Types

Physical GPUs per board: 4
Virtual GPU Type Intended Use Case Frame Buffer (MB) Virtual Display Heads Maximum Display Resolution Maximum vGPUs per GPU Maximum vGPUs per Board Required License Edition
M10-8Q Virtual Workstations 8192 4 5120×2880 1 4 Quadro vDWS
M10-4Q Virtual Workstations 4096 4 5120×2880 2 8 Quadro vDWS
M10-2Q Virtual Workstations 2048 4 5120×2880 4 16 Quadro vDWS
M10-1Q Virtual Desktops, Virtual Workstations 1024 4 5120×2880 8 32 Quadro vDWS
M10-0Q Virtual Desktops, Virtual Workstations 512 21 2560×1600 16 64 Quadro vDWS
M10-2B Virtual Desktops 2048 4 5120×2880 4 16 GRID Virtual PC or Quadro vDWS
M10-2B44 Virtual Desktops 2048 4 5120×2880 4 16 GRID Virtual PC or Quadro vDWS
M10-1B Virtual Desktops 1024 4 5120×2880 8 32 GRID Virtual PC or Quadro vDWS
M10-1B44 Virtual Desktops 1024 4 5120×2880 8 32 GRID Virtual PC or Quadro vDWS
M10-0B Virtual Desktops 512 21 2560×1600 16 64 GRID Virtual PC or Quadro vDWS
M10-8A Virtual Applications 8192 15 1280×10245 1 4 GRID Virtual Application
M10-4A Virtual Applications 4096 15 1280×10245 2 8 GRID Virtual Application
M10-2A Virtual Applications 2048 15 1280×10245 4 16 GRID Virtual Application
M10-1A Virtual Applications 1024 15 1280×10245 8 32 GRID Virtual Application

1.4.1.3. Tesla M6 Virtual GPU Types

Physical GPUs per board: 1
Virtual GPU Type Intended Use Case Frame Buffer (MB) Virtual Display Heads Maximum Display Resolution Maximum vGPUs per GPU Maximum vGPUs per Board Required License Edition
M6-8Q Virtual Workstations 8192 4 5120×2880 1 1 Quadro vDWS
M6-4Q Virtual Workstations 4096 4 5120×2880 2 2 Quadro vDWS
M6-2Q Virtual Workstations 2048 4 5120×2880 4 4 Quadro vDWS
M6-1Q Virtual Desktops, Virtual Workstations 1024 4 5120×2880 8 8 Quadro vDWS
M6-0Q Virtual Desktops, Virtual Workstations 512 21 2560×1600 16 16 Quadro vDWS
M6-2B Virtual Desktops 2048 4 5120×2880 4 4 GRID Virtual PC or Quadro vDWS
M6-2B44 Virtual Desktops 2048 4 5120×2880 4 4 GRID Virtual PC or Quadro vDWS
M6-1B Virtual Desktops 1024 4 5120×2880 8 8 GRID Virtual PC or Quadro vDWS
M6-1B44 Virtual Desktops 1024 4 5120×2880 8 8 GRID Virtual PC or Quadro vDWS
M6-0B Virtual Desktops 512 21 2560×1600 16 16 GRID Virtual PC or Quadro vDWS
M6-8A Virtual Applications 8192 15 1280×10245 1 1 GRID Virtual Application
M6-4A Virtual Applications 4096 15 1280×10245 2 2 GRID Virtual Application
M6-2A Virtual Applications 2048 15 1280×10245 4 4 GRID Virtual Application
M6-1A Virtual Applications 1024 15 1280×10245 8 8 GRID Virtual Application

1.4.1.4. Tesla P100 PCIe 12GB Virtual GPU Types

Physical GPUs per board: 1
Virtual GPU Type Intended Use Case Frame Buffer (MB) Virtual Display Heads Maximum Display Resolution Maximum vGPUs per GPU Maximum vGPUs per Board Required License Edition
P100C-12Q Virtual Workstations 12288 4 7680×4320 1 1 Quadro vDWS
P100C-6Q Virtual Workstations 6144 4 7680×4320 2 2 Quadro vDWS
P100C-4Q Virtual Workstations 4096 4 7680×4320 3 3 Quadro vDWS
P100C-2Q Virtual Workstations 2048 4 7680×4320 6 6 Quadro vDWS
P100C-1Q Virtual Desktops, Virtual Workstations 1024 4 5120×2880 12 12 Quadro vDWS
P100C-12C Training Workloads 12288 1 4096×21602 1 1 vComputeServer or Quadro vDWS
P100C-6C Training Workloads 6144 1 4096×21602 2 2 vComputeServer or Quadro vDWS
P100C-4C Inference Workloads 4096 1 4096×21602 3 3 vComputeServer or Quadro vDWS
P100C-2B Virtual Desktops 2048 4 5120×2880 6 6 GRID Virtual PC or Quadro vDWS
P100C-2B44 Virtual Desktops 2048 4 5120×2880 6 6 GRID Virtual PC or Quadro vDWS
P100C-1B Virtual Desktops 1024 4 5120×2880 12 12 GRID Virtual PC or Quadro vDWS
P100C-1B44 Virtual Desktops 1024 4 5120×2880 12 12 GRID Virtual PC or Quadro vDWS
P100C-12A Virtual Applications 12288 15 1280×10245 1 1 GRID Virtual Application
P100C-6A Virtual Applications 6144 15 1280×10245 2 2 GRID Virtual Application
P100C-4A Virtual Applications 4096 15 1280×10245 3 3 GRID Virtual Application
P100C-2A Virtual Applications 2048 15 1280×10245 6 6 GRID Virtual Application
P100C-1A Virtual Applications 1024 15 1280×10245 12 12 GRID Virtual Application

1.4.1.5. Tesla P100 PCIe 16GB Virtual GPU Types

Physical GPUs per board: 1
Virtual GPU Type Intended Use Case Frame Buffer (MB) Virtual Display Heads Maximum Display Resolution Maximum vGPUs per GPU Maximum vGPUs per Board Required License Edition
P100-16Q Virtual Workstations 16384 4 7680×4320 1 1 Quadro vDWS
P100-8Q Virtual Workstations 8192 4 7680×4320 2 2 Quadro vDWS
P100-4Q Virtual Workstations 4096 4 7680×4320 4 4 Quadro vDWS
P100-2Q Virtual Workstations 2048 4 7680×4320 8 8 Quadro vDWS
P100-1Q Virtual Desktops, Virtual Workstations 1024 4 5120×2880 16 16 Quadro vDWS
P100-16C Training Workloads 16384 1 4096×21602 1 1 vComputeServer or Quadro vDWS
P100-8C Training Workloads 8192 1 4096×21602 2 2 vComputeServer or Quadro vDWS
P100-4C Inference Workloads 4096 1 4096×21602 4 4 vComputeServer or Quadro vDWS
P100-2B Virtual Desktops 2048 4 5120×2880 8 8 GRID Virtual PC or Quadro vDWS
P100-2B44 Virtual Desktops 2048 4 5120×2880 8 8 GRID Virtual PC or Quadro vDWS
P100-1B Virtual Desktops 1024 4 5120×2880 16 16 GRID Virtual PC or Quadro vDWS
P100-1B44 Virtual Desktops 1024 4 5120×2880 16 16 GRID Virtual PC or Quadro vDWS
P100-16A Virtual Applications 16384 15 1280×10245 1 1 GRID Virtual Application
P100-8A Virtual Applications 8192 15 1280×10245 2 2 GRID Virtual Application
P100-4A Virtual Applications 4096 15 1280×10245 4 4 GRID Virtual Application
P100-2A Virtual Applications 2048 15 1280×10245 8 8 GRID Virtual Application
P100-1A Virtual Applications 1024 15 1280×10245 16 16 GRID Virtual Application

1.4.1.6. Tesla P100 SXM2 Virtual GPU Types

Physical GPUs per board: 1
Virtual GPU Type Intended Use Case Frame Buffer (MB) Virtual Display Heads Maximum Display Resolution Maximum vGPUs per GPU Maximum vGPUs per Board Required License Edition
P100X-16Q Virtual Workstations 16384 4 7680×4320 1 1 Quadro vDWS
P100X-8Q Virtual Workstations 8192 4 7680×4320 2 2 Quadro vDWS
P100X-4Q Virtual Workstations 4096 4 7680×4320 4 4 Quadro vDWS
P100X-2Q Virtual Workstations 2048 4 7680×4320 8 8 Quadro vDWS
P100X-1Q Virtual Desktops, Virtual Workstations 1024 4 5120×2880 16 16 Quadro vDWS
P100X-16C Training Workloads 16384 1 4096×21602 1 1 vComputeServer or Quadro vDWS
P100X-8C Training Workloads 8192 1 4096×21602 2 2 vComputeServer or Quadro vDWS
P100X-4C Inference Workloads 4096 1 4096×21602 4 4 vComputeServer or Quadro vDWS
P100X-2B Virtual Desktops 2048 4 5120×2880 8 8 GRID Virtual PC or Quadro vDWS
P100X-2B44 Virtual Desktops 2048 4 5120×2880 8 8 GRID Virtual PC or Quadro vDWS
P100X-1B Virtual Desktops 1024 4 5120×2880 16 16 GRID Virtual PC or Quadro vDWS
P100X-1B44 Virtual Desktops 1024 4 5120×2880 16 16 GRID Virtual PC or Quadro vDWS
P100X-16A Virtual Applications 16384 15 1280×10245 1 1 GRID Virtual Application
P100X-8A Virtual Applications 8192 15 1280×10245 2 2 GRID Virtual Application
P100X-4A Virtual Applications 4096 15 1280×10245 4 4 GRID Virtual Application
P100X-2A Virtual Applications 2048 15 1280×10245 8 8 GRID Virtual Application
P100X-1A Virtual Applications 1024 15 1280×10245 16 16 GRID Virtual Application

1.4.1.7. Tesla P40 Virtual GPU Types

Physical GPUs per board: 1
Virtual GPU Type Intended Use Case Frame Buffer (MB) Virtual Display Heads Maximum Display Resolution Maximum vGPUs per GPU Maximum vGPUs per Board Required License Edition
P40-24Q Virtual Workstations 24576 4 7680×4320 1 1 Quadro vDWS
P40-12Q Virtual Workstations 12288 4 7680×4320 2 2 Quadro vDWS
P40-8Q Virtual Workstations 8192 4 7680×4320 3 3 Quadro vDWS
P40-6Q Virtual Workstations 6144 4 7680×4320 4 4 Quadro vDWS
P40-4Q Virtual Workstations 4096 4 7680×4320 6 6 Quadro vDWS
P40-3Q Virtual Workstations 3072 4 7680×4320 8 8 Quadro vDWS
P40-2Q Virtual Workstations 2048 4 7680×4320 12 12 Quadro vDWS
P40-1Q Virtual Desktops, Virtual Workstations 1024 4 5120×2880 24 24 Quadro vDWS
P40-24C Training Workloads 24576 1 4096×21602 1 1 vComputeServer or Quadro vDWS
P40-12C Training Workloads 12288 1 4096×21602 2 2 vComputeServer or Quadro vDWS
P40-8C Training Workloads 8192 1 4096×21602 3 3 vComputeServer or Quadro vDWS
P40-6C Training Workloads 6144 1 4096×21602 4 4 vComputeServer or Quadro vDWS
P40-4C Inference Workloads 4096 1 4096×21602 6 6 vComputeServer or Quadro vDWS
P40-2B Virtual Desktops 2048 4 5120×2880 12 12 GRID Virtual PC or Quadro vDWS
P40-2B44 Virtual Desktops 2048 4 5120×2880 12 12 GRID Virtual PC or Quadro vDWS
P40-1B Virtual Desktops 1024 4 5120×2880 24 24 GRID Virtual PC or Quadro vDWS
P40-1B44 Virtual Desktops 1024 4 5120×2880 24 24 GRID Virtual PC or Quadro vDWS
P40-24A Virtual Applications 24576 15 1280×10245 1 1 GRID Virtual Application
P40-12A Virtual Applications 12288 15 1280×10245 2 2 GRID Virtual Application
P40-8A Virtual Applications 8192 15 1280×10245 3 3 GRID Virtual Application
P40-6A Virtual Applications 6144 15 1280×10245 4 4 GRID Virtual Application
P40-4A Virtual Applications 4096 15 1280×10245 6 6 GRID Virtual Application
P40-3A Virtual Applications 3072 15 1280×10245 8 8 GRID Virtual Application
P40-2A Virtual Applications 2048 15 1280×10245 12 12 GRID Virtual Application
P40-1A Virtual Applications 1024 15 1280×10245 24 24 GRID Virtual Application

1.4.1.8. Tesla P6 Virtual GPU Types

Physical GPUs per board: 1
Virtual GPU Type Intended Use Case Frame Buffer (MB) Virtual Display Heads Maximum Display Resolution Maximum vGPUs per GPU Maximum vGPUs per Board Required License Edition
P6-16Q Virtual Workstations 16384 4 7680×4320 1 1 Quadro vDWS
P6-8Q Virtual Workstations 8192 4 7680×4320 2 2 Quadro vDWS
P6-4Q Virtual Workstations 4096 4 7680×4320 4 4 Quadro vDWS
P6-2Q Virtual Workstations 2048 4 7680×4320 8 8 Quadro vDWS
P6-1Q Virtual Desktops, Virtual Workstations 1024 4 5120×2880 16 16 Quadro vDWS
P6-16C Training Workloads 16384 1 4096×21602 1 1 vComputeServer or Quadro vDWS
P6-8C Training Workloads 8192 1 4096×21602 2 2 vComputeServer or Quadro vDWS
P6-4C Inference Workloads 4096 1 4096×21602 4 4 vComputeServer or Quadro vDWS
P6-2B Virtual Desktops 2048 4 5120×2880 8 8 GRID Virtual PC or Quadro vDWS
P6-2B44 Virtual Desktops 2048 4 5120×2880 8 8 GRID Virtual PC or Quadro vDWS
P6-1B Virtual Desktops 1024 4 5120×2880 16 16 GRID Virtual PC or Quadro vDWS
P6-1B44 Virtual Desktops 1024 4 5120×2880 16 16 GRID Virtual PC or Quadro vDWS
P6-16A Virtual Applications 16384 15 1280×10245 1 1 GRID Virtual Application
P6-8A Virtual Applications 8192 15 1280×10245 2 2 GRID Virtual Application
P6-4A Virtual Applications 4096 15 1280×10245 4 4 GRID Virtual Application
P6-2A Virtual Applications 2048 15 1280×10245 8 8 GRID Virtual Application
P6-1A Virtual Applications 1024 15 1280×10245 16 16 GRID Virtual Application

1.4.1.9. Tesla P4 Virtual GPU Types

Physical GPUs per board: 1
Virtual GPU Type Intended Use Case Frame Buffer (MB) Virtual Display Heads Maximum Display Resolution Maximum vGPUs per GPU Maximum vGPUs per Board Required License Edition
P4-8Q Virtual Workstations 8192 4 7680×4320 1 1 Quadro vDWS
P4-4Q Virtual Workstations 4096 4 7680×4320 2 2 Quadro vDWS
P4-2Q Virtual Workstations 2048 4 7680×4320 4 4 Quadro vDWS
P4-1Q Virtual Desktops, Virtual Workstations 1024 4 5120×2880 8 8 Quadro vDWS
P4-8C Training Workloads 8192 1 4096×21602 1 1 vComputeServer or Quadro vDWS
P4-4C Inference Workloads 4096 1 4096×21602 2 2 vComputeServer or Quadro vDWS
P4-2B Virtual Desktops 2048 4 5120×2880 4 4 GRID Virtual PC or Quadro vDWS
P4-2B44 Virtual Desktops 2048 4 5120×2880 4 4 GRID Virtual PC or Quadro vDWS
P4-1B Virtual Desktops 1024 4 5120×2880 8 8 GRID Virtual PC or Quadro vDWS
P4-1B44 Virtual Desktops 1024 4 5120×2880 8 8 GRID Virtual PC or Quadro vDWS
P4-8A Virtual Applications 8192 51 1280×10245 1 1 GRID Virtual Application
P4-4A Virtual Applications 4096 15 1280×10245 2 2 GRID Virtual Application
P4-2A Virtual Applications 2048 15 1280×10245 4 4 GRID Virtual Application
P4-1A Virtual Applications 1024 15 1280×10245 8 8 GRID Virtual Application

1.4.1.10. Tesla T4 Virtual GPU Types

Physical GPUs per board: 1
Virtual GPU Type Intended Use Case Frame Buffer (MB) Virtual Display Heads Maximum Display Resolution Maximum vGPUs per GPU Maximum vGPUs per Board Required License Edition
T4-16Q Virtual Workstations 16384 4 7680×4320 1 1 Quadro vDWS
T4-8Q Virtual Workstations 8192 4 7680×4320 2 2 Quadro vDWS
T4-4Q Virtual Workstations 4096 4 7680×4320 4 4 Quadro vDWS
T4-2Q Virtual Workstations 2048 4 7680×4320 8 8 Quadro vDWS
T4-1Q Virtual Desktops, Virtual Workstations 1024 4 5120×2880 16 16 Quadro vDWS
T4-16C Training Workloads 16384 1 4096×21602 1 1 vComputeServer or Quadro vDWS
T4-8C Training Workloads 8192 1 4096×21602 2 2 vComputeServer or Quadro vDWS
T4-4C Inference Workloads 4096 1 4096×21602 4 4 vComputeServer or Quadro vDWS
T4-2B Virtual Desktops 2048 4 5120×2880 8 8 GRID Virtual PC or Quadro vDWS
T4-2B44 Virtual Desktops 2048 4 5120×2880 8 8 GRID Virtual PC or Quadro vDWS
T4-1B Virtual Desktops 1024 4 5120×2880 16 16 GRID Virtual PC or Quadro vDWS
T4-1B44 Virtual Desktops 1024 4 5120×2880 16 16 GRID Virtual PC or Quadro vDWS
T4-16A Virtual Applications 16384 15 1280×10245 1 1 GRID Virtual Application
T4-8A Virtual Applications 8192 15 1280×10245 2 2 GRID Virtual Application
T4-4A Virtual Applications 4096 15 1280×10245 4 4 GRID Virtual Application
T4-2A Virtual Applications 2048 15 1280×10245 8 8 GRID Virtual Application
T4-1A Virtual Applications 1024 15 1280×10245 16 16 GRID Virtual Application

1.4.1.11. Tesla V100 SXM2 Virtual GPU Types

Physical GPUs per board: 1
Virtual GPU Type Intended Use Case Frame Buffer (MB) Virtual Display Heads Maximum Display Resolution Maximum vGPUs per GPU Maximum vGPUs per Board Required License Edition
V100X-16Q Virtual Workstations 16384 4 7680×4320 1 1 Quadro vDWS
V100X-8Q Virtual Workstations 8192 4 7680×4320 2 2 Quadro vDWS
V100X-4Q Virtual Workstations 4096 4 7680×4320 4 4 Quadro vDWS
V100X-2Q Virtual Workstations 2048 4 7680×4320 8 8 Quadro vDWS
V100X-1Q Virtual Desktops, Virtual Workstations 1024 4 5120×2880 16 16 Quadro vDWS
V100X-16C Training Workloads 16384 1 4096×21602 1 1 vComputeServer or Quadro vDWS
V100X-8C Training Workloads 8192 1 4096×21602 2 2 vComputeServer or Quadro vDWS
V100X-4C Inference Workloads 4096 1 4096×21602 4 4 vComputeServer or Quadro vDWS
V100X-2B Virtual Desktops 2048 4 5120×2880 8 8 GRID Virtual PC or Quadro vDWS
V100X-2B44 Virtual Desktops 2048 4 5120×2880 8 8 GRID Virtual PC or Quadro vDWS
V100X-1B Virtual Desktops 1024 4 5120×2880 16 16 GRID Virtual PC or Quadro vDWS
V100X-1B44 Virtual Desktops 1024 4 5120×2880 16 16 GRID Virtual PC or Quadro vDWS
V100X-16A Virtual Applications 16384 15 1280×10245 1 1 GRID Virtual Application
V100X-8A Virtual Applications 8192 15 1280×10245 2 2 GRID Virtual Application
V100X-4A Virtual Applications 4096 15 1280×10245 4 4 GRID Virtual Application
V100X-2A Virtual Applications 2048 15 1280×10245 8 8 GRID Virtual Application
V100X-1A Virtual Applications 1024 15 1280×10245 16 16 GRID Virtual Application

1.4.1.12. Tesla V100 SXM2 32GB Virtual GPU Types

Physical GPUs per board: 1
Virtual GPU Type Intended Use Case Frame Buffer (MB) Virtual Display Heads Maximum Display Resolution Maximum vGPUs per GPU Maximum vGPUs per Board Required License Edition
V100DX-32Q Virtual Workstations 32768 4 7680×4320 1 1 Quadro vDWS
V100DX-16Q Virtual Workstations 16384 4 7680×4320 2 2 Quadro vDWS
V100DX-8Q Virtual Workstations 8192 4 7680×4320 4 4 Quadro vDWS
V100DX-4Q Virtual Workstations 4096 4 7680×4320 8 8 Quadro vDWS
V100DX-2Q Virtual Workstations 2048 4 7680×4320 16 16 Quadro vDWS
V100DX-1Q Virtual Desktops, Virtual Workstations 1024 4 5120×2880 32 32 Quadro vDWS
V100DX-32C Training Workloads 32768 1 4096×21602 1 1 vComputeServer or Quadro vDWS
V100DX-16C Training Workloads 16384 1 4096×21602 2 2 vComputeServer or Quadro vDWS
V100DX-8C Training Workloads 8192 1 4096×21602 4 4 vComputeServer or Quadro vDWS
V100DX-4C Inference Workloads 4096 1 4096×21602 8 8 vComputeServer or Quadro vDWS
V100DX-2B Virtual Desktops 2048 4 5120×2880 16 16 GRID Virtual PC or Quadro vDWS
V100DX-2B44 Virtual Desktops 2048 4 5120×2880 16 16 GRID Virtual PC or Quadro vDWS
V100DX-1B Virtual Desktops 1024 4 5120×2880 32 32 GRID Virtual PC or Quadro vDWS
V100DX-1B44 Virtual Desktops 1024 4 5120×2880 32 32 GRID Virtual PC or Quadro vDWS
V100DX-32A Virtual Applications 32768 15 1280×10245 1 1 GRID Virtual Application
V100DX-16A Virtual Applications 16384 15 1280×10245 2 2 GRID Virtual Application
V100DX-8A Virtual Applications 8192 15 1280×10245 4 4 GRID Virtual Application
V100DX-4A Virtual Applications 4096 15 1280×10245 8 8 GRID Virtual Application
V100DX-2A Virtual Applications 2048 15 1280×10245 16 16 GRID Virtual Application
V100DX-1A Virtual Applications 1024 15 1280×10245 32 32 GRID Virtual Application

1.4.1.13. Tesla V100 PCIe Virtual GPU Types

Physical GPUs per board: 1
Virtual GPU Type Intended Use Case Frame Buffer (MB) Virtual Display Heads Maximum Display Resolution Maximum vGPUs per GPU Maximum vGPUs per Board Required License Edition
V100-16Q Virtual Workstations 16384 4 7680×4320 1 1 Quadro vDWS
V100-8Q Virtual Workstations 8192 4 7680×4320 2 2 Quadro vDWS
V100-4Q Virtual Workstations 4096 4 7680×4320 4 4 Quadro vDWS
V100-2Q Virtual Workstations 2048 4 7680×4320 8 8 Quadro vDWS
V100-1Q Virtual Desktops, Virtual Workstations 1024 4 5120×2880 16 16 Quadro vDWS
V100-16C Training Workloads 16384 1 4096×21602 1 1 vComputeServer or Quadro vDWS
V100-8C Training Workloads 8192 1 4096×21602 2 2 vComputeServer or Quadro vDWS
V100-4C Inference Workloads 4096 1 4096×21602 4 4 vComputeServer or Quadro vDWS
V100-2B Virtual Desktops 2048 4 5120×2880 8 8 GRID Virtual PC or Quadro vDWS
V100-2B44 Virtual Desktops 2048 4 5120×2880 8 8 GRID Virtual PC or Quadro vDWS
V100-1B Virtual Desktops 1024 4 5120×2880 16 16 GRID Virtual PC or Quadro vDWS
V100-1B44 Virtual Desktops 1024 4 5120×2880 16 16 GRID Virtual PC or Quadro vDWS
V100-16A Virtual Applications 16384 15 1280×10245 1 1 GRID Virtual Application
V100-8A Virtual Applications 8192 15 1280×10245 2 2 GRID Virtual Application
V100-4A Virtual Applications 4096 15 1280×10245 4 4 GRID Virtual Application
V100-2A Virtual Applications 2048 15 1280×10245 8 8 GRID Virtual Application
V100-1A Virtual Applications 1024 15 1280×10245 16 16 GRID Virtual Application

1.4.1.14. Tesla V100 PCIe 32GB Virtual GPU Types

Physical GPUs per board: 1
Virtual GPU Type Intended Use Case Frame Buffer (MB) Virtual Display Heads Maximum Display Resolution Maximum vGPUs per GPU Maximum vGPUs per Board Required License Edition
V100D-32Q Virtual Workstations 32768 4 7680×4320 1 1 Quadro vDWS
V100D-16Q Virtual Workstations 16384 4 7680×4320 2 2 Quadro vDWS
V100D-8Q Virtual Workstations 8192 4 7680×4320 4 4 Quadro vDWS
V100D-4Q Virtual Workstations 4096 4 7680×4320 8 8 Quadro vDWS
V100D-2Q Virtual Workstations 2048 4 7680×4320 16 16 Quadro vDWS
V100D-1Q Virtual Desktops, Virtual Workstations 1024 4 5120×2880 32 32 Quadro vDWS
V100D-32C Training Workloads 32768 1 4096×21602 1 1 vComputeServer or Quadro vDWS
V100D-16C Training Workloads 16384 1 4096×21602 2 2 vComputeServer or Quadro vDWS
V100D-8C Training Workloads 8192 1 4096×21602 4 4 vComputeServer or Quadro vDWS
V100D-4C Inference Workloads 4096 1 4096×21602 8 8 vComputeServer or Quadro vDWS
V100D-2B Virtual Desktops 2048 4 5120×2880 16 16 GRID Virtual PC or Quadro vDWS
V100D-2B44 Virtual Desktops 2048 4 5120×2880 16 16 GRID Virtual PC or Quadro vDWS
V100D-1B Virtual Desktops 1024 4 5120×2880 32 32 GRID Virtual PC or Quadro vDWS
V100D-1B44 Virtual Desktops 1024 4 5120×2880 32 32 GRID Virtual PC or Quadro vDWS
V100D-32A Virtual Applications 32768 15 1280×10245 1 1 GRID Virtual Application
V100D-16A Virtual Applications 16384 15 1280×10245 2 2 GRID Virtual Application
V100D-8A Virtual Applications 8192 15 1280×10245 4 4 GRID Virtual Application
V100D-4A Virtual Applications 4096 15 1280×10245 8 8 GRID Virtual Application
V100D-2A Virtual Applications 2048 15 1280×10245 16 16 GRID Virtual Application
V100D-1A Virtual Applications 1024 15 1280×10245 32 32 GRID Virtual Application

1.4.1.15. Tesla V100S PCIe 32GB Virtual GPU Types

Physical GPUs per board: 1
Virtual GPU Type Intended Use Case Frame Buffer (MB) Virtual Display Heads Maximum Display Resolution Maximum vGPUs per GPU Maximum vGPUs per Board Required License Edition
V100S-32Q Virtual Workstations 32768 4 7680×4320 1 1 Quadro vDWS
V100S-16Q Virtual Workstations 16384 4 7680×4320 2 2 Quadro vDWS
V100S-8Q Virtual Workstations 8192 4 7680×4320 4 4 Quadro vDWS
V100S-4Q Virtual Workstations 4096 4 7680×4320 8 8 Quadro vDWS
V100S-2Q Virtual Workstations 2048 4 7680×4320 16 16 Quadro vDWS
V100S-1Q Virtual Desktops, Virtual Workstations 1024 4 5120×2880 32 32 Quadro vDWS
V100S-32C Training Workloads 32768 1 4096×21602 1 1 vComputeServer or Quadro vDWS
V100S-16C Training Workloads 16384 1 4096×21602 2 2 vComputeServer or Quadro vDWS
V100S-8C Training Workloads 8192 1 4096×21602 4 4 vComputeServer or Quadro vDWS
V100S-4C Inference Workloads 4096 1 4096×21602 8 8 vComputeServer or Quadro vDWS
V100S-2B Virtual Desktops 2048 4 5120×2880 16 16 GRID Virtual PC or Quadro vDWS
V100S-1B Virtual Desktops 1024 4 5120×2880 32 32 GRID Virtual PC or Quadro vDWS
V100S-32A Virtual Applications 32768 15 1280×10245 1 1 GRID Virtual Application
V100S-16A Virtual Applications 16384 15 1280×10245 2 2 GRID Virtual Application
V100S-8A Virtual Applications 8192 15 1280×10245 4 4 GRID Virtual Application
V100S-4A Virtual Applications 4096 15 1280×10245 8 8 GRID Virtual Application
V100S-2A Virtual Applications 2048 15 1280×10245 16 16 GRID Virtual Application
V100S-1A Virtual Applications 1024 15 1280×10245 32 32 GRID Virtual Application

1.4.1.16. Tesla V100 FHHL Virtual GPU Types

Physical GPUs per board: 1
Virtual GPU Type Intended Use Case Frame Buffer (MB) Virtual Display Heads Maximum Display Resolution Maximum vGPUs per GPU Maximum vGPUs per Board Required License Edition
V100L-16Q Virtual Workstations 16384 4 7680×4320 1 1 Quadro vDWS
V100L-8Q Virtual Workstations 8192 4 7680×4320 2 2 Quadro vDWS
V100L-4Q Virtual Workstations 4096 4 7680×4320 4 4 Quadro vDWS
V100L-2Q Virtual Workstations 2048 4 7680×4320 8 8 Quadro vDWS
V100L-1Q Virtual Desktops, Virtual Workstations 1024 4 5120×2880 16 16 Quadro vDWS
V100L-16C Training Workloads 16384 1 4096×21602 1 1 vComputeServer or Quadro vDWS
V100L-8C Training Workloads 8192 1 4096×21602 2 2 vComputeServer or Quadro vDWS
V100L-4C Inference Workloads 4096 1 4096×21602 4 4 vComputeServer or Quadro vDWS
V100L-2B Virtual Desktops 2048 4 5120×2880 8 8 GRID Virtual PC or Quadro vDWS
V100L-2B44 Virtual Desktops 2048 4 5120×2880 8 8 GRID Virtual PC or Quadro vDWS
V100L-1B Virtual Desktops 1024 4 5120×2880 16 16 GRID Virtual PC or Quadro vDWS
V100L-1B44 Virtual Desktops 1024 4 5120×2880 16 16 GRID Virtual PC or Quadro vDWS
V100L-16A Virtual Applications 16384 15 1280×10245 1 1 GRID Virtual Application
V100L-8A Virtual Applications 8192 15 1280×10245 2 2 GRID Virtual Application
V100L-4A Virtual Applications 4096 15 1280×10245 4 4 GRID Virtual Application
V100L-2A Virtual Applications 2048 15 1280×10245 8 8 GRID Virtual Application
V100L-1A Virtual Applications 1024 15 1280×10245 16 16 GRID Virtual Application

1.4.1.17. Quadro RTX 8000 Virtual GPU Types

Physical GPUs per board: 1
Virtual GPU Type Intended Use Case Frame Buffer (MB) Virtual Display Heads Maximum Display Resolution Maximum vGPUs per GPU Maximum vGPUs per Board Required License Edition
RTX8000-48Q Virtual Workstations 49152 4 7680×4320 1 1 Quadro vDWS
RTX8000-24Q Virtual Workstations 24576 4 7680×4320 2 2 Quadro vDWS
RTX8000-16Q Virtual Workstations 16384 4 7680×4320 3 3 Quadro vDWS
RTX8000-12Q Virtual Workstations 12288 4 7680×4320 4 4 Quadro vDWS
RTX8000-8Q Virtual Workstations 8192 4 7680×4320 6 6 Quadro vDWS
RTX8000-6Q Virtual Workstations 6144 4 7680×4320 8 8 Quadro vDWS
RTX8000-4Q Virtual Workstations 4096 4 7680×4320 12 12 Quadro vDWS
RTX8000-3Q Virtual Workstations 3072 4 7680×4320 16 16 Quadro vDWS
RTX8000-2Q Virtual Workstations 2048 4 7680×4320 24 24 Quadro vDWS
RTX8000-1Q Virtual Workstations 1024 4 5120×2880 326 32 Quadro vDWS
RTX8000-48C Training Workloads 49152 1 4096×21602 1 1 vComputeServer or Quadro vDWS
RTX8000-24C Training Workloads 24576 1 4096×21602 2 2 vComputeServer or Quadro vDWS
RTX8000-16C Training Workloads 16384 1 4096×21602 3 3 vComputeServer or Quadro vDWS
RTX8000-12C Training Workloads 12288 1 4096×21602 4 4 vComputeServer or Quadro vDWS
RTX8000-8C Training Workloads 8192 1 4096×21602 6 6 vComputeServer or Quadro vDWS
RTX8000-6C Training Workloads 6144 1 4096×21602 8 8 vComputeServer or Quadro vDWS
RTX8000-4C Inference Workloads 4096 1 4096×21602 83 12 vComputeServer or Quadro vDWS
RTX8000-2B Virtual Desktops 2048 4 5120×2880 24 24 GRID Virtual PC or Quadro vDWS
RTX8000-1B Virtual Desktops 1024 4 5120×2880 32 32 GRID Virtual PC or Quadro vDWS
RTX8000-48A Virtual Applications 49152 1 1280×1024 1 1 GRID Virtual Application
RTX8000-24A Virtual Applications 24576 1 1280×1024 2 2 GRID Virtual Application
RTX8000-16A Virtual Applications 16384 1 1280×1024 3 3 GRID Virtual Application
RTX8000-12A Virtual Applications 12288 1 1280×1024 4 4 GRID Virtual Application
RTX8000-8A Virtual Applications 8192 1 1280×1024 6 6 GRID Virtual Application
RTX8000-6A Virtual Applications 6144 1 1280×1024 8 8 GRID Virtual Application
RTX8000-4A Virtual Applications 4096 1 1280×1024 12 12 GRID Virtual Application
RTX8000-3A Virtual Applications 3072 1 1280×1024 16 16 GRID Virtual Application
RTX8000-2A Virtual Applications 2048 1 1280×1024 24 24 GRID Virtual Application
RTX8000-1A Virtual Applications 1024 1 1280×1024 326 32 GRID Virtual Application

1.4.1.18. Quadro RTX 8000 Passive Virtual GPU Types

Physical GPUs per board: 1
Virtual GPU Type Intended Use Case Frame Buffer (MB) Virtual Display Heads Maximum Display Resolution Maximum vGPUs per GPU Maximum vGPUs per Board Required License Edition
RTX8000P-48Q Virtual Workstations 49152 4 7680×4320 1 1 Quadro vDWS
RTX8000P-24Q Virtual Workstations 24576 4 7680×4320 2 2 Quadro vDWS
RTX8000P-16Q Virtual Workstations 16384 4 7680×4320 3 3 Quadro vDWS
RTX8000P-12Q Virtual Workstations 12288 4 7680×4320 4 4 Quadro vDWS
RTX8000P-8Q Virtual Workstations 8192 4 7680×4320 6 6 Quadro vDWS
RTX8000P-6Q Virtual Workstations 6144 4 7680×4320 8 8 Quadro vDWS
RTX8000P-4Q Virtual Workstations 4096 4 7680×4320 12 12 Quadro vDWS
RTX8000P-3Q Virtual Workstations 3072 4 7680×4320 16 16 Quadro vDWS
RTX8000P-2Q Virtual Workstations 2048 4 7680×4320 24 24 Quadro vDWS
RTX8000P-1Q Virtual Workstations 1024 4 5120×2880 326 32 Quadro vDWS
RTX8000P-48C Training Workloads 49152 1 4096×21602 1 1 vComputeServer or Quadro vDWS
RTX8000P-24C Training Workloads 24576 1 4096×21602 2 2 vComputeServer or Quadro vDWS
RTX8000P-16C Training Workloads 16384 1 4096×21602 3 3 vComputeServer or Quadro vDWS
RTX8000P-12C Training Workloads 12288 1 4096×21602 4 4 vComputeServer or Quadro vDWS
RTX8000P-8C Training Workloads 8192 1 4096×21602 6 6 vComputeServer or Quadro vDWS
RTX8000P-6C Training Workloads 6144 1 4096×21602 8 8 vComputeServer or Quadro vDWS
RTX8000P-4C Inference Workloads 4096 1 4096×21602 83 12 vComputeServer or Quadro vDWS
RTX8000P-2B Virtual Desktops 2048 4 5120×2880 24 24 GRID Virtual PC or Quadro vDWS
RTX8000P-1B Virtual Desktops 1024 4 5120×2880 32 32 GRID Virtual PC or Quadro vDWS
RTX8000P-48A Virtual Applications 49152 1 1280×1024 1 1 GRID Virtual Application
RTX8000P-24A Virtual Applications 24576 1 1280×1024 2 2 GRID Virtual Application
RTX8000P-16A Virtual Applications 16384 1 1280×1024 3 3 GRID Virtual Application
RTX8000P-12A Virtual Applications 12288 1 1280×1024 4 4 GRID Virtual Application
RTX8000P-8A Virtual Applications 8192 1 1280×1024 6 6 GRID Virtual Application
RTX8000P-6A Virtual Applications 6144 1 1280×1024 8 8 GRID Virtual Application
RTX8000P-4A Virtual Applications 4096 1 1280×1024 12 12 GRID Virtual Application
RTX8000P-3A Virtual Applications 3072 1 1280×1024 16 16 GRID Virtual Application
RTX8000P-2A Virtual Applications 2048 1 1280×1024 24 24 GRID Virtual Application
RTX8000P-1A Virtual Applications 1024 1 1280×1024 326 32 GRID Virtual Application

1.4.1.19. Quadro RTX 6000 Virtual GPU Types

Physical GPUs per board: 1
Virtual GPU Type Intended Use Case Frame Buffer (MB) Virtual Display Heads Maximum Display Resolution Maximum vGPUs per GPU Maximum vGPUs per Board Required License Edition
RTX6000-24Q Virtual Workstations 24576 4 7680×4320 1 1 Quadro vDWS
RTX6000-12Q Virtual Workstations 12288 4 7680×4320 2 2 Quadro vDWS
RTX6000-8Q Virtual Workstations 8192 4 7680×4320 3 3 Quadro vDWS
RTX6000-6Q Virtual Workstations 6144 4 7680×4320 4 4 Quadro vDWS
RTX6000-4Q Virtual Workstations 4096 4 7680×4320 6 6 Quadro vDWS
RTX6000-3Q Virtual Workstations 3072 4 7680×4320 8 8 Quadro vDWS
RTX6000-2Q Virtual Workstations 2048 4 7680×4320 12 12 Quadro vDWS
RTX6000-1Q Virtual Workstations 1024 4 5120×2880 24 24 Quadro vDWS
RTX6000-24C Training Workloads 24576 1 4096×21602 1 1 vComputeServer or Quadro vDWS
RTX6000-12C Training Workloads 12288 1 4096×21602 2 2 vComputeServer or Quadro vDWS
RTX6000-8C Training Workloads 8192 1 4096×21602 3 3 vComputeServer or Quadro vDWS
RTX6000-6C Training Workloads 6144 1 4096×21602 4 4 vComputeServer or Quadro vDWS
RTX6000-4C Inference Workloads 4096 1 4096×21602 6 6 vComputeServer or Quadro vDWS
RTX6000-2B Virtual Desktops 2048 4 5120×2880 12 12 GRID Virtual PC or Quadro vDWS
RTX6000-1B Virtual Desktops 1024 4 5120×2880 24 24 GRID Virtual PC or Quadro vDWS
RTX6000-24A Virtual Applications 24576 1 1280×1024 1 1 GRID Virtual Application
RTX6000-12A Virtual Applications 12288 1 1280×1024 2 2 GRID Virtual Application
RTX6000-8A Virtual Applications 8192 1 1280×1024 3 3 GRID Virtual Application
RTX6000-6A Virtual Applications 6144 1 1280×1024 4 4 GRID Virtual Application
RTX6000-4A Virtual Applications 4096 1 1280×1024 6 6 GRID Virtual Application
RTX6000-3A Virtual Applications 3072 1 1280×1024 8 8 GRID Virtual Application
RTX6000-2A Virtual Applications 2048 1 1280×1024 12 12 GRID Virtual Application
RTX6000-1A Virtual Applications 1024 1 1280×1024 24 24 GRID Virtual Application

1.4.1.20. Quadro RTX 6000 Passive Virtual GPU Types

Physical GPUs per board: 1
Virtual GPU Type Intended Use Case Frame Buffer (MB) Virtual Display Heads Maximum Display Resolution Maximum vGPUs per GPU Maximum vGPUs per Board Required License Edition
RTX6000P-24Q Virtual Workstations 24576 4 7680×4320 1 1 Quadro vDWS
RTX6000P-12Q Virtual Workstations 12288 4 7680×4320 2 2 Quadro vDWS
RTX6000P-8Q Virtual Workstations 8192 4 7680×4320 3 3 Quadro vDWS
RTX6000P-6Q Virtual Workstations 6144 4 7680×4320 4 4 Quadro vDWS
RTX6000P-4Q Virtual Workstations 4096 4 7680×4320 6 6 Quadro vDWS
RTX6000P-3Q Virtual Workstations 3072 4 7680×4320 8 8 Quadro vDWS
RTX6000P-2Q Virtual Workstations 2048 4 7680×4320 12 12 Quadro vDWS
RTX6000P-1Q Virtual Workstations 1024 4 5120×2880 24 24 Quadro vDWS
RTX6000P-24C Training Workloads 24576 1 4096×21602 1 1 vComputeServer or Quadro vDWS
RTX6000P-12C Training Workloads 12288 1 4096×21602 2 2 vComputeServer or Quadro vDWS
RTX6000P-8C Training Workloads 8192 1 4096×21602 3 3 vComputeServer or Quadro vDWS
RTX6000P-6C Training Workloads 6144 1 4096×21602 4 4 vComputeServer or Quadro vDWS
RTX6000P-4C Inference Workloads 4096 1 4096×21602 6 6 vComputeServer or Quadro vDWS
RTX6000P-2B Virtual Desktops 2048 4 5120×2880 12 12 GRID Virtual PC or Quadro vDWS
RTX6000P-1B Virtual Desktops 1024 4 5120×2880 24 24 GRID Virtual PC or Quadro vDWS
RTX6000P-24A Virtual Applications 24576 1 1280×1024 1 1 GRID Virtual Application
RTX6000P-12A Virtual Applications 12288 1 1280×1024 2 2 GRID Virtual Application
RTX6000P-8A Virtual Applications 8192 1 1280×1024 3 3 GRID Virtual Application
RTX6000P-6A Virtual Applications 6144 1 1280×1024 4 4 GRID Virtual Application
RTX6000P-4A Virtual Applications 4096 1 1280×1024 6 6 GRID Virtual Application
RTX6000P-3A Virtual Applications 3072 1 1280×1024 8 8 GRID Virtual Application
RTX6000P-2A Virtual Applications 2048 1 1280×1024 12 12 GRID Virtual Application
RTX6000P-1A Virtual Applications 1024 1 1280×1024 24 24 GRID Virtual Application

1.4.2. Virtual Display Resolutions

Q-series and B-series vGPUs support a maximum combined resolution based on their frame buffer size instead of a fixed maximum resolution per display. You can choose between using a small number of high resolution displays or a larger number of lower resolution displays with these vGPUs.

The number of virtual displays that you can use depends on a combination of the following factors:

  • Virtual GPU series
  • GPU architecture
  • vGPU frame buffer size
  • Display resolution

For details, see the subsections that follow.

High resolution displays consume more GPU frame buffer than low resolution displays. The ability of a vGPU to drive a certain combination of high resolution displays does not guarantee that enough frame buffer remains free for all applications to run. If applications run out of frame buffer, consider changing your setup in one of the following ways:

  • Switching to a vGPU type with more frame buffer
  • Using fewer displays
  • Using lower resolution displays

1.4.2.1. Virtual Display Resolutions for B-Series vGPUs

vGPU Frame Buffer Size (MB) Display Resolution Maximum Number of Virtual Displays
1024 5120×2880 1
4096×2160 1
Lower than 4096×2160 4
2048 5120×2880 1
4096×2160 2
Lower than 4096×2160 4

1.4.2.2. Virtual Display Resolutions for Q-Series vGPUs Based on the Maxwell Architecture

vGPU Frame Buffer Size (MB) Display Resolution Maximum Number of Virtual Displays
1024 5120×2880 1
4096×2160 2
Lower than 4096×2160 4
2048 or more 5120×2880 2
4096×2160 2
Lower than 4096×2160 4

1.4.2.3. Virtual Display Resolutions for Q-Series vGPUs Based on Architectures after Maxwell

vGPU Frame Buffer Size (MB) Display Resolution Maximum Number of Virtual Displays
1024 5120×2880 1
4096×2160 2
Lower than 4096×2160 4
2048 to 3072 7680×4320 1
5120×2880 2
Lower than 5120×2880 4
4096 to 6144 7680×4320 1
Lower than 7680×4320 4
8192 or more 7680×4320 2
Lower than 7680×4320 4

1.4.3. Homogeneous Virtual GPUs

This release of NVIDIA vGPU supports only homogeneous virtual GPUs. At any given time, the virtual GPUs resident on a single physical GPU must be all of the same type. However, this restriction doesn’t extend across physical GPUs on the same card. Different physical GPUs on the same card may host different types of virtual GPU at the same time, provided that the vGPU types on any one physical GPU are the same.

For example, a Tesla M60 card has two physical GPUs, and can support several types of virtual GPU. Figure 3 shows the following examples of valid and invalid virtual GPU configurations on Tesla M60:

  • A valid configuration with M60-2Q vGPUs on GPU 0 and M60-4Q vGPUs on GPU 1
  • A valid configuration with M60-1B vGPUs on GPU 0 and M60-2Q vGPUs on GPU 1
  • An invalid configuration with mixed vGPU types on GPU 0
Figure 3. Example vGPU Configurations on Tesla M60

Diagram showing examples of examples of valid and invalid virtual GPU configurations on Tesla M60.

1.5. Guest VM Support

NVIDIA vGPU supports Windows and Linux guest VM operating systems. The supported vGPU types depend on the guest VM OS.

For details of the supported releases of Windows and Linux, and for further information on supported configurations, see the driver release notes for your hypervisor at NVIDIA Virtual GPU Software Documentation.

1.5.1. Windows Guest VM Support

Windows guest VMs are supported only on Q-series, B-series, and A-series NVIDIA vGPU types. They are not supported on C-series NVIDIA vGPU types.

1.5.2. Linux Guest VM support

64-bit Linux guest VMs are supported only on Q-series, C-series, and B-series NVIDIA vGPU types. They are not supported on A-series NVIDIA vGPU types.

1.6. NVIDIA vGPU Software Features

NVIDIA vGPU software includes Quadro vDWS, vComputeServer, GRID Virtual PC, and GRID Virtual Applications.

1.6.1. API Support on NVIDIA vGPU

NVIDIA vGPU includes support for the following APIs:
  • Open Computing Language (OpenCL™ software) 1.2
  • OpenGL® 4.6
  • Vulkan® 1.1
  • DirectX 11
  • DirectX 12 (Windows 10)
  • Direct2D
  • DirectX Video Acceleration (DXVA)
  • NVIDIA® CUDA® 10.2
  • NVIDIA vGPU software SDK (remote graphics acceleration)
  • NVIDIA RTX (on GPUs based on the NVIDIA Volta graphic architecture and later architectures)

1.6.2. NVIDIA CUDA Toolkit and OpenCL Support on NVIDIA vGPU Software

OpenCL and CUDA applications are supported on the following NVIDIA vGPU types:

  • The 8Q vGPU type on Tesla M6, Tesla M10, and Tesla M60 GPUs
  • All Q-series vGPU types on the following GPUs:
    • Tesla P4
    • Tesla P6
    • Tesla P40
    • Tesla P100 SXM2 16 GB
    • Tesla P100 PCIe 16 GB
    • Tesla P100 PCIe 12 GB
    • Tesla V100 SXM2
    • Tesla V100 SXM2 32GB
    • Tesla V100 PCIe
    • Tesla V100 PCIe 32GB
    • Tesla V100S PCIe 32GB
    • Tesla V100 FHHL
    • Tesla T4
    • Quadro RTX 6000
    • Quadro RTX 6000 passive
    • Quadro RTX 8000
    • Quadro RTX 8000 passive
  • All C-series vGPU types

NVIDIA vGPU supports the following NVIDIA CUDA Toolkit features if the vGPU type, physical GPU, and the hypervisor software version support the feature:

  • Error-correcting code (ECC) memory
  • Peer-to-peer CUDA transfers over NVLink
    Note: To determine the NVLink topology between physical GPUs in a host or vGPUs assigned to a VM, run the following command from the host or VM:
    $ nvidia-smi topo -m

Dynamic page retirement is supported for all vGPU types on physical GPUs that support ECC memory, even if ECC memory is disabled on physical GPU.

NVIDIA vGPU does not support the following NVIDIA CUDA Toolkit features:

  • Unified Memory
  • GPUDirect remote direct memory access (RDMA)
  • Development tools such as IDEs, debuggers, profilers, and utilities as listed under CUDA Toolkit Major Components in CUDA Toolkit 10.2 Release Notes for Windows, Linux, and Mac OS
  • Tracing and profiling through the CUDA Profiling Tools Interface (CUPTI)
Note: These features are supported in GPU pass-through mode and in bare-metal deployments.

For more information about NVIDIA CUDA Toolkit, see CUDA Toolkit 10.2 Documentation.

Note:

If you are using NVIDIA vGPU software with CUDA on Linux, avoid conflicting installation methods by installing CUDA from a distribution-independent runfile package. Do not install CUDA from distribution-specific RPM or Deb package.

To ensure that the NVIDIA vGPU software graphics driver is not overwritten when CUDA is installed, deselect the CUDA driver when selecting the CUDA components to install.

For more information, see NVIDIA CUDA Installation Guide for Linux.

1.6.3. Additional Quadro vDWS Features

In addition to the features of GRID Virtual PC and GRID Virtual Applications, Quadro vDWS provides the following features:
  • Workstation-specific graphics features and accelerations
  • Certified drivers for professional applications
  • GPU pass through for workstation or professional 3D graphics

    In pass-through mode, Quadro vDWS supports up to four virtual display heads at 4K resolution.

  • 10-bit color for Windows users. (HDR/10-bit color is not currently supported on Linux, NvFBC capture is supported but deprecated.)

1.6.4. NVIDIA GPU Cloud (NGC) Containers Support on NVIDIA vGPU Software

NVIDIA vGPU software supports NGC containers in NVIDIA vGPU and GPU pass-through deployments on all supported hypervisors.

In NVIDIA vGPU deployments, the following vGPU types are supported only on GPUs based on NVIDIA GPU architectures after the Maxwell architecture:

  • All Q-series vGPU types
  • All C-series vGPU types

In GPU pass-through deployments, all GPUs based on NVIDIA GPU architectures after the NVIDIA Maxwell™ architecture that support NVIDIA vGPU software are supported.

The Ubuntu guest operating system is supported.

For more information about setting up NVIDIA vGPU software for use with NGC containers, see Using NGC with NVIDIA Virtual GPU Software Setup Guide.

Installing and Configuring NVIDIA Virtual GPU Manager

The process for installing and configuring NVIDIA Virtual GPU Manager depends on the hypervisor that you are using. After you complete this process, you can install the display drivers for your guest OS and license any NVIDIA vGPU software licensed products that you are using.

2.1. Prerequisites for Using NVIDIA vGPU

Before proceeding, ensure that these prerequisites are met:

  • You have a server platform that is capable of hosting your chosen hypervisor and NVIDIA GPUs that support NVIDIA vGPU software.
  • One or more NVIDIA GPUs that support NVIDIA vGPU software is installed in your server platform.
  • You have downloaded the NVIDIA vGPU software package for your chosen hypervisor, which consists of the following software:
    • NVIDIA Virtual GPU Manager for your hypervisor
    • NVIDIA vGPU software graphics drivers for supported guest operating systems
  • The following software is installed according to the instructions in the software vendor's documentation:
    • Your chosen hypervisor, for example, Citrix Hypervisor, Red Hat Enterprise Linux KVM, Red Hat Virtualization (RHV), or VMware vSphere Hypervisor (ESXi)
    • The software for managing your chosen hypervisor, for example, Citrix XenCenter management GUI, or VMware vCenter Server
    • The virtual desktop software that you will use with virtual machines (VMs) running NVIDIA Virtual GPU, for example, Citrix Virtual Apps and Desktops, or VMware Horizon
    Note: If you are using VMware vSphere Hypervisor (ESXi), ensure that the ESXi host on which you will configure a VM with NVIDIA vGPU is not a member of a VMware Distributed Resource Scheduler (DRS) cluster.
  • A VM to be enabled with vGPU is created.
    Note: All hypervisors covered in this guide support multiple vGPUs in a VM.
  • Your chosen guest OS is installed in the VM.

For information about supported hardware and software, and any known issues for this release of NVIDIA vGPU software, refer to the Release Notes for your chosen hypervisor:

2.2. Switching the Mode of a Tesla M60 or M6 GPU

Tesla M60 and M6 GPUs support compute mode and graphics mode. NVIDIA vGPU requires GPUs that support both modes to operate in graphics mode.
Note:

Only Tesla M60 and M6 GPUs require and support mode switching. Other GPUs that support NVIDIA vGPU do not require or support mode switching.

Even in compute mode, Tesla M60 and M6 GPUs do not support NVIDIA vComputeServer vGPU types.

Recent Tesla M60 GPUs and M6 GPUs are supplied in graphics mode. However, your GPU might be in compute mode if it is an older Tesla M60 GPU or M6 GPU, or if its mode has previously been changed.

If your GPU supports both modes but is in compute mode, you must use the gpumodeswitch tool to change the mode of the GPU to graphics mode. If you are unsure which mode your GPU is in, use the gpumodeswitch tool to find out the mode.

For more information, see gpumodeswitch User Guide.

2.3. Installing and Configuring the NVIDIA Virtual GPU Manager for Citrix Hypervisor

The following topics step you through the process of setting up a single Citrix Hypervisor VM to use NVIDIA vGPU. After the process is complete, you can install the graphics driver for your guest OS and license any NVIDIA vGPU software licensed products that you are using.

These setup steps assume familiarity with the Citrix Hypervisor skills covered in Citrix Hypervisor Basics.

2.3.1. Installing and Updating the NVIDIA Virtual GPU Manager for Citrix Hypervisor

The NVIDIA Virtual GPU Manager runs in the Citrix Hypervisor dom0 domain. The NVIDIA Virtual GPU Manager for Citrix Hypervisor is supplied as an RPM file and as a Supplemental Pack.

CAUTION:
NVIDIA Virtual GPU Manager and Guest VM drivers must be matched from the same main driver branch. If you update vGPU Manager to a release from another driver branch, guest VMs will boot with vGPU disabled until their guest vGPU driver is updated to match the vGPU Manager version. Consult Virtual GPU Software for Citrix Hypervisor Release Notes for further details.

2.3.1.1. Installing the RPM package for Citrix Hypervisor

The RPM file must be copied to the Citrix Hypervisor dom0 domain prior to installation (see Copying files to dom0).
  1. Use the rpm command to install the package:
    [root@xenserver ~]# rpm -iv NVIDIA-vGPU-xenserver-7.0-440.53.x86_64.rpm
    Preparing packages for installation...
    NVIDIA-vGPU-xenserver-7.0-440.53
    [root@xenserver ~]#
  2. Reboot the Citrix Hypervisor platform:
    [root@xenserver ~]# shutdown –r now
    
    Broadcast message from root (pts/1) (Fri Feb 14 14:24:11 2020):
    
    The system is going down for reboot NOW! 
    [root@xenserver ~]#

2.3.1.2. Updating the RPM Package for Citrix Hypervisor

If an existing NVIDIA Virtual GPU Manager is already installed on the system and you want to upgrade, follow these steps:
  1. Shut down any VMs that are using NVIDIA vGPU.
  2. Install the new package using the –U option to the rpm command, to upgrade from the previously installed package:
    [root@xenserver ~]# rpm -Uv NVIDIA-vGPU-xenserver-7.0-440.53.x86_64.rpm
    Preparing packages for installation...
    NVIDIA-vGPU-xenserver-7.0-440.53
    [root@xenserver ~]# 
    Note:

    You can query the version of the current NVIDIA Virtual GPU Manager package using the rpm –q command:

    [root@xenserver ~]# rpm –q NVIDIA-vGPU-xenserver-7.0-440.53
    [root@xenserver ~]#
    If an existing NVIDIA GRID package is already installed and you don’t select the upgrade (-U) option when installing a newer GRID package, the rpm command will return many conflict errors.
    Preparing packages for installation...
            file /usr/bin/nvidia-smi from install of NVIDIA-vGPU-xenserver-7.0-440.53.x86_64 conflicts with file from package NVIDIA-vGPU-xenserver-7.0-440.43.x86_64
            file /usr/lib/libnvidia-ml.so from install of NVIDIA-vGPU-xenserver-7.0-440.53.x86_64 conflicts with file from package NVIDIA-vGPU-xenserver-7.0-440.43.x86_64
            ...
  3. Reboot the Citrix Hypervisor platform:
    [root@xenserver ~]# shutdown –r now
    Broadcast message from root (pts/1) (Fri Feb 14 14:24:11 2020):
    
    The system is going down for reboot NOW! 
    [root@xenserver ~]#

2.3.1.3. Installing or Updating the Supplemental Pack for Citrix Hypervisor

XenCenter can be used to install or update Supplemental Packs on Citrix Hypervisor hosts. The NVIDIA Virtual GPU Manager supplemental pack is provided as an ISO.
  1. Select Install Update from the Tools menu.
  2. Click Next after going through the instructions on the Before You Start section.
  3. Click Select update or supplemental pack from disk on the Select Update section and open NVIDIA’s Citrix Hypervisor Supplemental Pack ISO.
    Figure 4. NVIDIA vGPU Manager supplemental pack selected in XenCenter

    Screen capture showing NVIDIA vGPU Manager supplemental pack selected in XenCenter

  4. Click Next on the Select Update section.
  5. In the Select Servers section select all the Citrix Hypervisor hosts on which the Supplemental Pack should be installed on and click Next.
  6. Click Next on the Upload section once the Supplemental Pack has been uploaded to all the Citrix Hypervisor hosts.
  7. Click Next on the Prechecks section.
  8. Click Install Update on the Update Mode section.
  9. Click Finish on the Install Update section.
Figure 5. Successful installation of NVIDIA vGPU Manager supplemental pack

Screen capture showing successful installation of the NVIDIA vGPU Manager supplemental pack

2.3.1.4. Verifying the Installation of the NVIDIA vGPU Software for Citrix Hypervisor Package

After the Citrix Hypervisor platform has rebooted, verify the installation of the NVIDIA vGPU software package for Citrix Hypervisor.
  1. Verify that the NVIDIA vGPU software package is installed and loaded correctly by checking for the NVIDIA kernel driver in the list of kernel loaded modules.
    [root@xenserver ~]# lsmod | grep nvidia
    nvidia               9522927  0
    i2c_core               20294  2 nvidia,i2c_i801
    [root@xenserver ~]#
  2. Verify that the NVIDIA kernel driver can successfully communicate with the NVIDIA physical GPUs in your system by running the nvidia-smi command. The nvidia-smi command is described in more detail in NVIDIA System Management Interface nvidia-smi.
Running the nvidia-smi command should produce a listing of the GPUs in your platform.
[root@xenserver ~]# nvidia-smi
Fri Feb 14 18:46:50 2020
+------------------------------------------------------+
| NVIDIA-SMI 440.53     Driver Version: 440.56         |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla M60           On   | 00000000:05:00.0 Off |                  Off |
| N/A   25C    P8    24W / 150W |     13MiB /  8191MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  Tesla M60           On   | 00000000:06:00.0 Off |                  Off |
| N/A   24C    P8    24W / 150W |     13MiB /  8191MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   2  Tesla M60           On   | 00000000:86:00.0 Off |                  Off |
| N/A   25C    P8    25W / 150W |     13MiB /  8191MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   3  Tesla M60           On   | 00000000:87:00.0 Off |                  Off |
| N/A   28C    P8    24W / 150W |     13MiB /  8191MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

[root@xenserver ~]#

If nvidia-smi fails to run or doesn’t produce the expected output for all the NVIDIA GPUs in your system, see Troubleshooting for troubleshooting steps.

2.3.2. Configuring a Citrix Hypervisor VM with Virtual GPU

To support applications and workloads that are compute or graphics intensive, you can add multiple vGPUs to a single VM.

For details about which Citrix Hypervisor versions and NVIDIA vGPUs support the assignment of multiple vGPUs to a VM, see Virtual GPU Software for Citrix Hypervisor Release Notes.

Citrix Hypervisor supports configuration and management of virtual GPUs using XenCenter, or the xe command line tool that is run in a Citrix Hypervisor dom0 shell. Basic configuration using XenCenter is described in the following sections. Command line management using xe is described in Citrix Hypervisor vGPU Management.

Note: If you are using Citrix Hypervisor 8.1 or later and need to assign plugin configuration parameters, create vGPUs using the xe command as explained in Creating a vGPU Using xe.
  1. Ensure the VM is powered off.
  2. Right-click the VM in XenCenter, select Properties to open the VM’s properties, and select the GPU property. The available GPU types are listed in the GPU type drop-down list:
    Figure 6. Using Citrix XenCenter to configure a VM with a vGPU

    Screen capture showing the use of XenCenter to configure a VM with a vGPU

After you have configured a Citrix Hypervisor VM with a vGPU, start the VM, either from XenCenter or by using xe vm-start in a dom0 shell. You can view the VM’s console in XenCenter.

After the VM has booted, install the NVIDIA vGPU software graphics driver as explained in Installing the NVIDIA vGPU Software Graphics Driver.

2.4. Installing the Virtual GPU Manager Package for Linux KVM

NVIDIA vGPU software for Linux Kernel-based Virtual Machine (KVM) (Linux KVM) is intended only for use with supported versions of Linux KVM hypervisors. For details about which Linux KVM hypervisor versions are supported, see Virtual GPU Software for Generic Linux with KVM Release Notes.
Note: If you are using Red Hat Enterprise Linux KVM, follow the instructions in Installing and Configuring the NVIDIA Virtual GPU Manager for Red Hat Enterprise Linux KVM or RHV.

Before installing the Virtual GPU Manager package for Linux KVM, ensure that the following prerequisites are met:

  • The following packages are installed on the Linux KVM server:

    • The x86_64 build of the GNU Compiler Collection (GCC)
    • Linux kernel headers
  • The package file is copied to a directory in the file system of the Linux KVM server.

If the Nouveau driver for NVIDIA graphics cards is present, disable it before installing the package.

  1. Change to the directory on the Linux KVM server that contains the package file.
    # cd package-file-directory
    package-file-directory
    The path to the directory that contains the package file.
  2. Make the package file executable.
    # chmod +x package-file-name
    package-file-name
    The name of the file that contains the Virtual GPU Manager package for Linux KVM, for example NVIDIA-Linux-x86_64-390.42-vgpu-kvm.run.
  3. Run the package file as the root user.
    # sudo sh./package-file-name
    The package file should launch and display the license agreement.
  4. Accept the license agreement to continue with the installation.
  5. When installation has completed, select OK to exit the installer.
  6. Reboot the Linux KVM server.
    # systemctl reboot

2.5. Installing and Configuring the NVIDIA Virtual GPU Manager for Red Hat Enterprise Linux KVM or RHV

The following topics step you through the process of setting up a single Red Hat Enterprise Linux Kernel-based Virtual Machine (KVM) or Red Hat Virtualization (RHV) VM to use NVIDIA vGPU.

Red Hat Enterprise Linux KVM and RHV use the same Virtual GPU Manager package, but are configured with NVIDIA vGPU in different ways.

For RHV, follow this sequence of instructions:

  1. Installing the NVIDIA Virtual GPU Manager for Red Hat Enterprise Linux KVM or RHV
  2. Adding a vGPU to a Red Hat Virtualization (RHV) VM

For Red Hat Enterprise Linux KVM, follow this sequence of instructions:

  1. Installing the NVIDIA Virtual GPU Manager for Red Hat Enterprise Linux KVM or RHV
  2. Getting the BDF and Domain of a GPU on Red Hat Enterprise Linux KVM
  3. Creating an NVIDIA vGPU on Red Hat Enterprise Linux KVM
  4. Adding One or More vGPUs to a Red Hat Enterprise Linux KVM VM
  5. Setting vGPU Plugin Parameters on Red Hat Enterprise Linux KVM

After the process is complete, you can install the graphics driver for your guest OS and license any NVIDIA vGPU software licensed products that you are using.

Note: If you are using a generic Linux KVM hypervisor, follow the instructions in Installing the Virtual GPU Manager Package for Linux KVM.

2.5.1. Installing the NVIDIA Virtual GPU Manager for Red Hat Enterprise Linux KVM or RHV

The NVIDIA Virtual GPU Manager for Red Hat Enterprise Linux KVM and Red Hat Virtualization (RHV) is provided as a .rpm file.

CAUTION:
NVIDIA Virtual GPU Manager and Guest VM drivers must be matched from the same main driver branch. If you update vGPU Manager to a release from another driver branch, guest VMs will boot with vGPU disabled until their guest vGPU driver is updated to match the vGPU Manager version. Consult Virtual GPU Software for Red Hat Enterprise Linux with KVM Release Notes for further details.

2.5.1.1. Installing the Virtual GPU Manager Package for Red Hat Enterprise Linux KVM or RHV

Before installing the RPM package for Red Hat Enterprise Linux KVM or RHV, ensure that the sshd service on the Red Hat Enterprise Linux KVM or RHV server is configured to permit root login. If the Nouveau driver for NVIDIA graphics cards is present, disable it before installing the package. For instructions, see How to disable the Nouveau driver and install the Nvidia driver in RHEL 7 (Red Hat subscription required).

Some versions of Red Hat Enterprise Linux KVM have z-stream updates that break Kernel Application Binary Interface (kABI) compatibility with the previous kernel or the GA kernel. For these versions of Red Hat Enterprise Linux KVM, the following Virtual GPU Manager RPM packages are supplied:

  • A package for the GA Linux KVM kernel
  • A package for the updated z-stream kernel

To differentiate these packages, the name of each RPM package includes the kernel version. Ensure that you install the RPM package that is compatible with your Linux KVM kernel version.

  1. Securely copy the RPM file from the system where you downloaded the file to the Red Hat Enterprise Linux KVM or RHV server.
    • From a Windows system, use a secure copy client such as WinSCP.
    • From a Linux system, use the scp command.
  2. Use secure shell (SSH) to log in as root to the Red Hat Enterprise Linux KVM or RHV server.
    # ssh root@kvm-server
    kvm-server
    The host name or IP address of the Red Hat Enterprise Linux KVM or RHV server.
  3. Change to the directory on the Red Hat Enterprise Linux KVM or RHV server to which you copied the RPM file.
    # cd rpm-file-directory
    rpm-file-directory
    The path to the directory to which you copied the RPM file.
  4. Use the rpm command to install the package.
    # rpm -iv NVIDIA-vGPU-rhel-7.5-440.53.x86_64.rpm
    Preparing packages for installation...
    NVIDIA-vGPU-rhel-7.5-440.53
    #
  5. Reboot the Red Hat Enterprise Linux KVM or RHV server.
    # systemctl reboot

2.5.1.2. Verifying the Installation of the NVIDIA vGPU Software for Red Hat Enterprise Linux KVM or RHV

After the Red Hat Enterprise Linux KVM or RHV server has rebooted, verify the installation of the NVIDIA vGPU software package for Red Hat Enterprise Linux KVM or RHV.
  1. Verify that the NVIDIA vGPU software package is installed and loaded correctly by checking for the VFIO drivers in the list of kernel loaded modules.
    # lsmod | grep vfio
    nvidia_vgpu_vfio       27099  0
    nvidia              12316924  1 nvidia_vgpu_vfio
    vfio_mdev              12841  0
    mdev                   20414  2 vfio_mdev,nvidia_vgpu_vfio
    vfio_iommu_type1       22342  0
    vfio                   32331  3 vfio_mdev,nvidia_vgpu_vfio,vfio_iommu_type1
    #
  2. Verify that the libvirtd service is active and running.
    # service libvirtd status
  3. Verify that the NVIDIA kernel driver can successfully communicate with the NVIDIA physical GPUs in your system by running the nvidia-smi command. The nvidia-smi command is described in more detail in NVIDIA System Management Interface nvidia-smi.
Running the nvidia-smi command should produce a listing of the GPUs in your platform.
# nvidia-smi
Fri Feb 14 18:46:50 2020
+------------------------------------------------------+
| NVIDIA-SMI 440.53     Driver Version: 440.56         |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla M60           On   | 0000:85:00.0     Off |                  Off |
| N/A   23C    P8    23W / 150W |     13MiB /  8191MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  Tesla M60           On   | 0000:86:00.0     Off |                  Off |
| N/A   29C    P8    23W / 150W |     13MiB /  8191MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   2  Tesla P40           On   | 0000:87:00.0     Off |                  Off |
| N/A   21C    P8    18W / 250W |     53MiB / 24575MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
#

If nvidia-smi fails to run or doesn’t produce the expected output for all the NVIDIA GPUs in your system, see Troubleshooting for troubleshooting steps.

2.5.2. Adding a vGPU to a Red Hat Virtualization (RHV) VM

Ensure that the VM to which you want to add the vGPU is shut down.
  1. Determine the mediated device type (mdev_type) identifiers of the vGPU types available on the RHV host.
    # vdsm-client Host hostdevListByCaps
    ...
      "mdev": {
                   "nvidia-155": {
                       "name": "GRID M10-2B",
                       "available_instances": "4"
                   },
                   "nvidia-36": {
                       "name": "GRID M10-0Q",
                       "available_instances": "16"
                   },
      ...
    
    The preceding example shows the mdev_type identifiers of the following vGPU types:
    • For the GRID M10-2B vGPU type, the mdev_type identifier is nvidia-155.
    • For the GRID M10-0Q vGPU type, the mdev_type identifier is nvidia-36.
  2. Note the mdev_type identifier of the vGPU type that you want to add.
  3. Log in to the RHV Administration Portal.
  4. From the Main Navigation Menu, choose Compute > Virtual Machines > virtual-machine-name.
    virtual-machine-name
    The name of the virtual machine to which you want to add the vGPU.
  5. Click Edit.
  6. In the Edit Virtual Machine window that opens, click Show Advanced Options and in the list of options, select Custom Properties.
  7. From the drop-down list, select mdev_type.
  8. In the text field, type the mdev_type identifier of the vGPU type that you want to add and click OK.

    Screen capture showing options in the Edit Virtual Machine window for adding a vGPU to an RHV VM

After adding a vGPU to an RHV VM, start the VM.

After the VM has booted, install the NVIDIA vGPU software graphics driver as explained in Installing the NVIDIA vGPU Software Graphics Driver.

2.5.3. Getting the BDF and Domain of a GPU on Red Hat Enterprise Linux KVM

Sometimes when configuring a physical GPU for use with NVIDIA vGPU software, you must find out which directory in the sysfs file system represents the GPU. This directory is identified by the domain, bus, slot, and function of the GPU.

For more information about the directory in the sysfs file system represents a physical GPU, see NVIDIA vGPU Information in the sysfs File System.

  1. Obtain the PCI device bus/device/function (BDF) of the physical GPU.
    # lspci | grep NVIDIA

    The NVIDIA GPUs listed in this example have the PCI device BDFs 06:00.0 and 07:00.0.

    # lspci | grep NVIDIA
    06:00.0 VGA compatible controller: NVIDIA Corporation GM204GL [Tesla M10] (rev a1)
    07:00.0 VGA compatible controller: NVIDIA Corporation GM204GL [Tesla M10] (rev a1)
  2. Obtain the full identifier of the GPU from its PCI device BDF.
    # virsh nodedev-list --cap pci| grep transformed-bdf
    transformed-bdf
    The PCI device BDF of the GPU with the colon and the period replaced with underscores, for example, 06_00_0.

    This example obtains the full identifier of the GPU with the PCI device BDF 06:00.0.

    # virsh nodedev-list --cap pci| grep 06_00_0
    pci_0000_06_00_0
  3. Obtain the domain, bus, slot, and function of the GPU from the full identifier of the GPU.
    virsh nodedev-dumpxml full-identifier| egrep 'domain|bus|slot|function'
    full-identifier
    The full identifier of the GPU that you obtained in the previous step, for example, pci_0000_06_00_0.

    This example obtains the domain, bus, slot, and function of the GPU with the PCI device BDF 06:00.0.

    # virsh nodedev-dumpxml pci_0000_06_00_0| egrep 'domain|bus|slot|function'
        <domain>0x0000</domain>
        <bus>0x06</bus>
        <slot>0x00</slot>
        <function>0x0</function>
          <address domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>

2.5.4. Creating an NVIDIA vGPU on Red Hat Enterprise Linux KVM

For each vGPU that you want to create, perform this task in a Linux command shell on the Red Hat Enterprise Linux KVM host.

Note: The mdev device file that you create to represent the vGPU does not persist when the host is rebooted and must be re-created after the host is rebooted. If necessary, you can use standard features of the operating system to automate the re-creation of this device file when the host is booted, for example, by writing a custom script that is executed when the host is rebooted.
Before you begin, ensure that you have the domain, bus, slot, and function of the GPU on which you are creating the vGPU. For instructions, see Getting the BDF and Domain of a GPU on Red Hat Enterprise Linux KVM.
  1. Change to the mdev_supported_types directory for the physical GPU.
    # cd /sys/class/mdev_bus/domain\:bus\:slot.function/mdev_supported_types/
    domain
    bus
    slot
    function
    The domain, bus, slot, and function of the GPU, without the 0x prefix.

    This example changes to the mdev_supported_types directory for the GPU with the domain 0000 and PCI device BDF 06:00.0.

    # cd /sys/bus/pci/devices/0000\:06\:00.0/mdev_supported_types/
  2. Find out which subdirectory of mdev_supported_types contains registration information for the vGPU type that you want to create.
    # grep -l "vgpu-type" nvidia-*/name
    vgpu-type
    The vGPU type, for example, M10-2Q.

    This example shows that the registration information for the M10-2Q vGPU type is contained in the nvidia-41 subdirectory of mdev_supported_types.

    # grep -l "M10-2Q" nvidia-*/name
    nvidia-41/name
  3. Confirm that you can create an instance of the vGPU type on the physical GPU.
    # cat subdirectory/available_instances
    subdirectory
    The subdirectory that you found in the previous step, for example, nvidia-41.

    The number of available instances must be at least 1. If the number is 0, either an instance of another vGPU type already exists on the physical GPU, or the maximum number of allowed instances has already been created.

    This example shows that four more instances of the M10-2Q vGPU type can be created on the physical GPU.

    # cat nvidia-41/available_instances
    4
  4. Generate a correctly formatted universally unique identifier (UUID) for the vGPU.
    # uuidgen
    aa618089-8b16-4d01-a136-25a0f3c73123
  5. Write the UUID that you obtained in the previous step to the create file in the registration information directory for the vGPU type that you want to create.
    # echo "uuid"> subdirectory/create
    uuid
    The UUID that you generated in the previous step, which will become the UUID of the vGPU that you want to create.
    subdirectory
    The registration information directory for the vGPU type that you want to create, for example, nvidia-41.

    This example creates an instance of the M10-2Q vGPU type with the UUID aa618089-8b16-4d01-a136-25a0f3c73123.

    # echo "aa618089-8b16-4d01-a136-25a0f3c73123" > nvidia-41/create

    An mdev device file for the vGPU is added is added to the parent physical device directory of the vGPU. The vGPU is identified by its UUID.

    The /sys/bus/mdev/devices/ directory contains a symbolic link to the mdev device file.

  6. Confirm that the vGPU was created.
    # ls -l /sys/bus/mdev/devices/
    total 0
    lrwxrwxrwx. 1 root root 0 Nov 24 13:33 aa618089-8b16-4d01-a136-25a0f3c73123 -> ../../../devices/pci0000:00/0000:00:03.0/0000:03:00.0/0000:04:09.0/0000:06:00.0/aa618089-8b16-4d01-a136-25a0f3c73123

2.5.5. Adding One or More vGPUs to a Red Hat Enterprise Linux KVM VM

To support applications and workloads that are compute or graphics intensive, you can add multiple vGPUs to a single VM.

For details about which Red Hat Enterprise Linux KVM versions and NVIDIA vGPUs support the assignment of multiple vGPUs to a VM, see Virtual GPU Software for Red Hat Enterprise Linux with KVM Release Notes.

Ensure that the following prerequisites are met:

You can add vGPUs to a Red Hat Enterprise Linux KVM VM by using any of the following tools:

  • The virsh command
  • The QEMU command line

After adding vGPUs to a Red Hat Enterprise Linux KVM VM, start the VM.

# virsh start vm-name
vm-name
The name of the VM that you added the vGPUs to.

After the VM has booted, install the NVIDIA vGPU software graphics driver as explained in Installing the NVIDIA vGPU Software Graphics Driver.

2.5.5.1. Adding One or More vGPUs to a Red Hat Enterprise Linux KVM VM by Using virsh

  1. In virsh, open for editing the XML file of the VM that you want to add the vGPU to.
    # virsh edit vm-name
    vm-name
    The name of the VM to that you want to add the vGPUs to.
  2. For each vGPU that you want to add to the VM, add a device entry in the form of an address element inside the source element to add the vGPU to the guest VM.
    <device>
    ...
      <hostdev mode='subsystem' type='mdev' model='vfio-pci'>
        <source>
          <address uuid='uuid'/>
        </source>
      </hostdev>
    </device>
    uuid
    The UUID that was assigned to the vGPU when the vGPU was created.

    This example adds a device entry for the vGPU with the UUID a618089-8b16-4d01-a136-25a0f3c73123.

    <device>
    ...
      <hostdev mode='subsystem' type='mdev' model='vfio-pci'>
        <source>
          <address uuid='a618089-8b16-4d01-a136-25a0f3c73123'/>
        </source>
      </hostdev>
    </device>

    This example adds device entries for two vGPUs with the following UUIDs:

    • c73f1fa6-489e-4834-9476-d70dabd98c40
    • 3b356d38-854e-48be-b376-00c72c7d119c
    <device>
    ...
      <hostdev mode='subsystem' type='mdev' model='vfio-pci'>
        <source>
          <address uuid='c73f1fa6-489e-4834-9476-d70dabd98c40'/>
        </source>
      </hostdev>
      <hostdev mode='subsystem' type='mdev' model='vfio-pci'>
        <source>
          <address uuid='3b356d38-854e-48be-b376-00c72c7d119c'/>
        </source>
      </hostdev>
    </device>

2.5.5.2. Adding One or More vGPUs to a Red Hat Enterprise Linux KVM VM by Using the QEMU Command Line

Add the following options to the QEMU command line:
  • For each vGPU that you want to add to the VM, add one -device option in the following format:

    -device vfio-pci,sysfsdev=/sys/bus/mdev/devices/vgpu-uuid
    vgpu-uuid
    The UUID that was assigned to the vGPU when the vGPU was created.
  • Add a -uuid option to specify the VM as follows:

    -uuid vm-uuid
    vm-uuid
    The UUID that was assigned to the VM when the VM was created.

This example adds the vGPU with the UUID aa618089-8b16-4d01-a136-25a0f3c73123 to the VM with the UUID ebb10a6e-7ac9-49aa-af92-f56bb8c65893.

-device vfio-pci,sysfsdev=/sys/bus/mdev/devices/aa618089-8b16-4d01-a136-25a0f3c73123 \
-uuid ebb10a6e-7ac9-49aa-af92-f56bb8c65893

This example adds device entries for two vGPUs with the following UUIDs:

  • 676428a0-2445-499f-9bfd-65cd4a9bd18f
  • 6c5954b8-5bc1-4769-b820-8099fe50aaba

The entries are added to the VM with the UUID ec5e8ee0-657c-4db6-8775-da70e332c67e.

-device vfio-pci,sysfsdev=/sys/bus/mdev/devices/676428a0-2445-499f-9bfd-65cd4a9bd18f \
-device vfio-pci,sysfsdev=/sys/bus/mdev/devices/6c5954b8-5bc1-4769-b820-8099fe50aaba \
-uuid ec5e8ee0-657c-4db6-8775-da70e332c67e

2.5.6. Setting vGPU Plugin Parameters on Red Hat Enterprise Linux KVM

Plugin parameters for a vGPU control the behavior of the vGPU, such as the frame rate limiter (FRL) configuration in frames per second or whether console virtual network computing (VNC) for the vGPU is enabled. The VM to which the vGPU is assigned is started with these parameters. If parameters are set for multiple vGPUs assigned to the same VM, the VM is started with the parameters assigned to each vGPU.

For each vGPU for which you want to set plugin parameters, perform this task in a Linux command shell on the Red Hat Enterprise Linux KVM host.

  1. Change to the nvidia subdirectory of the mdev device directory that represents the vGPU.
    # cd /sys/bus/mdev/devices/uuid/nvidia
    uuid
    The UUID of the vGPU, for example, aa618089-8b16-4d01-a136-25a0f3c73123.
  2. Write the plugin parameters that you want to set to the vgpu_params file in the directory that you changed to in the previous step.
    # echo "plugin-config-params" > vgpu_params
    plugin-config-params
    A comma-separated list of parameter-value pairs, where each pair is of the form parameter-name=value.

    This example disables frame rate limiting and console VNC for a vGPU.

    # echo "frame_rate_limiter=0, disable_vnc=1" > vgpu_params
To clear any vGPU plugin parameters that were set previously, write a space to the vgpu_params file for the vGPU.
# echo " " > vgpu_params

2.5.7. Deleting a vGPU on Red Hat Enterprise Linux KVM

For each vGPU that you want to delete, perform this task in a Linux command shell on the Red Hat Enterprise Linux KVM host.

Before you begin, ensure that the following prerequisites are met:

  1. Change to the mdev_supported_types directory for the physical GPU.
    # cd /sys/class/mdev_bus/domain\:bus\:slot.function/mdev_supported_types/
    domain
    bus
    slot
    function
    The domain, bus, slot, and function of the GPU, without the 0x prefix.

    This example changes to the mdev_supported_types directory for the GPU with the PCI device BDF 06:00.0.

    # cd /sys/bus/pci/devices/0000\:06\:00.0/mdev_supported_types/
  2. Change to the subdirectory of mdev_supported_types that contains registration information for the vGPU.
    # cd `find . -type d -name uuid`
    uuid
    The UUID of the vGPU, for example, aa618089-8b16-4d01-a136-25a0f3c73123.
  3. Write the value 1 to the remove file in the registration information directory for the vGPU that you want to delete.
    # echo "1" > remove
    Note: On the Red Hat Virtualization (RHV) kernel, if you try to remove a vGPU device while its VM is running, the vGPU device might not be removed even if the remove file has been written to successfully. To confirm that the vGPU device is removed, confirm that the UUID of the vGPU is not found in the sysfs file system.

2.5.8. Preparing a GPU Configured for Pass-Through for Use with vGPU

The mode in which a physical GPU is being used determines the Linux kernel module to which the GPU is bound. If you want to switch the mode in which a GPU is being used, you must unbind the GPU from its current kernel module and bind it to the kernel module for the new mode. After binding the GPU to the correct kernel module, you can then configure it for vGPU.

A physical GPU that is passed through to a VM is bound to the vfio-pci kernel module. A physical GPU that is bound to the vfio-pci kernel module can be used only for pass-through. To enable the GPU to be used for vGPU, the GPU must be unbound from vfio-pci kernel module and bound to the nvidia kernel module.

Before you begin, ensure that you have the domain, bus, slot, and function of the GPU that you are preparing for use with vGPU. For instructions, see Getting the BDF and Domain of a GPU on Red Hat Enterprise Linux KVM.
  1. Determine the kernel module to which the GPU is bound by running the lspci command with the -k option on the NVIDIA GPUs on your host.
    # lspci -d 10de: -k

    The Kernel driver in use: field indicates the kernel module to which the GPU is bound.

    The following example shows that the NVIDIA Tesla M60 GPU with BDF 06:00.0 is bound to the vfio-pci kernel module and is being used for GPU pass through.

       06:00.0 VGA compatible controller: NVIDIA Corporation GM204GL [Tesla M60] (rev a1)
             Subsystem: NVIDIA Corporation Device 115e
             Kernel driver in use: vfio-pci
  2. Unbind the GPU from vfio-pci kernel module.
    1. Change to the sysfs directory that represents the vfio-pci kernel module.
      # cd /sys/bus/pci/drivers/vfio-pci
    2. Write the domain, bus, slot, and function of the GPU to the unbind file in this directory.
      # echo domain:bus:slot.function > unbind
      domain
      bus
      slot
      function
      The domain, bus, slot, and function of the GPU, without a 0x prefix.

      This example writes the domain, bus, slot, and function of the GPU with the domain 0000 and PCI device BDF 06:00.0.

      # echo 0000:06:00.0 > unbind
  3. Bind the GPU to the nvidia kernel module.
    1. Change to the sysfs directory that contains the PCI device information for the physical GPU.
      # cd /sys/bus/pci/devices/domain\:bus\:slot.function
      domain
      bus
      slot
      function
      The domain, bus, slot, and function of the GPU, without a 0x prefix.

      This example changes to the sysfs directory that contains the PCI device information for the GPU with the domain 0000 and PCI device BDF 06:00.0.

      # cd /sys/bus/pci/devices/0000\:06\:00.0
    2. Write the kernel module name nvidia to the driver_override file in this directory.
      # echo nvidia > driver_override
    3. Change to the sysfs directory that represents the nvidia kernel module.
      # cd /sys/bus/pci/drivers/nvidia
    4. Write the domain, bus, slot, and function of the GPU to the bind file in this directory.
      # echo domain:bus:slot.function > bind
      domain
      bus
      slot
      function
      The domain, bus, slot, and function of the GPU, without a 0x prefix.

      This example writes the domain, bus, slot, and function of the GPU with the domain 0000 and PCI device BDF 06:00.0.

      # echo 0000:06:00.0 > bind

2.5.9. NVIDIA vGPU Information in the sysfs File System

Information about the NVIDIA vGPU types supported by each physical GPU in a Red Hat Enterprise Linux KVM host is stored in the sysfs file system.

All physical GPUs on the host are registered with the mdev kernel module. Information about the physical GPUs and the vGPU types that can be created on each physical GPU is stored in directories and files under the /sys/class/mdev_bus/ directory.

The sysfs directory for each physical GPU is at the following locations:

  • /sys/bus/pci/devices/
  • /sys/class/mdev_bus/

Both directories are a symbolic link to the real directory for PCI devices in the sysfs file system.

The organization the sysfs directory for each physical GPU is as follows:

/sys/class/mdev_bus/
           |-parent-physical-device
             |-mdev_supported_types
               |-nvidia-vgputype-id
                 |-available_instances
                 |-create
                 |-description
                 |-device_api
                 |-devices
                 |-name
parent-physical-device

Each physical GPU on the host is represented by a subdirectory of the /sys/class/mdev_bus/ directory.

The name of each subdirectory is as follows:

domain\:bus\:slot.function

domain, bus, slot, function are the domain, bus, slot, and function of the GPU, for example, 0000\:06\:00.0.

Each directory is a symbolic link to the real directory for PCI devices in the sysfs file system. For example:

# ll /sys/class/mdev_bus/
total 0
lrwxrwxrwx. 1 root root 0 Dec 12 03:20 0000:05:00.0 -> ../../devices/pci0000:00/0000:00:03.0/0000:03:00.0/0000:04:08.0/0000:05:00.0
lrwxrwxrwx. 1 root root 0 Dec 12 03:20 0000:06:00.0 -> ../../devices/pci0000:00/0000:00:03.0/0000:03:00.0/0000:04:09.0/0000:06:00.0
lrwxrwxrwx. 1 root root 0 Dec 12 03:20 0000:07:00.0 -> ../../devices/pci0000:00/0000:00:03.0/0000:03:00.0/0000:04:10.0/0000:07:00.0
lrwxrwxrwx. 1 root root 0 Dec 12 03:20 0000:08:00.0 -> ../../devices/pci0000:00/0000:00:03.0/0000:03:00.0/0000:04:11.0/0000:08:00.0
mdev_supported_types
After the Virtual GPU Manager is installed on the host and the host has been rebooted, a directory named mdev_supported_types is created under the sysfs directory for each physical GPU. The mdev_supported_types directory contains a subdirectory for each vGPU type that the physical GPU supports. The name of each subdirectory is nvidia-vgputype-id, where vgputype-id is an unsigned integer serial number. For example:
# ll mdev_supported_types/
total 0
drwxr-xr-x 3 root root 0 Dec  6 01:37 nvidia-35
drwxr-xr-x 3 root root 0 Dec  5 10:43 nvidia-36
drwxr-xr-x 3 root root 0 Dec  5 10:43 nvidia-37
drwxr-xr-x 3 root root 0 Dec  5 10:43 nvidia-38
drwxr-xr-x 3 root root 0 Dec  5 10:43 nvidia-39
drwxr-xr-x 3 root root 0 Dec  5 10:43 nvidia-40
drwxr-xr-x 3 root root 0 Dec  5 10:43 nvidia-41
drwxr-xr-x 3 root root 0 Dec  5 10:43 nvidia-42
drwxr-xr-x 3 root root 0 Dec  5 10:43 nvidia-43
drwxr-xr-x 3 root root 0 Dec  5 10:43 nvidia-44
drwxr-xr-x 3 root root 0 Dec  5 10:43 nvidia-45
nvidia-vgputype-id
Each directory represents an individual vGPU type and contains the following files and directories:
available_instances
This file contains the number of instances of this vGPU type that can still be created. This file is updated any time a vGPU of this type is created on or removed from the physical GPU.
Note: When a vGPU is created, the content of the available_instances for all other vGPU types on the physical GPU is set to 0. This behavior enforces the requirement that all vGPUs on a physical GPU must be of the same type.
create
This file is used for creating a vGPU instance. A vGPU instance is created by writing the UUID of the vGPU to this file. The file is write only.
description
This file contains the following details of the vGPU type:
  • The maximum number of virtual display heads that the vGPU type supports
  • The frame rate limiter (FRL) configuration in frames per second
  • The frame buffer size in Mbytes
  • The maximum resolution per display head
  • The maximum number of vGPU instances per physical GPU
For example:
# cat description
num_heads=4, frl_config=60, framebuffer=2048M, max_resolution=4096x2160, max_instance=4
device_api
This file contains the string vfio_pci to indicate that a vGPU is a PCI device.
devices
This directory contains all the mdev devices that are created for the vGPU type. For example:
# ll devices
total 0
lrwxrwxrwx 1 root root 0 Dec  6 01:52 aa618089-8b16-4d01-a136-25a0f3c73123 -> ../../../aa618089-8b16-4d01-a136-25a0f3c73123
name
This file contains the name of the vGPU type. For example:
# cat name
GRID M10-2Q

2.6. Installing and Configuring the NVIDIA Virtual GPU Manager for VMware vSphere

You can use the NVIDIA Virtual GPU Manager for VMware vSphere to set up a VMware vSphere VM to use NVIDIA vGPU or VMware vSGA. The vGPU Manager vSphere Installation Bundles (VIBs) for VMware vSphere 6.5 and later provide vSGA and vGPU functionality in a single VIB. For VMware vSphere 6.0, vSGA and vGPU functionality are provided in separate vGPU Manager VIBs.

Note: Some servers, for example, the Dell R740, do not configure SR-IOV capability if the SR-IOV SBIOS setting is disabled on the server. If you are using the Tesla T4 GPU with VMware vSphere on such a server, you must ensure that the SR-IOV SBIOS setting is enabled on the server.

For NVIDIA vGPU, follow this sequence of instructions:

  1. Installing and Updating the NVIDIA Virtual GPU Manager for vSphere
  2. Configuring VMware vMotion with vGPU for VMware vSphere
  3. Changing the Default Graphics Type in VMware vSphere 6.5 and Later
  4. Configuring a vSphere VM with NVIDIA vGPU

After configuring a vSphere VM to use NVIDIA vGPU, you can install the NVIDIA vGPU software graphics driver for your guest OS and license any NVIDIA vGPU software licensed products that you are using.

For VMware vSGA, follow this sequence of instructions:

  1. Installing and Updating the NVIDIA Virtual GPU Manager for vSphere
  2. Configuring a vSphere VM with VMware vSGA

Installation of the NVIDIA vGPU software graphics driver for the guest OS is not required for vSGA.

2.6.1. Installing and Updating the NVIDIA Virtual GPU Manager for vSphere

The NVIDIA Virtual GPU Manager runs on the ESXi host. It is provided in the following formats:

  • As a VIB file, which must be copied to the ESXi host and then installed
  • As an offline bundle that you can import manually as explained in Import Patches Manually in the VMware vSphere documentation
CAUTION:
NVIDIA Virtual GPU Manager and Guest VM drivers must be matched from the same main driver branch. If you update vGPU Manager to a release from another driver branch, guest VMs will boot with vGPU disabled until their guest vGPU driver is updated to match the vGPU Manager version. Consult Virtual GPU Software for VMware vSphere Release Notes for further details.

2.6.1.1. Installing the NVIDIA Virtual GPU Manager Package for vSphere

To install the vGPU Manager VIB you need to access the ESXi host via the ESXi Shell or SSH. Refer to VMware’s documentation on how to enable ESXi Shell or SSH for an ESXi host.

Note: Before proceeding with the vGPU Manager installation make sure that all VMs are powered off and the ESXi host is placed in maintenance mode. Refer to VMware’s documentation on how to place an ESXi host in maintenance mode.
  1. Use the esxcli command to install the vGPU Manager package:
    [root@esxi:~] esxcli software vib install -v directory/NVIDIA-vGPU-VMware_ESXi_6.7_Host_Driver_440.53-1OEM.600.0.0.2159203.vib
    Installation Result
       Message: Operation finished successfully.
       Reboot Required: false
       VIBs Installed: NVIDIA-vGPU-VMware_ESXi_6.7_Host_Driver_440.53-1OEM.600.0.0.2159203
       VIBs Removed:
       VIBs Skipped:

    directory is the absolute path to the directory that contains the VIB file. You must specify the absolute path even if the VIB file is in the current working directory.

  2. Reboot the ESXi host and remove it from maintenance mode.

2.6.1.2. Updating the NVIDIA Virtual GPU Manager Package for vSphere

Update the vGPU Manager VIB package if you want to install a new version of NVIDIA Virtual GPU Manager on a system where an existing version is already installed.

To update the vGPU Manager VIB you need to access the ESXi host via the ESXi Shell or SSH. Refer to VMware’s documentation on how to enable ESXi Shell or SSH for an ESXi host.

Note: Before proceeding with the vGPU Manager update, make sure that all VMs are powered off and the ESXi host is placed in maintenance mode. Refer to VMware’s documentation on how to place an ESXi host in maintenance mode
  1. Use the esxcli command to update the vGPU Manager package:
    [root@esxi:~] esxcli software vib update -v directory/NVIDIA-vGPU-VMware_ESXi_6.7_Host_Driver_440.53-1OEM.600.0.0.2159203.vib
    
    Installation Result
       Message: Operation finished successfully.
       Reboot Required: false
       VIBs Installed: NVIDIA-vGPU-VMware_ESXi_6.7_Host_Driver_440.53-1OEM.600.0.0.2159203
       VIBs Removed: NVIDIA-vGPU-VMware_ESXi_6.7_Host_Driver_440.43-1OEM.600.0.0.2159203
       VIBs Skipped:

    directory is the path to the directory that contains the VIB file.

  2. Reboot the ESXi host and remove it from maintenance mode.

2.6.1.3. Verifying the Installation of the NVIDIA vGPU Software Package for vSphere

After the ESXi host has rebooted, verify the installation of the NVIDIA vGPU software package for vSphere.
  1. Verify that the NVIDIA vGPU software package installed and loaded correctly by checking for the NVIDIA kernel driver in the list of kernel loaded modules.
    [root@esxi:~] vmkload_mod -l | grep nvidia
    nvidia                   5    8420
  2. If the NVIDIA driver is not listed in the output, check dmesg for any load-time errors reported by the driver.
  3. Verify that the NVIDIA kernel driver can successfully communicate with the NVIDIA physical GPUs in your system by running the nvidia-smi command. The nvidia-smi command is described in more detail in NVIDIA System Management Interface nvidia-smi.
Running the nvidia-smi command should produce a listing of the GPUs in your platform.
[root@esxi:~] nvidia-smi
Fri Feb 14 17:56:22 2020
+------------------------------------------------------+
| NVIDIA-SMI 440.53     Driver Version: 440.56         |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla M60           On   | 00000000:05:00.0 Off |                  Off |
| N/A   25C    P8    24W / 150W |     13MiB /  8191MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  Tesla M60           On   | 00000000:06:00.0 Off |                  Off |
| N/A   24C    P8    24W / 150W |     13MiB /  8191MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   2  Tesla M60           On   | 00000000:86:00.0 Off |                  Off |
| N/A   25C    P8    25W / 150W |     13MiB /  8191MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   3  Tesla M60           On   | 00000000:87:00.0 Off |                  Off |
| N/A   28C    P8    24W / 150W |     13MiB /  8191MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
If nvidia-smi fails to report the expected output for all the NVIDIA GPUs in your system, see Troubleshooting for troubleshooting steps.

2.6.2. Configuring VMware vMotion with vGPU for VMware vSphere

NVIDIA vGPU software supports vGPU migration, which includes VMware vMotion and suspend-resume, for VMs that are configured with vGPU. To enable VMware vMotion with vGPU, an advanced vCenter Server setting must be enabled. However, suspend-resume for VMs that are configured with vGPU is enabled by default.

For details about which VMware vSphere versions, NVIDIA GPUs, and guest OS releases support vGPU migration, see Virtual GPU Software for VMware vSphere Release Notes.

Before configuring VMware vMotion with vGPU for an ESXi host, ensure that the current NVIDIA Virtual GPU Manager for VMware vSphere package is installed on the host.
  1. Log in to vCenter Server by using the vSphere Web Client.
  2. In the Hosts and Clusters view, select the vCenter Server instance.
    Note: Ensure that you select the vCenter Server instance, not the vCenter Server VM.
  3. Click the Configure tab.
  4. In the Settings section, select Advanced Settings and click Edit.
  5. In the Edit Advanced vCenter Server Settings window that opens, type vGPU in the search field.
  6. When the vgpu.hotmigrate.enabled setting appears, set the Enabled option and click OK.

    Screen capture showing the vgpu.hotmigrate.enabled setting in the Edit Advanced vCenter Server Settings window.

2.6.3. Changing the Default Graphics Type in VMware vSphere 6.5 and Later

The vGPU Manager VIBs for VMware vSphere 6.5 and later provide vSGA and vGPU functionality in a single VIB. After this VIB is installed, the default graphics type is Shared, which provides vSGA functionality. To enable vGPU support for VMs in VMware vSphere 6.5, you must change the default graphics type to Shared Direct. If you do not change the default graphics type, VMs to which a vGPU is assigned fail to start and the following error message is displayed:

The amount of graphics resource available in the parent resource pool is insufficient for the operation.
Note:

If you are using a supported version of VMware vSphere earlier than 6.5, or are configuring a VM to use vSGA, omit this task.

Change the default graphics type before configuring vGPU. Output from the VM console in the VMware vSphere Web Client is not available for VMs that are running vGPU.

Before changing the default graphics type, ensure that the ESXi host is running and that all VMs on the host are powered off.

  1. Log in to vCenter Server by using the vSphere Web Client.
  2. In the navigation tree, select your ESXi host and click the Configure tab.
  3. From the menu, choose Graphics and then click the Host Graphics tab.
  4. On the Host Graphics tab, click Edit.
    Figure 7. Shared default graphics type

    Screen capture of the Host Graphics tab in the VMware vCenter Web UI, showing the default graphics type as Shared

  5. In the Edit Host Graphics Settings dialog box that opens, select Shared Direct and click OK.
    Figure 8. Host graphics settings for vGPU

    Screen capture showing the Edit Host Graphics Settings dialog box in the VMware vCenter Web UI for changing the default graphics type

    Note: In this dialog box, you can also change the allocation scheme for vGPU-enabled VMs. For more information, see Modifying GPU Allocation Policy on VMware vSphere.

    After you click OK, the default graphics type changes to Shared Direct.

  6. Click the Graphics Devices tab to verify the configured type of each physical GPU on which you want to configure vGPU. The configured type of each physical GPU must be Shared Direct. For any physical GPU for which the configured type is Shared, change the configured type as follows:
    1. On the Graphics Devices tab, select the physical GPU and click the Edit icon.
      Figure 9. Shared graphics type

      Screen capture of the Graphics Devices tab in the VMware vCenter Web UI, showing the active type and configured type of two NVIDIA GPUs as Shared

    2. In the Edit Graphics Device Settings dialog box that opens, select Shared Direct and click OK.
      Figure 10. Graphics device settings for a physical GPU

      Screen capture showing the Edit Graphics Device Settings dialog box in the VMware vCenter Web UI for changing the graphics type of a physical GPU

  7. Restart the ESXi host or stop and restart the Xorg service and nv-hostengine on the ESXi host.

    To stop and restart the Xorg service and nv-hostengine, perform these steps:

    1. Stop the Xorg service.
      [root@esxi:~] /etc/init.d/xorg stop
    2. Stop nv-hostengine.
      [root@esxi:~] nv-hostengine -t
    3. Wait for 1 second to allow nv-hostengine to stop.
    4. Start nv-hostengine.
      [root@esxi:~] nv-hostengine -d
    5. Start the Xorg service.
      [root@esxi:~] /etc/init.d/xorg start
  8. In the Graphics Devices tab of the VMware vCenter Web UI, confirm that the active type and the configured type of each physical GPU are Shared Direct.
    Figure 11. Shared direct graphics type

    Screen capture of the Graphics Devices tab in the VMware vCenter Web UI, showing the active type and configured type of two NVIDIA GPUs as Shared Direct

After changing the default graphics type, configure vGPU as explained in Configuring a vSphere VM with NVIDIA vGPU.

See also the following topics in the VMware vSphere documentation:

2.6.4. Configuring a vSphere VM with NVIDIA vGPU

To support applications and workloads that are compute or graphics intensive, you can add multiple vGPUs to a single VM.

For details about which VMware vSphere versions and NVIDIA vGPUs support the assignment of multiple vGPUs to a VM, see Virtual GPU Software for VMware vSphere Release Notes.

If you upgraded to VMware vSphere 6.7 Update 3 from an earlier version and are using VMs that were created with that version, change the VM compatibility to vSphere 6.7 Update 2 and later. For details, see Virtual Machine Compatibility in the VMware documentation.

If you are adding multiple vGPUs to a single VM, perform this task for each vGPU that you want to add to the VM.

CAUTION:
Output from the VM console in the VMware vSphere Web Client is not available for VMs that are running vGPU. Make sure that you have installed an alternate means of accessing the VM (such as VMware Horizon or a VNC server) before you configure vGPU.

VM console in vSphere Web Client will become active again once the vGPU parameters are removed from the VM’s configuration.

Note: If you are configuring a VM to use VMware vSGA, omit this task.
  1. Open the vCenter Web UI.
  2. In the vCenter Web UI, right-click the VM and choose Edit Settings.
  3. Click the Virtual Hardware tab.
  4. In the New device list, select Shared PCI Device and click Add. The PCI device field should be auto-populated with NVIDIA GRID vGPU.
    Figure 12. VM settings for vGPU

    Screen capture showing VM settings for vGPU in the Edit Settings window in the VMware vCenter Web UI

  5. From the GPU Profile drop-down menu, choose the type of vGPU you want to configure and click OK.
  6. Ensure that VMs running vGPU have all their memory reserved:
    1. Select Edit virtual machine settings from the vCenter Web UI.
    2. Expand the Memory section and click Reserve all guest memory (All locked).

After you have configured a vSphere VM with a vGPU, start the VM. VM console in vSphere Web Client is not supported in this vGPU release. Therefore, use VMware Horizon or VNC to access the VM’s desktop.

After the VM has booted, install the NVIDIA vGPU software graphics driver as explained in Installing the NVIDIA vGPU Software Graphics Driver.

2.6.5. Configuring a vSphere VM with VMware vSGA

Virtual Shared Graphics Acceleration (vSGA) is a feature of VMware vSphere that enables multiple virtual machines to share the physical GPUs on ESXi hosts.

Note: If you are configuring a VM to use NVIDIA vGPU, omit this task.

Before configuring a vSphere VM with vSGA, ensure that these prerequisites are met:

  • VMware tools are installed on the VM.
  • The VM is powered off.
  • The NVIDIA Virtual GPU Manager package for vSphere is installed.
  1. Open the vCenter Web UI.
  2. In the vCenter Web UI, right-click the VM and choose Edit Settings.
  3. Click the Virtual Hardware tab.
  4. In the device list, expand the Video card node and set the following options:
    1. Select the Enable 3D support option.
    2. Set the 3D Renderer to Hardware.
    For more information, see Configure 3D Graphics and Video Cards in the VMware Horizon documentation.
  5. Start the VM.
  6. After the VM has booted, verify that the VM has been configured correctly with vSGA.
    1. Under the Display Adapter section of Device Manager, confirm that VMware SVGA 3D is listed.
    2. Verify that the virtual machine is using the GPU card.
      # gpuvm

      The output from the command is similar to the following example for a VM named samplevm1:

      Xserver unix:0, GPU maximum memory 4173824KB
      pid 21859, VM samplevm1, reserved 131072KB of GPU memory.
      GPU memory left 4042752KB.

      The memory reserved for the VM and the GPU maximum memory depend on the GPU installed in the host and the 3D memory allocated to the virtual machine.

Installation of the NVIDIA vGPU software graphics driver for the guest OS is not required for vSGA.

2.7. Disabling and Enabling ECC Memory

Some GPUs that support NVIDIA vGPU software support error correcting code (ECC) memory with NVIDIA vGPU. ECC memory improves data integrity by detecting and handling double-bit errors. However, not all GPUs, vGPU types, and hypervisor software versions support ECC memory with NVIDIA vGPU.

On GPUs that support ECC memory with NVIDIA vGPU, ECC memory is supported with C-series and Q-series vGPUs, but not with A-series and B-series vGPUs. Although A-series and B-series vGPUs start on physical GPUs on which ECC memory is enabled, enabling ECC with vGPUs that do not support it might incur some costs.

On physical GPUs that do not have HBM2 memory, the amount of frame buffer that is usable by vGPUs is reduced. All types of vGPU are affected, not just vGPUs that support ECC memory.

The effects of enabling ECC memory on a physical GPU are as follows:

  • ECC memory is exposed as a feature on all supported vGPUs on the physical GPU.
  • In VMs that support ECC memory, ECC memory is enabled, with the option to disable ECC in the VM.
  • ECC memory can be enabled or disabled for individual VMs. Enabling or disabling ECC memory in a VM does not affect the amount of frame buffer that is usable by vGPUs.

GPUs based on the Pascal GPU architecture and later GPU architectures support ECC memory with NVIDIA vGPU. These GPUs are supplied with ECC memory enabled.

Tesla M60 and M6 GPUs support ECC memory when used without GPU virtualization, but NVIDIA vGPU does not support ECC memory with these GPUs. In graphics mode, these GPUs are supplied with ECC memory disabled by default.

Some hypervisor software versions do not support ECC memory with NVIDIA vGPU.

If you are using a hypervisor software version or GPU that does not support ECC memory with NVIDIA vGPU and ECC memory is enabled, NVIDIA vGPU fails to start. In this situation, you must ensure that ECC memory is disabled on all GPUs if you are using NVIDIA vGPU.

2.7.1. Disabling ECC Memory

If ECC memory is unsuitable for your workloads but is enabled on your GPUs, disable it. You must also ensure that ECC memory is disabled on all GPUs if you are using NVIDIA vGPU with a hypervisor software version or a GPU that does not support ECC memory with NVIDIA vGPU. If your hypervisor software version or GPU does not support ECC memory and ECC memory is enabled, NVIDIA vGPU fails to start.

Where to perform this task from depends on whether you are changing ECC memory settings for a physical GPU or a vGPU.

  • For a physical GPU, perform this task from the hypervisor host.
  • For a vGPU, perform this task from the VM to which the vGPU is assigned.
    Note: ECC memory must be enabled on the physical GPU on which the vGPUs reside.
Before you begin, ensure that NVIDIA Virtual GPU Manager is installed on your hypervisor. If you are changing ECC memory settings for a vGPU, also ensure that the NVIDIA vGPU software graphics driver is installed in the VM to which the vGPU is assigned.
  1. Use nvidia-smi to list the status of all physical GPUs or vGPUs, and check for ECC noted as enabled.
    # nvidia-smi -q
    
    ==============NVSMI LOG==============
    
    Timestamp                           : Tue Feb 18 18:36:45 2020
    Driver Version                      : 440.53
    
    Attached GPUs                       : 1
    GPU 0000:02:00.0
    
    [...]
    
        Ecc Mode
            Current                     : Enabled
            Pending                     : Enabled
    
    [...]
  2. Change the ECC status to off for each GPU for which ECC is enabled.
    • If you want to change the ECC status to off for all GPUs on your host machine or vGPUs assigned to the VM, run this command:
      # nvidia-smi -e 0
    • If you want to change the ECC status to off for a specific GPU or vGPU, run this command:
      # nvidia-smi -i id -e 0

      id is the index of the GPU or vGPU as reported by nvidia-smi.

      This example disables ECC for the GPU with index 0000:02:00.0.

      # nvidia-smi -i 0000:02:00.0 -e 0
  3. Reboot the host or restart the VM.
  4. Confirm that ECC is now disabled for the GPU or vGPU.
    # nvidia—smi —q
    
    ==============NVSMI LOG==============
    
    Timestamp                           : Tue Feb 18 18:37:53 2020
    Driver Version                      : 440.53
    
    Attached GPUs                       : 1
    GPU 0000:02:00.0
    [...]
    
        Ecc Mode
            Current                     : Disabled
            Pending                     : Disabled
    
    [...]
If you later need to enable ECC on your GPUs or vGPUs, follow the instructions in Enabling ECC Memory.

2.7.2. Enabling ECC Memory

If ECC memory is suitable for your workloads and is supported by your hypervisor software and GPUs, but is disabled on your GPUs or vGPUs, enable it.

Where to perform this task from depends on whether you are changing ECC memory settings for a physical GPU or a vGPU.

  • For a physical GPU, perform this task from the hypervisor host.
  • For a vGPU, perform this task from the VM to which the vGPU is assigned.
    Note: ECC memory must be enabled on the physical GPU on which the vGPUs reside.
Before you begin, ensure that NVIDIA Virtual GPU Manager is installed on your hypervisor. If you are changing ECC memory settings for a vGPU, also ensure that the NVIDIA vGPU software graphics driver is installed in the VM to which the vGPU is assigned.
  1. Use nvidia-smi to list the status of all physical GPUs or vGPUs, and check for ECC noted as disabled.
    # nvidia-smi -q
    
    ==============NVSMI LOG==============
    
    Timestamp                           : Tue Feb 18 18:36:45 2020
    Driver Version                      : 440.53
    
    Attached GPUs                       : 1
    GPU 0000:02:00.0
    
    [...]
    
        Ecc Mode
            Current                     : Disabled
            Pending                     : Disabled
    
    [...]
  2. Change the ECC status to on for each GPU or vGPU for which ECC is enabled.
    • If you want to change the ECC status to on for all GPUs on your host machine or vGPUs assigned to the VM, run this command:
      # nvidia-smi -e 1
    • If you want to change the ECC status to on for a specific GPU or vGPU, run this command:
      # nvidia-smi -i id -e 1

      id is the index of the GPU or vGPU as reported by nvidia-smi.

      This example enables ECC for the GPU with index 0000:02:00.0.

      # nvidia-smi -i 0000:02:00.0 -e 1
  3. Reboot the host or restart the VM.
  4. Confirm that ECC is now enabled for the GPU or vGPU.
    # nvidia—smi —q
    
    ==============NVSMI LOG==============
    
    Timestamp                           : Tue Feb 18 18:37:53 2020
    Driver Version                      : 440.53
    
    Attached GPUs                       : 1
    GPU 0000:02:00.0
    [...]
    
        Ecc Mode
            Current                     : Enabled
            Pending                     : Enabled
    
    [...]
If you later need to disable ECC on your GPUs or vGPUs, follow the instructions in Disabling ECC Memory.

3. Using GPU Pass-Through

GPU pass-through is used to directly assign an entire physical GPU to one VM, bypassing the NVIDIA Virtual GPU Manager. In this mode of operation, the GPU is accessed exclusively by the NVIDIA driver running in the VM to which it is assigned; the GPU is not shared among VMs.

In pass-through mode, GPUs based on NVIDIA GPU architectures after the Maxwell architecture support error-correcting code (ECC).

GPU pass-through can be used in a server platform alongside NVIDIA vGPU, with some restrictions:

  • A physical GPU can host NVIDIA vGPUs, or can be used for pass-through, but cannot do both at the same time. Some hypervisors, for example VMware vSphere ESXi, require a host reboot to change a GPU from pass-through mode to vGPU mode.
  • A single VM cannot be configured for both vGPU and GPU pass-through at the same time.
  • The performance of a physical GPU passed through to a VM can be monitored only from within the VM itself. Such a GPU cannot be monitored by tools that operate through the hypervisor, such as XenCenter or nvidia-smi (see Monitoring GPU Performance).
  • The following BIOS settings must be enabled on your server platform:

    • VT-D/IOMMU
    • SR-IOV in Advanced Options
Note: If you are configuring a GPU for pass-through, do not install the NVIDIA Virtual GPU Manager.

3.1. Using GPU Pass-Through on Citrix Hypervisor

You can configure a GPU for pass-through on Citrix Hypervisor by using XenCenter or by using the xe command.

The following additional restrictions apply when GPU pass-through is used in a server platform alongside NVIDIA vGPU:

  • The performance of a physical GPU passed through to a VM cannot be monitored through XenCenter.
  • nvidia-smi in dom0 no longer has access to the GPU.
  • Pass-through GPUs do not provide console output through XenCenter’s VM Console tab. Use a remote graphics connection directly into the VM to access the VM’s OS.

3.1.1. Configuring a VM for GPU Pass Through by Using XenCenter

Select the Pass-through whole GPU option as the GPU type in the VM’s Properties:

Figure 13. Using XenCenter to configure a pass-through GPU Screen capture showing how to use XenCenter to configure a pass-through GPU
After configuring a Citrix Hypervisor VM for GPU pass through, install the NVIDIA graphics driver in the guest OS on the VM as explained in Installing the NVIDIA vGPU Software Graphics Driver.

3.1.2. Configuring a VM for GPU Pass Through by Using xe

Create a vgpu object with the passthrough vGPU type:

[root@xenserver ~]# xe vgpu-type-list model-name="passthrough"
uuid ( RO)                : fa50b0f0-9705-6c59-689e-ea62a3d35237
         vendor-name ( RO):
          model-name ( RO): passthrough
    framebuffer-size ( RO): 0

[root@xenserver ~]# xe vgpu-create vm-uuid=753e77a9-e10d-7679-f674-65c078abb2eb vgpu-type-uuid=fa50b0f0-9705-6c59-689e-ea62a3d35237 gpu-group-uuid=585877ef-5a6c-66af-fc56-7bd525bdc2f6
6aa530ec-8f27-86bd-b8e4-fe4fde8f08f9
[root@xenserver ~]#
CAUTION:
Do not assign pass-through GPUs using the legacy other-config:pci parameter setting. This mechanism is not supported alongside the XenCenter UI and xe vgpu mechanisms, and attempts to use it may lead to undefined results.
After configuring a Citrix Hypervisor VM for GPU pass through, install the NVIDIA graphics driver in the guest OS on the VM as explained in Installing the NVIDIA vGPU Software Graphics Driver.

3.2. Using GPU Pass-Through on Red Hat Enterprise Linux KVM

You can configure a GPU for pass-through on Red Hat Enterprise Linux Kernel-based Virtual Machine (KVM) by using any of the following tools:

  • The Virtual Machine Manager (virt-manager) graphical tool
  • The virsh command
  • The QEMU command line

Before configuring a GPU for pass-through on Red Hat Enterprise Linux KVM, ensure that the following prerequisites are met:

  • Red Hat Enterprise Linux KVM is installed.
  • A virtual disk has been created.
    Note: Do not create any virtual disks in /root.
  • A virtual machine has been created.

3.2.1. Configuring a VM for GPU Pass-Through by Using Virtual Machine Manager (virt-manager)

For more information about using Virtual Machine Manager, see the following topics in the documentation for Red Hat Enterprise Linux 7:

  1. Start virt-manager.
  2. In the virt-manager main window, select the VM that you want to configure for pass-through.
  3. From the Edit menu, choose Virtual Machine Details.
  4. In the virtual machine hardware information window that opens, click Add Hardware.
  5. In the Add New Virtual Hardware dialog box that opens, in the hardware list on the left, select PCI Host Device.
  6. From the Host Device list that appears, select the GPU that you want to assign to the VM and click Finish.

If you want to remove a GPU from the VM to which it is assigned, in the virtual machine hardware information window, select the GPU and click Remove.

After configuring a Red Hat Enterprise Linux KVM for GPU pass through, install the NVIDIA graphics driver in the guest OS on the VM as explained in Installing the NVIDIA vGPU Software Graphics Driver.

3.2.2. Configuring a VM for GPU Pass-Through by Using virsh

For more information about using virsh, see the following topics in the documentation for Red Hat Enterprise Linux 7:

  1. Verify that the vfio-pci module is loaded.
    # lsmod | grep vfio-pci
  2. Obtain the PCI device bus/device/function (BDF) of the GPU that you want to assign in pass-through mode to a VM.
    # lspci | grep NVIDIA

    The NVIDIA GPUs listed in this example have the PCI device BDFs 85:00.0 and 86:00.0.

    # lspci | grep NVIDIA
     85:00.0 VGA compatible controller: NVIDIA Corporation GM204GL [Tesla M60] (rev a1)
     86:00.0 VGA compatible controller: NVIDIA Corporation GM204GL [Tesla M60] (rev a1)
  3. Obtain the full identifier of the GPU from its PCI device BDF.
    # virsh nodedev-list --cap pci| grep transformed-bdf
    transformed-bdf
    The PCI device BDF of the GPU with the colon and the period replaced with underscores, for example, 85_00_0.

    This example obtains the full identifier of the GPU with the PCI device BDF 85:00.0.

    # virsh nodedev-list --cap pci| grep 85_00_0
    pci_0000_85_00_0
  4. Obtain the domain, bus, slot, and function of the GPU.
    virsh nodedev-dumpxml full-identifier| egrep 'domain|bus|slot|function'
    full-identifier
    The full identifier of the GPU that you obtained in the previous step, for example, pci_0000_85_00_0.

    This example obtains the domain, bus, slot, and function of the GPU with the PCI device BDF 85:00.0.

    # virsh nodedev-dumpxml pci_0000_85_00_0| egrep 'domain|bus|slot|function'
        <domain>0x0000</domain>
        <bus>0x85</bus>
        <slot>0x00</slot>
        <function>0x0</function>
          <address domain='0x0000' bus='0x85' slot='0x00' function='0x0'/>
  5. In virsh, open for editing the XML file of the VM that you want to assign the GPU to.
    # virsh edit vm-name
    vm-name
    The name of the VM to that you want to assign the GPU to.
  6. Add a device entry in the form of an address element inside the source element to assign the GPU to the guest VM. You can optionally add a second address element after the source element to set a fixed PCI device BDF for the GPU in the guest operating system.
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address domain='domain' bus='bus' slot='slot' function='function'/>
      </source>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </hostdev>
    domain
    bus
    slot
    function
    The domain, bus, slot, and function of the GPU, which you obtained in the previous step.

    This example adds a device entry for the GPU with the PCI device BDF 85:00.0 and fixes the BDF for the GPU in the guest operating system.

    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address domain='0x0000' bus='0x85' slot='0x00' function='0x0'/>
      </source>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </hostdev>
  7. Start the VM that you assigned the GPU to.
    # virsh start vm-name
    vm-name
    The name of the VM that you assigned the GPU to.
After configuring a Red Hat Enterprise Linux KVM for GPU pass through, install the NVIDIA graphics driver in the guest OS on the VM as explained in Installing the NVIDIA vGPU Software Graphics Driver.

3.2.3. Configuring a VM for GPU Pass-Through by Using the QEMU Command Line

  1. Obtain the PCI device bus/device/function (BDF) of the GPU that you want to assign in pass-through mode to a VM.
    # lspci | grep NVIDIA

    The NVIDIA GPUs listed in this example have the PCI device BDFs 85:00.0 and 86:00.0.

    # lspci | grep NVIDIA
     85:00.0 VGA compatible controller: NVIDIA Corporation GM204GL [Tesla M60] (rev a1)
     86:00.0 VGA compatible controller: NVIDIA Corporation GM204GL [Tesla M60] (rev a1)
  2. Add the following option to the QEMU command line:
    -device vfio-pci,host=bdf
    bdf
    The PCI device BDF of the GPU that you want to assign in pass-through mode to a VM, for example, 85:00.0.

    This example assigns the GPU with the PCI device BDF 85:00.0 in pass-through mode to a VM.

    -device vfio-pci,host=85:00.0
After configuring a Red Hat Enterprise Linux KVM for GPU pass through, install the NVIDIA graphics driver in the guest OS on the VM as explained in Installing the NVIDIA vGPU Software Graphics Driver.

3.2.4. Preparing a GPU Configured for vGPU for Use in Pass-Through Mode

The mode in which a physical GPU is being used determines the Linux kernel module to which the GPU is bound. If you want to switch the mode in which a GPU is being used, you must unbind the GPU from its current kernel module and bind it to the kernel module for the new mode. After binding the GPU to the correct kernel module, you can then configure it for pass-through.

When the Virtual GPU Manager is installed on a Red Hat Enterprise Linux KVM host, the physical GPUs on the host are bound to the nvidia kernel module. A physical GPU that is bound to the nvidia kernel module can be used only for vGPU. To enable the GPU to be passed through to a VM, the GPU must be unbound from nvidia kernel module and bound to the vfio-pci kernel module.

Before you begin, ensure that you have the domain, bus, slot, and function of the GPU that you are preparing for use in pass-through mode. For instructions, see Getting the BDF and Domain of a GPU on Red Hat Enterprise Linux KVM.
  1. Determine the kernel module to which the GPU is bound by running the lspci command with the -k option on the NVIDIA GPUs on your host.
    # lspci -d 10de: -k

    The Kernel driver in use: field indicates the kernel module to which the GPU is bound.

    The following example shows that the NVIDIA Tesla M60 GPU with BDF 06:00.0 is bound to the nvidia kernel module and is being used for vGPU.

       06:00.0 VGA compatible controller: NVIDIA Corporation GM204GL [Tesla M60] (rev a1)
             Subsystem: NVIDIA Corporation Device 115e
             Kernel driver in use: nvidia
  2. To ensure that no clients are using the GPU, acquire the unbind lock of the GPU.
    1. Ensure that no VM is running to which a vGPU on the physical GPU is assigned and that no process running on the host is using that GPU. Processes on the host that use the GPU include the nvidia-smi command and all processes based on the NVIDIA Management Library (NVML).
    2. Change to the directory in the proc file system that represents the GPU.
      # cd /proc/driver/nvidia/gpus/domain\:bus\:slot.function
      domain
      bus
      slot
      function
      The domain, bus, slot, and function of the GPU, without a 0x prefix.

      This example changes to the directory in the proc file system that represents the GPU with the domain 0000 and PCI device BDF 06:00.0.

      # cd /proc/driver/nvidia/gpus/0000\:06\:00.0
    3. Write the value 1 to the unbindLock file in this directory.
      # echo 1 > unbindLock
    4. Confirm that the unbindLock file now contains the value 1.
      # cat unbindLock
      1

      If the unbindLock file contains the value 0, the unbind lock could not be acquired because a process or client is using the GPU.

  3. Unbind the GPU from nvidia kernel module.
    1. Change to the sysfs directory that represents the nvidia kernel module.
      # cd /sys/bus/pci/drivers/nvidia
    2. Write the domain, bus, slot, and function of the GPU to the unbind file in this directory.
      # echo domain:bus:slot.function > unbind
      domain
      bus
      slot
      function
      The domain, bus, slot, and function of the GPU, without a 0x prefix.

      This example writes the domain, bus, slot, and function of the GPU with the domain 0000 and PCI device BDF 06:00.0.

      # echo 0000:06:00.0 > unbind
  4. Bind the GPU to the vfio-pci kernel module.
    1. Change to the sysfs directory that contains the PCI device information for the physical GPU.
      # cd /sys/bus/pci/devices/domain\:bus\:slot.function
      domain
      bus
      slot
      function
      The domain, bus, slot, and function of the GPU, without a 0x prefix.

      This example changes to the sysfs directory that contains the PCI device information for the GPU with the domain 0000 and PCI device BDF 06:00.0.

      # cd /sys/bus/pci/devices/0000\:06\:00.0
    2. Write the kernel module name vfio-pci to the driver_override file in this directory.
      # echo vfio-pci > driver_override
    3. Change to the sysfs directory that represents the nvidia kernel module.
      # cd /sys/bus/pci/drivers/vfio-pci
    4. Write the domain, bus, slot, and function of the GPU to the bind file in this directory.
      # echo domain:bus:slot.function > bind
      domain
      bus
      slot
      function
      The domain, bus, slot, and function of the GPU, without a 0x prefix.

      This example writes the domain, bus, slot, and function of the GPU with the domain 0000 and PCI device BDF 06:00.0.

      # echo 0000:06:00.0 > bind
    5. Change back to the sysfs directory that contains the PCI device information for the physical GPU.
      # cd /sys/bus/pci/devices/domain\:bus\:slot.function
    6. Clear the content of the driver_override file in this directory.
      # echo > driver_override
You can now configure the GPU for use in pass-through mode as explained in Using GPU Pass-Through on Red Hat Enterprise Linux KVM.

3.3. Using GPU Pass-Through on Microsoft Windows Server

On supported versons of Microsoft Windows Server with Hyper-V role, you can use Discrete Device Assignment (DDA) to enable a VM to access a GPU directly.

3.3.1. Assigning a GPU to a VM on Microsoft Windows Server with Hyper-V

Perform this task in Windows PowerShell. If you do not know the location path of the GPU that you want to assign to a VM, use Device Manager to obtain it.

Ensure that the following prerequisites are met:

  1. Obtain the location path of the GPU that you want to assign to a VM.
    1. In the device manager, context-click the GPU and from the menu that pops up, choose Properties.
    2. In the Properties window that opens, click the Details tab and in the Properties drop-down list, select Location paths.

    An example location path is as follows:

    PCIROOT(80)#PCI(0200)#PCI(0000)#PCI(1000)#PCI(0000)
  2. Dismount the GPU from host to make it unavailable to the host so that it can be used solely by the VM.
    Dismount-VMHostAssignableDevice -LocationPath gpu-device-location -force
    gpu-device-location
    The location path of the GPU that you obtained in the previous step.

    This example dismounts the GPU at the location path PCIROOT(80)#PCI(0200)#PCI(0000)#PCI(1000)#PCI(0000).

    Dismount-VMHostAssignableDevice -LocationPath "PCIROOT(80)#PCI(0200)#PCI(0000)#PCI(1000)#PCI(0000)" -force
  3. Assign the GPU that you dismounted in the previous step to the VM.
    Add-VMAssignableDevice -LocationPath gpu-device-location -VMName vm-name
    gpu-device-location
    The location path of the GPU that you dismounted in the previous step.
    vm-name
    The name of the VM to which you are attaching the GPU.
    Note: You can assign a pass-through GPU to only one virtual machine at a time.

    This example assigns the GPU at the location path PCIROOT(80)#PCI(0200)#PCI(0000)#PCI(1000)#PCI(0000) to the VM VM1.

    Add-VMAssignableDevice -LocationPath "PCIROOT(80)#PCI(0200)#PCI(0000)#PCI(1000)#PCI(0000)" -VMName VM1
  4. Power on the VM. The guest OS should now be able to use the GPU.
After assigning a GPU to a VM, install the NVIDIA graphics driver in the guest OS on the VM as explained in Installing the NVIDIA vGPU Software Graphics Driver.

3.3.2. Returning a GPU to the Host OS from a VM on Windows Server with Hyper-V

Perform this task in the Windows PowerShell.

  1. List the GPUs that are currently assigned to the virtual machine (VM).
    Get-VMAssignableDevice -VMName vm-name
    vm-name
    The name of the VM whose assigned GPUs you want to list.
  2. Shut down the VM to which the GPU is assigned.
  3. Remove the GPU from VM to which it is assigned.
    Remove-VMAssignableDevice –LocationPath gpu-device-location -VMName vm-name
    gpu-device-location
    The location path of the GPU that you are removing, which you obtained in the previous step.
    vm-name
    The name of the VM from which you are removing the GPU.

    This example removes the GPU at the location path PCIROOT(80)#PCI(0200)#PCI(0000)#PCI(1000)#PCI(0000) from the VM VM1.

    Remove-VMAssignableDevice –LocationPath "PCIROOT(80)#PCI(0200)#PCI(0000)#PCI(1000)#PCI(0000)" -VMName VM1
    After the GPU is removed from the VM, it is unavailable to the host operating system (OS) until you remount it on the host OS.
  4. Remount the GPU on the host OS.
    Mount-VMHostAssignableDevice –LocationPath gpu-device-location
    gpu-device-location
    The location path of the GPU that you are remounting, which you specified in the previous step to remove the GPU from the VM.

    This example remounts the GPU at the location path PCIROOT(80)#PCI(0200)#PCI(0000)#PCI(1000)#PCI(0000) on the host OS.

    Mount-VMHostAssignableDevice -LocationPath "PCIROOT(80)#PCI(0200)#PCI(0000)#PCI(1000)#PCI(0000)"
    The host OS should now be able to use the GPU.

3.4. Using GPU Pass-Through on VMware vSphere

On VMware vSphere, you can use Virtual Dedicated Graphics Acceleration (vDGA) to enable a VM to access a GPU directly. vDGA is a feature of VMware vSphere that dedicates a single physical GPU on an ESXi host to a single virtual machine.

Before configuring a vSphere VM with vDGA, ensure that these prerequisites are met
  1. Open the vCenter Web UI.
  2. In the vCenter Web UI, right-click the ESXi host and choose Settings.
  3. From the Hardware menu, choose PCI Devices and click the Edit icon.
  4. Select all NVIDIA GPUs and click OK.
  5. Reboot the ESXi host.
  6. After the ESXi host has booted, right-click the VM and choose Edit Settings.
  7. From the New Device menu, choose PCI Device and click Add.
  8. On the page that opens, from the New Device drop-down list, select the GPU.
  9. Click Reserve all memory and click OK.
  10. Start the VM.

For more information about vDGA, see the following topics in the VMware Horizon documentation:

After configuring a vSphere VM with vDGA, install the NVIDIA graphics driver in the guest OS on the VM as explained in Installing the NVIDIA vGPU Software Graphics Driver.

4. Installing the NVIDIA vGPU Software Graphics Driver

The process for installing the NVIDIA vGPU software graphics driver depends on the OS that you are using. However, for any OS, the process for installing the driver is the same in a VM configured with vGPU, in a VM that is running pass-through GPU, or on a physical host in a bare-metal deployment.

After you install the NVIDIA vGPU software graphics driver, you can license any NVIDIA vGPU software licensed products that you are using.

4.1. Installing the NVIDIA vGPU Software Graphics Driver on Windows

Installation in a VM: After you create a Windows VM on the hypervisor and boot the VM, the VM should boot to a standard Windows desktop in VGA mode at 800×600 resolution. You can use the Windows screen resolution control panel to increase the resolution to other standard resolutions, but to fully enable GPU operation, the NVIDIA vGPU software graphics driver must be installed. Windows guest VMs are supported only on Q-series, B-series, and A-series NVIDIA vGPU types. They are not supported on C-series NVIDIA vGPU types.

Installation on bare metal: When the physical host is booted before the NVIDIA vGPU software graphics driver is installed, boot and the primary display are handled by an on-board graphics adapter. To install the NVIDIA vGPU software graphics driver, access the Windows desktop on the host by using a display connected through the on-board graphics adapter.

The procedure for installing the driver is the same in a VM and on bare metal.

  1. Copy the NVIDIA Windows driver package to the guest VM or physical host where you are installing the driver.
  2. Execute the package to unpack and run the driver installer.
    Figure 14. NVIDIA driver installation

    Screen capture showing NVIDIA driver installation

  3. Click through the license agreement.
  4. Select Express Installation and click NEXT. After the driver installation is complete, the installer may prompt you to restart the platform.
  5. If prompted to restart the platform, do one of the following:
    • Select Restart Now to reboot the VM or physical host.
    • Exit the installer and reboot the VM or physical host when you are ready.
    After the VM or physical host restarts, it boots to a Windows desktop.
  6. Verify that the NVIDIA driver is running.
    1. Right-click on the desktop.
    2. From the menu that opens, choose NVIDIA Control Panel.
    3. In the NVIDIA Control Panel, from the Help menu, choose System Information.

      NVIDIA Control Panel reports the vGPU or physical GPU that is being used, its capabilities, and the NVIDIA driver version that is loaded.

      Figure 15. Verifying NVIDIA driver operation using NVIDIA Control Panel

      Screen capture showing the verification of NVIDIA driver operation using NVIDIA Control Panel

Installation in a VM: After you install the NVIDIA vGPU software graphics driver, you can license any NVIDIA vGPU software licensed products that you are using. For instructions, refer to Virtual GPU Client Licensing User Guide.

Installation on bare metal: After you install the NVIDIA vGPU software graphics driver, complete the bare-metal deployment as explained in Bare-Metal Deployment.

4.2. Installing the NVIDIA vGPU Software Graphics Driver on Linux

Installation in a VM: After you create a Linux VM on the hypervisor and boot the VM, install the NVIDIA vGPU software graphics driver in the VM to fully enable GPU operation. 64-bit Linux guest VMs are supported only on Q-series, C-series, and B-series NVIDIA vGPU types. They are not supported on A-series NVIDIA vGPU types.

Installation on bare metal: When the physical host is booted before the NVIDIA vGPU software graphics driver is installed, the vesa Xorg driver starts the X server. If a primary display device is connected to the host, use the device to access the desktop. Otherwise, use secure shell (SSH) to log in to the host from a remote host. If the Nouveau driver for NVIDIA graphics cards is present, disable it before installing the NVIDIA vGPU software graphics driver.

The procedure for installing the driver is the same in a VM and on bare metal.

Installation of the NVIDIA vGPU software graphics driver for Linux requires:

  • Compiler toolchain
  • Kernel headers

If you are using a Linux OS for which the Wayland display server protocol is enabled by default, disable it as explained in Disabling the Wayland Display Server Protocol for Red Hat Enterprise Linux.

  1. Copy the NVIDIA vGPU software Linux driver package, for example NVIDIA-Linux_x86_64-440.56-grid.run, to the guest VM or physical host where you are installing the driver.
  2. Before attempting to run the driver installer, exit the X server and terminate all OpenGL applications.
    • On Red Hat Enterprise Linux and CentOS systems, exit the X server by transitioning to runlevel 3:
      [nvidia@localhost ~]$ sudo init 3
    • On Ubuntu platforms, do the following:
      1. Use CTRL-ALT-F1 to switch to a console login prompt.
      2. Log in and shut down the display manager:
        [nvidia@localhost ~]$ sudo service lightdm stop
  3. From a console shell, run the driver installer as the root user.
    sudo sh ./ NVIDIA-Linux_x86_64-352.47-grid.run
    In some instances the installer may fail to detect the installed kernel headers and sources. In this situation, re-run the installer, specifying the kernel source path with the --kernel-source-path option:
    sudo sh ./ NVIDIA-Linux_x86_64-352.47-grid.run \
    –kernel-source-path=/usr/src/kernels/3.10.0-229.11.1.el7.x86_64
  4. When prompted, accept the option to update the X configuration file (xorg.conf).
    Figure 16. Update xorg.conf settings

    Screen capture of the character-based UI of the NVIDIA Linux driver installer displaying the prompt to update the X configuration file (xorg.conf) settings

  5. Once installation has completed, select OK to exit the installer.
  6. Verify that the NVIDIA driver is operational.
    1. Reboot the system and log in.
    2. Run nvidia-settings.
      [nvidia@localhost ~]$ nvidia-settings
      The NVIDIA X Server Settings dialog box opens to show that the NVIDIA driver is operational.
      Figure 17. Verifying operation with nvidia-settings

      Screen capture of the NVIDIA X Server Settings dialog box showing that the NVIDIA driver is operational

Installation in a VM: After you install the NVIDIA vGPU software graphics driver, you can license any NVIDIA vGPU software licensed products that you are using. For instructions, refer to Virtual GPU Client Licensing User Guide.

Installation on bare metal: After you install the NVIDIA vGPU software graphics driver, complete the bare-metal deployment as explained in Bare-Metal Deployment.