Nvidia vGPU Driver Instructions
- Blog
- 2023.05.23
- 96 views
Why you need GRID Drivers
GRID drivers are required to use the GPU on your server. Without them, you will not be able to use the GPU. Using generic consumer drivers from NVIDIA or from the repo is not an option! These drivers simply do not allow vGPU products to function or be used. NVIDIA only supports GRID drivers for vGPU and the drivers must be within the same driver branch as the hosts the instance is run on.
CUDA
CUDA is not one, but two separate pieces of software. The CUDA driver, and the CUDA toolkit.
The CUDA Driver
DO NOT install a CUDA driver! The CUDA driver is built into the NVIDIA driver. Installing another driver will replace your installed NVIDIA driver AND CUDA driver and break your system. You cannot change the version of the CUDA driver. However the CUDA driver is reverse compatible up to CUDA 11, and forward compatible completely.
The CUDA Toolkit
The CUDA Toolkit is the thing you will be needing to install, not the driver. The toolkit may be any compatible version with the driver. The package is normally nvidia-cuda-toolkit on most distros.
Required Steps
Install Prerequisites
RHEL (CentOS, Fedora, etc.)
yum install -y epel-release
yum group install "Development Tools" -y
yum install -y wget cmake pkg-config libglvnd-devel mesa-libGL-devel zlib kernel-headers kernel-devel
Debian
apt-get update && apt-get install -y vim man wget unzip curl gnupg2 ca-certificates lsb-release apache2-utils \
ethtool wget build-essential zlib1g cmake pkg-config libglvnd-dev libegl1 libopenblas-dev liblapack-dev \
linux-headers-amd64
Ubuntu
apt-get update && apt-get install -y vim man wget unzip curl gnupg2 ca-certificates lsb-release apache2-utils \
ethtool wget build-essential zlib1g cmake pkg-config libglvnd-dev libegl1 libopenblas-dev liblapack-dev \
linux-headers-generic
Blacklist Nouveau and modprobe NVIDIA
BLACKLIST_FILE=$(cat < /etc/modules-load.d/nvidia.conf
echo "${BLACKLIST_FILE}" > /etc/modprobe.d/blacklist-nouveau.conf
Install Licensing
NVIDIA_GRIDD_CONFIG='U2VydmVyQWRkcmVzcz1udmlkaWFsaWMudnVsdHJsYWJzLmNvbQpGZWF0dXJlVHlwZT0xCkVuYWJsZVVJPUZBTFNFCkxpY2Vuc2VIb3N0SWQ9e3tNQUNIRVJFfX0K'
NVIDIA_TOKEN='ZXlKaGJHY2lPaUpTVXpJMU5pSXNJblI1Y0NJNklrcFhWQ0o5LmV5SnFkR2tpT2lJeE1qWmlPRGN5WVMxa01ETm1MVFEyWWpFdE9UbGxZUzA1WkRrNU5tWTBOVFl3WVdZaUxDSnBjM01pT2lKT1RGTWdVMlZ5ZG1salpTQkpibk4wWVc1alpTSXNJbUYxWkNJNklrNU1VeUJNYVdObGJuTmxaQ0JEYkdsbGJuUWlMQ0pwWVhRaU9qRTJOVFEzTlRJNU5qTXNJbTVpWmlJNk1UWTFORGMxTWprMk15d2laWGh3SWpveU1ETXpORFEwTVRZekxDSjFjR1JoZEdWZmJXOWtaU0k2SWtGQ1UwOU1WVlJGSWl3aWMyTnZjR1ZmY21WbVgyeHBjM1FpT2xzaU9Ua3lNVFJrWW1RdE9UVTJPQzAwTURVMUxXSmtNamN0WldJeU1EWTRaR1psTXpNM0lsMHNJbVoxYkdacGJHeHRaVzUwWDJOc1lYTnpYM0psWmw5c2FYTjBJanBiWFN3aWMyVnlkbWxqWlY5cGJuTjBZVzVqWlY5amIyNW1hV2QxY21GMGFXOXVJanA3SW01c2MxOXpaWEoyYVdObFgybHVjM1JoYm1ObFgzSmxaaUk2SWpBMVptSmlZMlJsTFRobU1HWXROREEyTXkxaVl6YzJMVFZqTnpReE5XSmxNV0poT1NJc0luTjJZMTl3YjNKMFgzTmxkRjlzYVhOMElqcGJleUpwWkhnaU9qQXNJbVJmYm1GdFpTSTZJa1JNVXlJc0luTjJZMTl3YjNKMFgyMWhjQ0k2VzNzaWMyVnlkbWxqWlNJNkltRjFkR2dpTENKd2IzSjBJam8wTkROOUxIc2ljMlZ5ZG1salpTSTZJbXhsWVhObElpd2ljRzl5ZENJNk5EUXpmVjE5WFN3aWJtOWtaVjkxY214ZmJHbHpkQ0k2VzNzaWFXUjRJam93TENKMWNtd2lPaUp1ZG1sa2FXRnNhV011ZG5Wc2RISnNZV0p6TG1OdmJTSXNJblZ5YkY5eGNpSTZJbTUyYVdScFlXeHBZeTUyZFd4MGNteGhZbk11WTI5dElpd2ljM1pqWDNCdmNuUmZjMlYwWDJsa2VDSTZNSDFkZlN3aWMyVnlkbWxqWlY5cGJuTjBZVzVqWlY5d2RXSnNhV05mYTJWNVgyTnZibVpwWjNWeVlYUnBiMjRpT25zaWMyVnlkbWxqWlY5cGJuTjBZVzVqWlY5d2RXSnNhV05mYTJWNVgyMWxJanA3SW0xdlpDSTZJbVV6TjJJek4yRmxZV0l6TldRMll6SXlPV0UyTURabFlXUXlNMlU0T0dZM1pHUTFNVGhpT0RBMU1XTm1ORFE1TmpneFpXSXpORGc1TlRBeU4yVm1NV1UwWlRZNU9UZGhOak0zTWpVeU1EZzRaakpqTXpnMVlqUTFaV0ppTURabVlUZ3pOall4TnpVMFl6UmlaV1JpTmpOa1pHWTFOamszTnpBNU5XWXdNbVppWVdVeE9XUmpNek5pTlRaaFlXVmhZalV4WWpOa04yWTRNRGcxTXpObU5ETTROR0UyTW1KaU1qQm1OVEJtTlROa01UUXlOakUyTlRZd1ltWmlZakEwTVRGa01HUmlOR0l4TW1Kak1ESmpaR0ZrWWpZMVlURmtNREV4TnpJMFpUTmpZVFZtT1dVNE1XWTFPR1kzWkRSbVpXVmtZek5qTUdNNE16WmxZekJqT1dKaU0yTXpZVGMzWXpabE1XUTNOR0ptWldRME1tVXpPVGczWXpJeE5XWm1OV00wTXpjell6bG1OR05rTm1ZelpXUXlOMkkyT1dFNE9USm1aRGcyTUdNelptTmhZMkUyT0dJNFpUUXdabUprWlRneE56TmxNVEZsTnpCbE4yRmpZakU0WkRjeE9HSXlObVkxTlRnek56ZGhZMlprWVRobE1XVTROVFJqTldVMU1EWmhZbU0xWW1NeFpqRTVOV1ZsT1RBell6Z3hPR000WkRVMU1XSTVNekl6TWpnMVlqQmpObVF5TnpZeVkyWXlNbVEwWmpVMVlUYzNZak00TURreU9EazBObVJpTW1Rd056UTFOemRtWkdFek1ETmxZalU0TkRBMlpEbGpOalJpWkRZeU5UaGpOamM1WVRNM01qUXhNV0k0TldJeE9HTTVOek0xTjJSa01EYzFJaXdpWlhod0lqbzJOVFV6TjMwc0luTmxjblpwWTJWZmFXNXpkR0Z1WTJWZmNIVmliR2xqWDJ0bGVWOXdaVzBpT2lJdExTMHRMVUpGUjBsT0lGQlZRa3hKUXlCTFJWa3RMUzB0TFZ4dVRVbEpRa2xxUVU1Q1oydHhhR3RwUnpsM01FSkJVVVZHUVVGUFEwRlJPRUZOU1VsQ1EyZExRMEZSUlVFME0zTXpjbkZ6TVRGelNYQndaMkp4TUdvMlNWeHVPVGt4VW1rMFFsSjZNRk5YWjJWek1HbFdRVzQzZURWUFlWcGxiVTU1VldkcFVFeEVhR0pTWlhWM1lqWm5NbGxZVmsxVEt6SXlVR1E1VjJ3elExWTRRMXh1S3pZMFdqTkVUekZoY1RaeVZXSlFXQ3RCYUZSUU1FOUZjR2wxZVVReFJERlFVbEZ0Um14WlRDczNRa0pJVVRJd2MxTjJRVXhPY21KYVlVaFJSVmhLVDF4dVVFdFlOVFpDT1ZrNU9WUXJOMk5RUVhsRVluTkVTblY2ZHpaa09HSm9NVEIyS3pGRE5EVm9PRWxXTHpGNFJHTTRiakI2Vnpnck1HNTBjSEZLVERsb1oxeHVkeTk1YzNCdmRVOVJVSFpsWjFoUWFFaHVSRzV5VEVkT1kxbHpiVGxXWnpObGN5OWhhbWcyUmxSR05WRmhjbmhpZDJaSFZqZHdRVGhuV1hsT1ZsSjFWRnh1U1hsb1lrUkhNRzVaY3pocE1WQldZV1EzVDBGcmIyeEhNbmt3U0ZKWVpqbHZkMUJ5VjBWQ2RHNUhVemxaYkdwSFpXRk9lVkZTZFVaeldYbFlUbGd6VVZ4dVpGRkpSRUZSUVVKY2JpMHRMUzB0UlU1RUlGQlZRa3hKUXlCTFJWa3RMUzB0TFNJc0ltdGxlVjl5WlhSbGJuUnBiMjVmYlc5a1pTSTZJa3hCVkVWVFZGOVBUa3haSW4xOS5xbDRpeDhEN24wY2Z3OXVQWmpEazlTRnVzU3lOczEtdVpIVzNKT190emtOX19rSmxtZDgtbHJKX3pNRmJwQXBZMFBsTThmWlFYNFlHNWJHMlZkbDNkSTF3WFNIX0hLV2VDa1JtTnVZRVZKY2UwNHR2OEZCWnFscDB1WjdUSE9JLW82NF96RTlpNDJBdFJlU0d1dzUwb2U2UV9FRl8zaVdqVlRiNEZ0MGVIOHJGVmhpSTZzeFRoN3hadGVNdmtzWllBcHVZbUJ1TGNkd0xFWWFTbUNKX0xSZlk5YW95ZldVbktKSWwxSm8wUmtiNWZyeGp5cG5OeWt1T2ZFdXlyUEdvSHQtWHZ0NlhyX3dpVVNOd3dZdUJDUnZuNjlWV3YxUjdhb2FoenAteWt4Smx5aW9YcV91X0Q0c1lLWFJia2d3Y19ESGlkbWJTVDVqcThjSXZQWS13NFE='
mkdir -p /etc/nvidia/ClientConfigToken
echo "${NVIDIA_GRIDD_CONFIG}" | base64 -d | sed 's|{{MACHERE}}|43108389|' > /etc/nvidia/gridd.conf
echo "${NVIDIA_TOKEN}" | base64 -d > /etc/nvidia/ClientConfigToken/nvidialic.vultrlabs.com
Repo Install (Deb, RHEL)
Install App Repo
RHEL (CentOS, Fedora, etc.)
APPREPO_KEY=$(cat < /etc/yum.repos.d/vultr-apprepo.repo
echo "${APPREPO_KEY}" > /etc/pki/rpm-gpg/RPM-GPG-KEY-apprepo
update-crypto-policies --set DEFAULT:SHA1 || true
Deb (Debian, Ubuntu, Mint, etc)
APPREPO_KEY=$(cat < /etc/apt/sources.list.d/vultr-apprepo.list
echo "${APPREPO_KEY}" | gpg --dearmor > /usr/share/keyrings/vultr-apprepo.gpg
apt update -y
Install the driver
RHEL (CentOS, Fedora, etc.)
yum install -y vultr-nvidia-client-drivers
Deb (Ubuntu, Debian, Mint, etc.)
apt install -y vultr-nvidia-client-drivers
Manual Install (Arch, Alpine)
Manually Install NVIDIA Drivers
mkdir -p /opt/nvidia/drivers/
wget http://169.254.169.254/latest/nvidia_linux_driver_url -O /opt/nvidia/drivers/nvidia_manual_driver.run
chmod +x /opt/nvidia/drivers/nvidia_manual_driver.run
/opt/nvidia/drivers/nvidia_manual_driver.run --ui=none --no-questions