【Linux】安装CUDA和cudnn
安裝CUDA和cudnn
- cuda
- 驅動檢查
- 驅動下載
- 1.下載驅動文件
- 2.準備工作
- 3.安裝NVIDIA驅動程序
- gcc降級
- cuda安裝包下載
- 安裝操作
- gcc降級
- 安裝cuda
- **nvidia-smi 中的CUDA 版本與 nvcc不一致:**
- cudnn 安裝
- 1.安裝包地址:
- 2.文件解壓
- 3.查看cudnn版本
系統:ubuntu 20.04
參考鏈接:https://blog.csdn.net/lihe4151021/article/details/90237681
cuda
版本關系
cuda11.6:
cuda10:
cuda9:
cuda8:
驅動檢查
輸入nvidia-smi命令查看支持的cuda版本
提示
執行:sudo apt install nvidia-340
安裝完成,在執行:nvidia-smi
提示:
驅動下載
安裝NVIDIA驅動
1.下載驅動文件
去官網下載和自己的顯卡適配的驅動文件,是個.run文件。貼個下載地址:https://www.nvidia.cn/Download/index.aspx
search之后下載就行,記住它下載到了哪個文件夾里,以后會用的到
下載好的鏈接:https://download.csdn.net/download/weixin_44322778/85002137
2.準備工作
文件已經下載好了,但是在安裝之前我我們需要做一些準備。
(1)、刪除原有驅動(可選):$ sudo apt-get remove --purge nvidia*
我在刪除的時候就提示我沒有原有的驅動。
(2)、禁用nouveau,安裝NVIDIA需要把系統自帶的驅動禁用
打開文件:sudo gedit /etc/modprobe.d/blacklist.conf
在文本最后添加以下內容:
然后保存退出
執行:sudo update-initramfs -u
重啟,命令行輸入:lsmod | grep nouveau
沒有任何輸出的話就代表禁用成功。
3.安裝NVIDIA驅動程序
參考文章:
(準備另一臺電腦,用來看教程或者是查找需要輸入的命令)
禁用圖形界面服務:sudo service lightdm stop
按Ctrl+Alt+F1進入命令行,輸入用戶名密碼登錄(通過Ctrl+Alt+F7可返回界面)
下載的是.run文件,首先給文件賦予執行權限,首先cd到下載目錄:(重要的事情說三遍:注意參數、注意參數、注意參數)
打開所在的文件夾:
cd ~/Downloads/
(這里應該寫你當時把.run文件下載到的文件夾的路徑,一般默認是下載文件夾,如果你在這里出現錯誤,比如找不到文件,或者路徑是中文的,可以嘗試把.run文件移動到一個home下,這樣可以直接打:cd /home/你的用戶名/ 這樣就可以打開了。)
然后輸入:sudo chmod a+x NVIDIA-Linux-x86_64-510.54.run
接著安裝:sudo ./NVIDIA-Linux-x86_64-510.54.run –no-opengl-files
(如果linux在虛擬機中報錯如下:)
提示信息:
系統:ubuntu 20.04 系統
你似乎沒有NVIDIA GPU支持的510.54 NVIDIA Linux系統中安裝的圖形驅動程序。有關詳情,請參閱
Linux下的README中支持的NVIDIA GRAPHICS CHIPS
驅動下載頁面www.nvidia.com。
解決方案:
no-opengl-files 只安裝驅動文件,不安裝opengl文件。這個參數最重要
–no-x-check 安裝驅動時不檢查X服務
–no-nouveau-check 安裝驅動時不檢查nouveau
后面兩個參數可不加。
gcc降級
如圖所示提示安裝驅動需要的本系統GCC編譯器版本過高,當前系統為9.4.0 但是驅動安裝需要的編譯器是9.3.0.
Ubuntu20.04自帶的gcc版本為9.4.0,需要添加gcc3才可安裝nvidia驅動,輸入命令安裝gcc3
sudo apt-get install gcc-3 g+±3
查看gcc版本,可以看到目前系統中存在7和9兩個版本
使用update-alternatives進行版本切換,輸入以下命令:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 50
此時輸入sudo update-alternatives --config gcc命令查看gcc的默認版本,可以看到當前默認gcc版本為7,即切換成功。
原文鏈接:https://blog.csdn.net/ashome123/article/details/105822040
接著就是一直"Enter"選擇它默認的那個選項就好。
然后掛載驅動: modprobe nvidia
最后查看是否已經安裝好了:nvidia-smi
原文鏈接:https://blog.csdn.net/qq_39418067/article/details/87978848
cuda安裝包下載
從https://developer.nvidia.com/cuda-toolkit-archive下載對應版本的cuda,選擇18.04的版本即可。
安裝操作
runfile安裝cuda
終端中運行:$ lsmod | grep nouveau,如果有輸出則代表nouveau正在加載。需要我們手動禁掉nouveau。
Ubuntu的nouveau禁用方法: a、在/etc/modprobe.d中創建文件blacklist-nouveau.conf輸入命令:$ sudo vi /etc/modprobe.d/blacklist-nouveau.conf (利用vi編輯器編輯和保存文件)在文件中輸入一下內容:blacklist nouveau options nouveau modeset=0b、執行: $ sudo update-initramfs –uc、再執行: $ lsmod | grep nouveau 若無內容輸出,則禁用成功,若仍有內容輸出,請檢查操作,并重復上述操作。注:vi(或者用gedit)是Linux終端下或控制臺下常用的編輯器,基本的操作方式為:vi /路徑/文件名
例如:vi /etc/fstab表示顯示/etc/fstab文件的內容。使用鍵盤上的Page Up和Page Down鍵可以上下翻頁;按下Insert鍵,可以見到窗口左下角有“Insert”字樣,表示當前為插入編輯狀態,這時從鍵盤輸入的內容將插入到光標位置;再按下Insert鍵,左下角將有“Replace”字樣,表示當前為替換編輯狀態,這時從鍵盤輸入的內容將替換光標位置的內容。編輯完內容后,按下Esc鍵,并輸入“:wq”,然后回車就可以保存退出。
如果不想保存而直接退出,則按下Esc鍵后,輸入“:q!”,然后回車即可。“wq”表示Write和Quit,即保存退出;“q!”表示忽略修改強行退出。
以下操作建議手機拍照,建議把下載的cuda_10.0.130_410.48_linux.run文件重命名為cuda.run并移動到Home文件夾下(為了安裝方便)
gcc降級
Ubuntu20.04自帶的gcc版本為9.7.0,需要添加gcc7才可安裝cuda10.2,輸入命令安裝gcc7
sudo apt-get install gcc-7 g+±7
查看gcc版本,可以看到目前系統中存在7和9兩個版本
使用update-alternatives進行版本切換,輸入以下命令:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 50
此時輸入sudo update-alternatives --config gcc命令查看gcc的默認版本,可以看到當前默認gcc版本為7,即切換成功。
原文鏈接:https://blog.csdn.net/ashome123/article/details/105822040
安裝cuda
在安裝CUDA 時候會安裝3大組件,分別是 NVIDIA 驅動、toolkit 和 samples。
- NVIDIA 驅動是用來控制 GPU 硬件,
- toolkit 里面包括nvcc編譯器等,
- samples或者說SDK 里面包括很多樣例程序包括查詢設備、帶寬測試等等。
上面說的 CUDA Driver API是依賴于 NVIDIA 驅動 安裝的,而CUDA Runtime API 是通過CUDA toolkit 安裝的。
nvidia-smi 顯示的是你的驅動的版本號,而nvcc顯示的是你的環境變量相對應的CUDA的版本號
原文鏈接:https://blog.csdn.net/ljp1919/article/details/102640512
輸入命令進行安裝
sudo sh cuda_10.0.130_440.33.01_linux.run
彈出閱讀協議時,直接空格到100%,根據提示進行安裝。( 換圖。。。。。。。。。。。。。。。。)
3.環境變量配置
dragon@dragon-virtual-machine:~$ gedit ~/.bashrc
在文檔末尾加上:
或者
更新環境變量配置 dragon@dragon-virtual-machine:~$ source ~/.bashrc 環境變量的配置: sudo gedit ~/.bashrc 末尾添加: export PATH=/usr/local/cuda-10.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:/usr/local/cuda-10.0/extras/CUPTI/lib64:$LD_LIBRARY_PATH 重啟計算機 測試CUDA安裝結果: nvcc --version cd NVIDIA_CUDA-10.0_Samples make cd /NVIDIA_CUDA-10.0_Samples/bin/x84_64/linux/release 執行./deviceQuery #如果顯示的是一些關于GPU的信息,則說明安裝成功了。輸入:nvcc --version系統提示:
Command 'nvcc' not found, but can be installed with:解決方法:
首先,查看cuda的bin目錄下是否有nvcc:
如果存在,直接將cuda路徑加入系統路徑即可:
進入配置文件;
vim ~/.bashrc
添加以下兩行:
然后更新配置文件:
source ~/.bashrc再次執行nvcc --version就可以看到相應cuda版本了,如下:
dragon@dragon:/usr/local/cuda/bin$ nvcc --version nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2018 NVIDIA Corporation Built on Sat_Aug_25_21:08:01_CDT_2018 Cuda compilation tools, release 10.0, V10.0.130原文鏈接:https://blog.csdn.net/Flying_sfeng/article/details/103343813
nvidia-smi 中的CUDA 版本與 nvcc不一致:
解決方案:https://blog.csdn.net/qq525003138/article/details/103911704
出現版本不一致主要跟 NVIDIA Toolkit版本有關
原因:
在安裝CUDA 時候會安裝3大組件,分別是 NVIDIA 驅動、toolkit 和 samples。NVIDIA 驅動是用來控制 GPU 硬件,toolkit 里面包括nvcc編譯器等,samples或者說SDK 里面包括很多樣例程序包括查詢設備、帶寬測試等等。上面說的 CUDA Driver API是依賴于 NVIDIA 驅動 安裝的,而CUDA Runtime API 是通過CUDA toolkit 安裝的。
nvidia-smi 顯示的是你的驅動的版本號,而nvcc顯示的是你的環境變量相對應的CUDA的版本號
dragon@dragon:~/Downloads$ sudo apt-get install nvidia-cuda-toolkit Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed:g++-6 libaccinj64-9.1 libcublas9.1 libcudart9.1 libcufft9.1 libcufftw9.1 libcuinj64-9.1 libcurand9.1 libcusolver9.1libcusparse9.1 libdrm-dev libgl1-mesa-dev libgles1 libglvnd-core-dev libglvnd-dev libnppc9.1 libnppial9.1 libnppicc9.1libnppicom9.1 libnppidei9.1 libnppif9.1 libnppig9.1 libnppim9.1 libnppist9.1 libnppisu9.1 libnppitc9.1 libnpps9.1 libnvblas9.1libnvgraph9.1 libnvrtc9.1 libnvtoolsext1 libnvvm3 libopengl0 libpthread-stubs0-dev libstdc++-6-dev libthrust-dev libvdpau-devlibvdpau1 libx11-dev libx11-doc libx11-xcb-dev libxau-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-glx0-dev libxcb-present-devlibxcb-randr0-dev libxcb-render0-dev libxcb-shape0-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb1-dev libxdamage-devlibxdmcp-dev libxext-dev libxfixes-dev libxshmfence-dev libxxf86vm-dev mesa-common-dev mesa-vdpau-drivers nvidia-cuda-devnvidia-cuda-doc nvidia-cuda-gdb nvidia-opencl-dev nvidia-profiler nvidia-visual-profiler ocl-icd-opencl-dev opencl-c-headersvdpau-driver-all x11proto-core-dev x11proto-damage-dev x11proto-dev x11proto-fixes-dev x11proto-xext-devx11proto-xf86vidmode-dev xorg-sgml-doctools xtrans-dev Suggested packages:g++-6-multilib gcc-6-doc libstdc++6-6-dbg libstdc++-6-doc libvdpau-doc libxcb-doc libxext-doc libcupti-dev nvidia-driverlibpoclu-dev libvdpau-va-gl1 nvidia-vdpau-driver nvidia-legacy-340xx-vdpau-driver Recommended packages:libnvcuvid1 The following NEW packages will be installed:g++-6 libaccinj64-9.1 libcublas9.1 libcudart9.1 libcufft9.1 libcufftw9.1 libcuinj64-9.1 libcurand9.1 libcusolver9.1libcusparse9.1 libdrm-dev libgl1-mesa-dev libgles1 libglvnd-core-dev libglvnd-dev libnppc9.1 libnppial9.1 libnppicc9.1libnppicom9.1 libnppidei9.1 libnppif9.1 libnppig9.1 libnppim9.1 libnppist9.1 libnppisu9.1 libnppitc9.1 libnpps9.1 libnvblas9.1libnvgraph9.1 libnvrtc9.1 libnvtoolsext1 libnvvm3 libopengl0 libpthread-stubs0-dev libstdc++-6-dev libthrust-dev libvdpau-devlibvdpau1 libx11-dev libx11-doc libx11-xcb-dev libxau-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-glx0-dev libxcb-present-devlibxcb-randr0-dev libxcb-render0-dev libxcb-shape0-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb1-dev libxdamage-devlibxdmcp-dev libxext-dev libxfixes-dev libxshmfence-dev libxxf86vm-dev mesa-common-dev mesa-vdpau-drivers nvidia-cuda-devnvidia-cuda-doc nvidia-cuda-gdb nvidia-cuda-toolkit nvidia-opencl-dev nvidia-profiler nvidia-visual-profiler ocl-icd-opencl-devopencl-c-headers vdpau-driver-all x11proto-core-dev x11proto-damage-dev x11proto-dev x11proto-fixes-dev x11proto-xext-devx11proto-xf86vidmode-dev xorg-sgml-doctools xtrans-dev 0 upgraded, 78 newly installed, 0 to remove and 0 not upgraded. Need to get 788 MB of archives. After this operation, 1,874 MB of additional disk space will be used. Do you want to continue? [Y/n]解決方案:我是把 NVIDIA Toolkit卸載了重新安裝的:
參考鏈接: https://blog.csdn.net/qq525003138/article/details/103911704
4 版本查看
dragon@dragon:/usr/local/cuda/bin$ which nvcc /usr/local/cuda-10.0/bin/nvcc原文鏈接:https://blog.csdn.net/ashome123/article/details/105822040
cudnn 安裝
1.安裝包地址:
https://developer.nvidia.com/rdp/cudnn-archive
注意對應的版本
2.文件解壓
右擊解壓目錄下的cuda文件夾,選擇在終端打開,然后輸入
將cuda/include/cudnn.h文件復制到usr/local/cuda/include文件夾 sudo cp include/cudnn.h /usr/local/cuda/include/ 將cuda/lib64/下所有文件復制到/usr/local/cuda/lib64文件夾中 sudo cp lib64/libcudnn* /usr/local/cuda/lib64/ 并添加讀取權限 sudo chmod a+r /usr/local/cuda/include/cudnn.h sudo chmod a+r /usr/local/cuda/lib64/libcudnn*3.查看cudnn版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
看到下面內容,說明安裝成功
dragon@dragon:~/cudnn-10.0-linux-x64-v7.6.5.32/cuda$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 #define CUDNN_MAJOR 7 #define CUDNN_MINOR 6 #define CUDNN_PATCHLEVEL 5 -- #define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL) #include "driver_types.h"原文鏈接:https://blog.csdn.net/qq_39418067/article/details/87978848
總結
以上是生活随笔為你收集整理的【Linux】安装CUDA和cudnn的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++:类-多态的学习和使用
- 下一篇: 【Linux】虚拟机 Ubuntu su