# NVIDIA Driver 與 cuda 安裝 環境: ``` NAME="Ubuntu" VERSION="20.04.6 LTS (Focal Fossa)" GPU=NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] ``` ## 步驟 因為每次先裝好 driver 在裝 cuda,driver 就會壞掉,因此經過嘗試過後發現步驟要反過來。或是 driver 壞掉後重新安裝 driver 即可。 1. 刪除 NVIDIA 驅動 2. 安裝 cuda (先) 3. 安裝驅動 (後) ## 刪除 NVIDIA 驅動 如果使用官方 .run 檔案安裝過得話,可以在 .run 後面加上 --uninstall 將 driver 徹底移除,並透過下面的命令將檔案徹底刪除。 接著執行以下命令將 Driver 相關的檔案刪除 ``` sudo apt-get --purge remove *nvidia* sudo apt autoremove ``` 如果要刪除已經安裝的 cuda ToolKit 的話可以執行以下命令 ``` sudo apt-get --purge remove "*cublas*" "cuda*" sudo apt autoremove ``` ## 安裝 cuda 依照官網的教學安裝即可,不過要注意 cuda 版本與 driver 版本是否兼容。可透過 [CUDA Toolkit Release Notes](https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html) 查看兼容性。如果需要較舊版本的 cuda 可以從 [cuda-toolkit-archive](https://developer.nvidia.com/cuda-toolkit-archive) 挑選所需的版本。 ## 安裝驅動 參考國網中心的 [教學](https://man.twcc.ai/@twccdocs/howto-vcs-install-nvidia-gpu-driver-zh)。注意:要將 Ubuntu 內建的 GPU 驅動(nouveau)關閉。 ## 驗證 檢查 driver 是否安裝成功 ``` nvidia-smi ``` 檢查 cuda ToolKit 是否安裝成功 ``` /usr/local/cuda/bin/nvcc --version ``` 檢查是否抓的到 GPU ```cpp // 檔名:main.c #include <cuda_runtime.h> int main() { int deviceCount = 0; cudaError_t error_id = cudaGetDeviceCount(&deviceCount); if (error_id != cudaSuccess) { std::cout << "cudaGetDeviceCount returned " << static_cast<int>(error_id) << "\n"; std::cout << "-> " << cudaGetErrorString(error_id) << "\n"; std::cout << "CUDA is not available." << std::endl; return 1; } if (deviceCount == 0) { std::cout << "There are no available device(s) that support CUDA." << std::endl; } else { std::cout << "Detected " << deviceCount << " CUDA-capable device(s)." << std::endl; } return 0; } ``` 編譯 ``` nvcc -o main main.c ./main ``` ## 參考資料 * https://medium.com/@wumeng9028/how-to-uninstall-nvidia-driver-and-install-the-latest-driver-in-ubuntu-96c0b2dc4cc4 * https://forums.developer.nvidia.com/t/how-do-i-completly-remove-an-nvidia-driver-by-hand/238053 * https://man.twcc.ai/@twccdocs/howto-vcs-install-nvidia-gpu-driver-zh