欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > linux >内容正文

linux

【Linux】安装CUDA和cudnn

发布时间:2025/3/20 linux 65 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【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版本
提示

Command 'nvidia-smi' not found, but can be installed with:sudo apt install nvidia-340 sudo apt install nvidia-utils-390

执行:sudo apt install nvidia-340

安装完成,在执行:nvidia-smi
提示:

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

驱动下载

安装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
在文本最后添加以下内容:

blacklist nouveau option nouveau modeset=0

然后保存退出
执行: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

  • 禁用 nouveau驱动(在安装Nvidia驱动时已禁用)
  • 终端中运行:$ 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
    在文档末尾加上:

    export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

    或者

    更新环境变量配置 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:

    cd /usr/local/cuda/bin

    如果存在,直接将cuda路径加入系统路径即可:
    进入配置文件;
    vim ~/.bashrc
    添加以下两行:

    export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

    然后更新配置文件:

    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的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。