Note:
- This tutorial requires access to Oracle Cloud. To sign up for a free account, see Get started with Oracle Cloud Infrastructure Free Tier.
- It uses example values for Oracle Cloud Infrastructure credentials, tenancy, and compartments. When completing your lab, substitute these values with ones specific to your cloud environment.
Deploy NVIDIA RTX Virtual Workstation on Oracle Cloud Infrastructure
Introduction
NVIDIA RTX Virtual Workstation software enables users to run high-performance simulations, graphic rendering, and design workloads on cloud, with a native workstation-like performance. It unlocks powerful rendering capabilities provided by graphic APIs such as OpenGL or DirectX, bringing breakthrough graphics performance to the cloud.
Objective
Leverage RTX and NVIDIA Virtual GPU technology using NVIDIA A10 GPU-enabled compute shapes on Oracle Cloud Infrastructure (OCI).
Task 1: Provision a compute instance on OCI for NVIDIA RTX virtual workstation
-
Create a Virtual Cloud Network (VCN) and launch a compute instance on OCI. For more information, see:
-
Choose one from these available GPU.A10 shapes.
VM.GPU.A10.1 VM.GPU.A10.2 BM.GPU.A10.4
-
When launching a compute instance change shape to one of the above shapes. To launch GPU.A10 VM, click Specialty and Previous Generation, and select one of VM.GPU.A10 shapes. For bare metal servers, click Bare metal machines and select BM.GPU.A10.4 shape.
-
If your tenancy does not have a service limit set for GPU.A10, these shapes will not be in the shape list.
-
To check your tenancy limits in the OCI Console, set the region where you are going to provision a GPU.A10 compute instance, open the navigation menu and click Governance & Administration.
-
Under Tenancy Management, select Limits, Quotas and Usage.
-
Set the service to Compute, select one of availability domains in the scope field, and type GPU.A10 in the resource field.
-
Select GPUs for A10 based VM and BM instances.
-
-
Compute limits are per availability domain. Check if the limit is set in any of availability domains of the region. If the service limit is set to 0 for all availability domains, you can click on the “request a service limit increase” link and submit a limit increase request for this resource.
Note: In order to access Limits, Quotas and Usage you must be a member of the tenancy Administrators group or your group must have a policy assigned to read LimitsAndUsageViewers.
- For more information about service limits, see Service Limits.
-
Currently OCI GPU.A10 compute shapes support Oracle Linux, Ubuntu and Rocky Linux. Windows is supported by VM shapes only.
Note: Rocky Linux is not officially supported by NVIDIA.
-
When provisioning a compute instance on OCI, use a standard OS image. Do not use GPU enabled images because the installed NVIDIA GPU driver does not support RTX virtual workstation (vWS) that requires NVIDIA vGPU driver to be installed.
Task 2: Download and install NVIDIA vGPU driver
-
Download NVIDIA vGPU driver as described in Downloading NVIDIA vGPU software. If you don’t have an enterprise account with NVIDIA, you can register for trial at Virtual GPU (vGPU) Software Free 90Days Trial - NVIDIA.
-
Log in to the NVIDIA Enterprise Application HUB using your NVIDIA Enterprise account.
-
Open the NVIDIA Licensing Portal and select Software Downloads. Apply the following filters:
-
Product Family: “VGPU”
-
Platform: “Linux KVM”
-
-
Sort by Release Date and download the package with the latest vGPU drivers. For example, currently the latest vGPU version is 15.1.
-
Unzip the file and go to the
Guest_Drivers
folder. There you will find vGPU driver installation files for Windows and Linux.
Note: If you are using Linux, follow Task 3, 4, 5 and if you are using Windows, go to Task 6.
Task 3: Install NVIDIA vGPU driver on Linux
Oracle Linux 8
-
Copy NVIDIA Linux driver
NVIDIA-Linux-x86_64-xxx.xx.xx-grid.run
to the provisioned compute instance. -
If you are using Oracle Linux 8.7 or later Oracle Linux image, prior to installing NVIDIA driver enable
gcc-toolset-11
by running the following command.scl enable gcc-toolset-11 bash
-
You will also need to disable
nouveau
driver that has a conflict with NVIDIA driver. Check ifnouveau
driver is loaded by running the following command.lsmod | grep nouveau
-
If it shows
nouveau
driver in the output of the command, you’ll need to disable it first. To disablenouveau
driver on Oracle Linux create the/etc/modprobe.d/blacklist-nouveau.conf
file and add the content below.blacklist nouveau options nouveau modeset=0
-
Save the file and regenerate initramfs.
sudo dracut --force
-
After disabling the driver reboot the server.
sudo reboot
-
Install NVIDIA vGPU driver by running the following command.
sudo bash ./NVIDIA-Linux-x86_64-xxx.xx.xx-vgpu-kvm.run
-
Ignore warnings and click OK to continue with the installation. Reboot the server.
sudo reboot
Rocky Linux 9
-
Copy NVIDIA Linux driver
NVIDIA-Linux-x86_64-xxx.xx.xx-grid.run
to the provisioned compute instance. -
Install Linux headers matching the version of Linux kernel.
sudo dnf install kernel-devel-$(uname -r)
-
If it fails to find Linux headers matching the kernel version, upgrade Linux kernel and reboot the server.
sudo dnf install kernel sudo reboot
-
After reboot, reinstall Linux headers to match Linux kernel version.
sudo install kernel-devel -y
-
Check if
nouveau
driver is loaded by running the following command.lsmod | grep nouveau
-
If it shows
nouveau
driver in the output of the command, you’ll need to disable it first. To disablenouveau
driver on Oracle Linux create the/etc/modprobe.d/blacklist-nouveau.conf
file and add the content below.blacklist nouveau options nouveau modeset=0
-
Save the file and regenerate initramfs.
sudo dracut --force
-
After disabling the driver reboot the server.
sudo reboot
-
Install NVIDIA vGPU driver by running the following command.
sudo bash ./NVIDIA-Linux-x86_64-xxx.xx.xx-vgpu-kvm.run
-
Ignore warnings and click OK to continue with the installation. Reboot the server.
sudo reboot
Ubuntu 22
-
Copy NVIDIA Linux driver
NVIDIA-Linux-grid-xxx.xx.xx_amd64.deb
to the provisioned compute instance. -
Check if
nouveau
driver is loaded by running the following command.lsmod | grep nouveau
-
If it shows
nouveau
driver in the output of the command, you’ll need to disable it first. To disablenouveau
driver on Oracle Linux create the/etc/modprobe.d/blacklist-nouveau.conf
file and add the content below.blacklist nouveau options nouveau modeset=0
-
Save the file and regenerate initramfs.
sudo dracut --force
-
After disabling the driver, reboot the server.
sudo reboot
-
Install NVIDIA vGPU driver by running the following command.
sudo apt install ./NVIDIA-Linux-grid-xxx.xx.xx_amd64.deb
-
Reboot the server.
sudo reboot
Task 4: Verify NVIDIA vGPU driver installation
-
Verify the NVIDIA vGPU driver installation using the
nvidia-smi
command.
Task 5: Enable NVIDIA RTX Virtual Workstation
-
To enable the NVIDIA RTX Virtual Workstation feature,
edit /etc/nvidia/gridd.conf
.sudo vi /etc/nvidia/gridd.conf
-
Add a line.
FeatureType=2
-
Save the changes and close the file.
-
Check if GSP firmware is enabled.
nvidia-smi -q | grep GSP
-
If GSP firmware is enabled, the command displays GSP firmware version.
GSP Firmware Version : 525.85.05
-
If GSP firmware is enabled, disable it by setting the NVIDIA module parameter
NVreg_EnableGpuFirmware
to 0. Set this parameter by editing the/etc/modprobe.d/nvidia.conf
file.sudo vi /etc/modprobe.d/nvidia.conf
-
Add the following line to it.
options nvidia NVreg_EnableGpuFirmware=0
-
If the
/etc/modprobe.d/nvidia.conf
file does not already exist, create it. -
After disabling GSP, you must reboot the server.
sudo reboot
-
Download the client configuration token from NVIDIA Licensing Portal or DLS appliance. For information about how to register the NVIDIA vGPU license, see Task 7: Register with NVIDIA vGPU Software License Server.
-
Copy the client configuration token to the default location in
/etc/nvidia/ClientConfigToken
and set the file permissions to 744.sudo chmod 744 /etc/nvidia/ClientConfigToken/client_configuration_token_*.tok
Note: If you want to store the client configuration token in a custom location, copy the token to the directory that you created and set the
ClientConfigTokenPath
configuration parameter in/etc/nvidia/gridd.conf
to point to this directory. -
Restart
nvidia-gridd
service.sudo systemctl restart nvidia-gridd
-
Run
nvidia-smi -q
and check that the Product Brand is set to NVIDIA RTX and License Status displays “Licensed”. -
If it fails to obtain the license and shows License Status as “Unlicensed”, check the nvidia-gridd service log.
sudo grep gridd /var/log/messages
Task 6: Install NVIDIA vGPU driver on Windows
-
Copy the NVIDIA Windows driver package to the guest VM or physical host where you are installing the driver. Execute the package to unpack and run the driver installer. Accept the license agreement and select Express installation option.
-
OCI A10 GPU VM is configured with GPU passthrough, and therefore you must set the vGPU driver behavior via regedit. For more information, see Virtual GPU Client Licensing User Guide.
-
Add the
FeatureType DWord (REG_DWORD)
registry value to the Windows registry key.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvlddmkm\Global\GridLicensing
-
Set this value to 2 to enable NVIDIA RTX Virtual Workstation license.
-
Restart the NVIDIA Display Container LS service.
-
Download the client configuration token from NVIDIA Licensing Portal or DLS appliance. For information about how to register the NVIDIA vGPU license, see Task 7: Register with NVIDIA vGPU Software License Server.
-
Copy the client configuration token to the folder.
%SystemDrive%:\Program Files\NVIDIA Corporation\vGPU Licensing\ClientConfigToken
-
From a command line or PowerShell, run
nvidia-smi -q
and check that the Product Brand is set to NVIDIA RTX and License Status displays “Licensed”.Note: On Windows,
nvidia-smi.exe
is installed by default in theC:\Program Files\NVIDIA Corporation\NVSMI
folder. -
If it fails to obtain the license and shows License Status “Unlicensed”, check licensing messages in the log.
%SystemDrive%\Users\Public\Documents\NvidiaLogging\Log.NVDisplay.Container.exe.log
Task 7: Register with NVIDIA vGPU Software License Server
vGPUs must be registered with NVIDIA Software License Server. vGPU licensing is enforced through NVIDIA software and the performance of the virtual GPU is degraded over time if the VM fails to obtain a license. Starting from vGPU version 13.0, NVIDIA License System supports the following types of service instances:
-
Cloud License Service (CLS) instance: A CLS instance is hosted on the NVIDIA Licensing Portal.
-
Delegated License Service (DLS) instance: A DLS instance is hosted on-premises at a location that is accessible from your private network.
You can download DLS virtual appliance from NVIDIA Licensing Portal.
-
Go to Software Downloads, select Non-Driver downloads and download, set Platform to “Linux KVM “ and download the latest version of “NLS License Server (DLS) … for Linux KVM”.
-
Unzip the file and upload DLS virtual appliance QCOW2 file to OCI Object Storage. After that you can import it to OCI as a paravirtualized custom image and create a VM from it. Alternatively, you can run DLS virtual appliance as one of VMs in the KVM environment.
- For details about how to obtain and register NVIDIA vGPU license and how to configure DLS license server please, see NVIDIA License System User Guide and NVIDIA License System Quick Start Guide.
-
Once vGPU license is registered with NVIDIA vGPU software license server you can confirm by checking License Status in the output of
nvidia-smi -q
command.
Related Links
Acknowledgments
Author - Michael Prestin (Master Principal Cloud Architect)
More Learning Resources
Explore other labs on docs.oracle.com/learn or access more free learning content on the Oracle Learning YouTube channel. Additionally, visit education.oracle.com/learning-explorer to become an Oracle Learning Explorer.
For product documentation, visit Oracle Help Center.
Deploy NVIDIA RTX Virtual Workstation on Oracle Cloud Infrastructure
F80534-03
November 2023
Copyright © 2023, Oracle and/or its affiliates.