Skip to content

Instantly share code, notes, and snippets.

@dualvtable
Last active October 21, 2020 06:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dualvtable/b9c2955a24a6f3723a049e79d63a1771 to your computer and use it in GitHub Desktop.
Save dualvtable/b9c2955a24a6f3723a049e79d63a1771 to your computer and use it in GitHub Desktop.
Simple script for setting up NVIDIA drivers and Docker on CentOS 8
#!/usr/bin/env bash
set -euo pipefail
ARCH=$( /bin/arch )
distribution=rhel8
setup_prereq()
{
sudo dnf install -y tar bzip2 make automake gcc gcc-c++ pciutils elfutils-libelf-devel libglvnd-devel && \
sudo dnf install -y kernel-devel-$(uname -r) kernel-headers-$(uname -r)
sudo dnf config-manager --set-enabled PowerTools && \
sudo dnf install -y epel-release
sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
}
#setup CUDA network repos
setup_repos()
{
sudo dnf config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/$distribution/${ARCH}/cuda-$distribution.repo && \
sudo dnf clean all
}
install_driver()
{
sudo dnf -y module install nvidia-driver:latest-dkms
}
check_driver()
{
nvidia-smi
if [ $? -ne 0 ]; then
echo "NVIDIA driver has not been installed successfully"
fi
}
install_docker()
{
sudo dnf install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm && \
sudo dnf install -y docker-ce && \
sudo systemctl start docker && sudo systemctl enable docker
}
install_nvidia_runtime()
{
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
sudo dnf clean expire-cache --refresh && \
sudo dnf install -y nvidia-docker2 && \
sudo systemctl restart docker
}
check_runtime()
{
sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi
}
set -x
setup_prereq
setup_repos
install_driver
check_driver
install_docker
install_nvidia_runtime
check_runtime
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment