# Upgrade GH200 to Ubuntu 24.04 ![image](https://hackmd.io/_uploads/S13jS_igxx.png) # *** TUTORIAL GH200 *** Check and it should show never: ```bash grep 'lts' /etc/update-manager/release-upgrades cat /etc/update-manager/release-upgrades ``` #### 1. Ensure the Prompt line in /etc/update-manager/release-upgrades is set to ‘lts‘ using the “grep” or “cat” ![image](https://hackmd.io/_uploads/B15uG_selg.png) ### 2. Upgrade Ubuntu with everything to Yes but *not reboot* ```bash sudo apt update sudo apt full-upgrade sudo do-release-upgrade -d sudo apt full-upgrade sudo apt install --fix-broken ``` ### 3. Install Kernel 6.11 SBSA ```bash sudo DEBIAN_FRONTEND=noninteractive apt purge linux-image-$(uname -r) \ linux-headers-$(uname -r) linux-modules-$(uname -r) -y sudo apt update sudo apt install linux-nvidia-64k-hwe-24.04-edge -y sudo reboot now ``` ### 4. Install CUDA ```bash wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/sbsa/cuda-keyring_1.1-1_all.deb sudo dpkg -i cuda-keyring_1.1-1_all.deb sudo apt-get update ``` ```bash sudo apt-get -y install cuda-toolkit cudnn tensorrt nvidia-gds ``` Add PATH to .bashrc ```bash sudo gedit ~/.bashrc ``` ```bash export PATH=/usr/local/cuda-12.9/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-12.9/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} ``` ```bash source ~/.bashrc ``` ### 5. Install Nvidia Containers ```bash curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \ && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list \ && \ sudo apt-get update sudo apt-get install -y nvidia-container-toolkit ``` #### Add permission user ```bash sudo chmod 666 /var/run/docker.sock sudo groupadd docker sudo usermod -aG docker $USER newgrp docker ``` #### Modify to compile dockers with Nvidia If you're going to be building containers, you need to set Docker's default-runtime to nvidia, so that the NVCC compiler and GPU are available during docker build operations. Add "default-runtime": "nvidia" to your /etc/docker/daemon.json configuration file before attempting to build the containers: ```bash { "runtimes": { "nvidia": { "path": "nvidia-container-runtime", "runtimeArgs": [] } }, "default-runtime": "nvidia" } ``` #### Reboot docker ```bash sudo nvidia-ctk runtime configure --runtime=docker sudo systemctl restart docker sudo nvidia-ctk runtime configure --runtime=containerd sudo systemctl restart containerd sudo nvidia-ctk runtime configure --runtime=crio sudo systemctl restart crio sudo systemctl enable docker.service sudo systemctl enable containerd.service ``` # Result ![image](https://hackmd.io/_uploads/r1dqSujxle.png) ![image](https://hackmd.io/_uploads/H1EpHdoxlg.png)