Ubuntu LTS 22.04 安装NV显卡驱动、CUDA、cuDNN及Pytorch、flash-attn(避 ...

打印 上一主题 下一主题

主题 865|帖子 865|积分 2595

假如想在自己的电脑上离线体验或折腾一下如 DeepSeek、Qwen、Llama 为代表的语言大模型,大概 stable diffusion 为代表的文生图类的大模型及人工智能应用,就少不了如题所述的“基建工程”了。(至于为什么要在当地离线体验大模型及人工智能应用,懂的都懂,不懂的先上车体验一下就知道了~O(∩_∩)O哈哈~)
0、准备工作
安装驱动前先确认一下是否已经装过驱动了,这样能够减少不须要的麻烦,比如版本冲突之类的问题。
  1. # 可以通过下面的命令查看显卡型号,以及是否已经安装过驱动、当前驱动版本(我的电脑上已经安装了550.90.07版本的驱动)#查看显卡型号信息$ lspci | grep -i nvidia     (或 lspci -k | grep -A  3 VGA、sudo lshw -c video、sudo lshw -C display等)01:00.0 VGA compatible controller: NVIDIA Corporation TU116 [GeForce GTX 1660] (rev a1)01:00.1 Audio device: NVIDIA Corporation TU116 High Definition Audio Controller (rev a1)01:00.2 USB controller: NVIDIA Corporation TU116 USB 3.1 Host Controller (rev a1)01:00.3 Serial bus controller: NVIDIA Corporation TU116 USB Type-C UCSI Controller (rev a1)
  2. #查看显卡驱动信息$ ls /usr/src | grep nvidia  (或 nvidia-smi 等)nvidia-550.90.07
复制代码
禁用 nouveau 驱动,由于 nouveau 是通过逆向NVIDIA官方发布的闭源驱动而得到的适用于NVIDIA显卡的开源驱动,Ubuntu 默认安装的就是这个开源的 nouveau 驱动程序,所以要安装NVIDIA显卡官方驱动起首需要禁用 nouveau,克制驱动冲突进而导致安装驱动安装失败、进不了桌面环境,乃至黑屏等问题。
  1. # 可以通过此命令查看是否开启(我的电脑上已经禁用了,所以没有输出,否则有输出)$ lsmod | grep nouveau
  2. # 禁用 nouveau 驱动$ sudo echo "blacklist nouveau" >>/etc/modprobe.d/blacklist.conf$ sudo echo "options nouveau modeset=0" >>/etc/modprobe.d/blacklist.conf
  3. # 更新内核镜像 initramfs 文件,因其默认使用的N卡驱动是 nouveau$ sudo update-initramfs -u
  4. # 电脑重启,进命令行模式(不要用图形界面了),输入下列指令进行确认,若无输出,则禁用成功$ lsmod | grep nouveau
复制代码
1、安装显卡驱动
安装显卡驱动主要有三种方式:a.基于 ubuntu-drivers 下令行方式;b.NVIDIA网站下载安装;c.随 CUDA Toolkit 一起安装。
a.基于 ubuntu-drivers 的下令行方式
  1. # 添加图形图像驱动源# 可以用 sudo apt-add-repository -L 或 ls /etc/apt/sources.list.d/ 查看是否安装了下面的包源   sudo add-apt-repository ppa:graphics-drivers/ppa
  2. # 先更新一下软件包缓存和安装的软件包,如果发现更新时下载速度很慢,就要考虑更换包源了 $ sudo apt update  -y && sudo apt upgrade -y
  3. # 查找可用的驱动版本(nvidia-detector 可以找到最新版驱动,但是可能是bate版)$ sudo apt install ubuntu-drivers-common$ ubuntu-drivers devices== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==modalias : pci:v000010DEd00002184sv00001458sd00003FDCbc03sc00i00vendor   : NVIDIA Corporationmodel    : TU116 [GeForce GTX 1660]manual_install: Truedriver   : nvidia-driver-418-server - distro non-freedriver   : nvidia-driver-470-server - distro non-freedriver   : nvidia-driver-535-server - distro non-freedriver   : nvidia-driver-535 - distro non-freedriver   : nvidia-driver-560 - third-party non-free recommendeddriver   : nvidia-driver-550-open - third-party non-freedriver   : nvidia-driver-550 - third-party non-freedriver   : nvidia-driver-565-open - third-party non-freedriver   : nvidia-driver-535-open - distro non-freedriver   : nvidia-driver-450-server - distro non-freedriver   : nvidia-driver-470 - distro non-freedriver   : nvidia-driver-560-open - third-party non-freedriver   : nvidia-driver-545-open - distro non-freedriver   : nvidia-driver-535-server-open - distro non-freedriver   : nvidia-driver-545 - distro non-freedriver   : nvidia-driver-565 - third-party non-freedriver   : xserver-xorg-video-nouveau - distro free builtin
  4. # 注意看第20行那里,后面有个“ recommended ”,我们就安装这个驱动了# 注意:有时候推荐安装XXX-open,不要采用这种,因为安装后可能在使用nvidia-smi时,会出现no devices found的错误。# 也不要安装 XXX-nouveau 版本,这个是上文提到的要禁用的驱动类型$ sudo apt install nvidia-driver-560
  5. # 不知道怎么选还可以就用 sudo ubuntu-drivers autoinsall
  6. # 安装完成后,重启就可以了,可以用 nvidia-smi 等查看驱动信息
  7. # 如果已经安装过其它的驱动,要进行卸载后再安装(或升级),卸载命令如下# 要先卸载 cuda之类的附件软件$ sudo apt-get --purge remove "*cublas*" "cuda*"$ sudo apt-get --purge remove "*nvidia*"$ sudo apt autoremove
  8. # 通过如下命令查看一下,是否卸载干净了sudo dpkg --list | grep nvidia-*
复制代码
b.NVIDIA网站按显卡型号、操纵体系等信息筛选、查找、下载后安装
  1. # 根据前面介绍的方法确定显卡型号后等信息后,在NVIDIA官网下载,地址如下:https://www.nvidia.cn/drivers/lookup/
  2. # 下载有两种方式,一种是直接用浏览器下载,# 另一种是用wget,在下载按钮上点右键,复制链接后用wget下载,推荐用这种,因为断点续传更方便$ wget -c https://us.download.nvidia.com/XFree86/Linux-x86_64/550.144.03/NVIDIA-Linux-x86_64-550.144.03.run
  3. # 安装必要的辅助软件包sudo apt install gccsudo apt install cmake
  4. # 赋予操作权限$ sudo chmod a+x ./NVIDIA-Linux-x86_64-550.144.03.run
  5. # 执行安装# 建议加上三个参数,作用分别是:# -no-x-check:安装驱动时不检查 X 服务# -no-nouveau-check:安装驱动时不检查 nouveau 驱动# -no-opengl-files:只安装驱动文件,不安装OpenGL文件,这个参数最重要,避免循环登录$ sudo ./NVIDIA-Linux-x86_64-550.144.03.run -no-x-check -no-nouveau-check -no-opengl-files
  6. # 加载驱动$ sudo modprobe nvidia
  7. #这种方式安装的驱动,卸载时要用下面的命令$ sudo ./NVIDIA-Linux-x86_64-550.144.03.run --uninstall
  8. # 按上一步卸载后,用前面类似的方法进行一下垃圾清理,略了
复制代码
c.安装CUDA Toolkit时一起安装驱动
略了,这个见背面的CUDA安装部分,但是和CUDA一起安装的驱动的版本是运行该cuda的最低版本的驱动。
     *驱动安装过程中大概出现的中心步骤或选项
  1. Perform MOK management:(1)重启时,可能会出现 蓝色背景的  Perform MOK management ,选择 enroll mok , (2)进入enroll mok 界面,选择 continue , (3)进入enroll the key 界面,选择 yes , (4)接下来输入你在安装驱动时输入的密码 , (5)之后会跳到蓝色背景的界面perform mok management 选择第一个 reboot。
  2. 中间过程的可能选项内容:1. An alternate method of installing the NVIDIA driver was detected ...    选择 continue installation
  3. 2.Install nvidia's 32-bit compatibility libraries?    选择 No 
  4. 3.Would you like to register the kernel module souces with DKMS? ...    选择 No
  5. 4.Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? ...    选择 Yes
复制代码

2、安装 CUDA
    CUDA是由NVIDIA开辟的一个并行计算平台和编程模型,用于图形处理单元(GPU)的通用计算。通过CUDA,开辟人员可以利用GPU的本领极大地提高计算应用程序的速率。
     在GPU加速的应用程序中,工作负载的次序部分运行在CPU上——这是针对单线程性能进行优化的——而应用程序的计算密集部分并行运行在数千个GPU核上。在利用CUDA时,开辟人员利用C、C++、Fortran、Python和MATLAB等流行语言编程,并通过扩展以几个根本关键字的形式表达并行性。
        CUDA Toolkit由NVIDIA提供的开辟GPU加速应用程序所需的一切。
  https://developer.nvidia.com/cuda-zone
  CUDA Toolkit是NVIDIA(英伟达)为方便开辟人员利用,提供的一套开辟工具和库,旨在帮助开辟人员便捷地创建和优化基于CUDA的应用程序。它包括了包括NVIDIA的CUDA编译器nvcc(nvcc,专门用于处理CUDA C/C++代码,能将其与常规C/C++代码结合编译,编译成可在NVIDIA GPU上运行的程序)、CUDA Runtime程序库、CUDA开辟工具等。官方CUDA Toolkit技能文档地址:https://docs.nvidia.com/cuda/index.html。
CUDA 主要有两个API库:runtime API、driver API用于支持driver API的须要文件(如libcuda.so)是由GPU driver installer安装的。用于支持runtime API的须要文件(如libcudart.so以及nvcc)是由CUDA Toolkit installer安装的。nvidia-smi下令查的是driver API,nvcc 下令查的是 runtime API。
常见的cuFFT和cuBLAS库就是基于Runtime API的‌,Runtime API并不是CUDA编程的唯一选择,Runtime API能做到的,Driver API肯定也能实现。
在显卡驱动安装时,会安装 CUDA Driver API库, CUDA Driver API库偏底层,直接管理硬件设备,提供最低级别的访问权限,但同时也带来了更高的编程复杂度,相当于是汇编语言的级别,面向硬件。
通过CUDA Toolkit软件包可用安装 CUDA Runtime API库,它为开辟人员提供了一个高条理的接口,相当于是C语言级别,能更方便地进行面向GPU的程序开辟,使得开辟者可以更加专注于算法和应用程序的开辟,而不必深入底层的硬件细节。
  1. # 通过安装驱动后提供的 nvidia-smi 可用查看 CUDA Driver API库的版本,# 它是底层地基,所以它显示的版本决定了后续的 CUDA Driver API库版本不能“僭越”它$ nvidia-smiMon Feb  3 04:17:59 2025+-----------------------------------------------------------------------------------------+| NVIDIA-SMI 550.90.07              Driver Version: 550.90.07      CUDA Version: 12.4   ......# 如上中: CUDA Version: 12.4  ,12.4 即为CUDA Driver API库的版本,后续的CUDA Runtime API库版本需要不大于12.4
  2. # 本机安装CUDA Toolkit 后,通过 nvcc -V 查看的CUDA Runtime API库版本$ nvcc -Vnvcc: NVIDIA (R) Cuda compiler driverCopyright (c) 2005-2023 NVIDIA CorporationBuilt on Tue_Aug_15_22:02:13_PDT_2023Cuda compilation tools, release 12.2, V12.2.140Build cuda_12.2.r12.2/compiler.33191640_0# 如上中: cuda_12.2.r12.2  ,12.2 即为CUDA Runtime API库版本
复制代码
CUDA driver是向后兼容的,即新的CUDA driver一般可以支持比力旧的CUDA runtime。但是当CUDA runtime的版本比CUDA driver更高时大概会调用一些CUDA  driver 尚不支持的函数或参数,程序大概会出现错误或无法运行,由于 driver 不支持该 runtime 调用的某些新特性。正所谓,下层基础决定了上层建筑,因此,建议在安装驱动时,尽量选择较新的稳固版驱动以保证CUDA runtime 的匹配性。
因此,一般建议尽量保持CUDA driver API为最新版本,这样可以兼容较旧的 CUDA runtime  API,也可以克制由于CUDA driver API 版本过低导致的错误。所以,最好安装最新的NVIDIA驱动,并选择一个不高于NVIDIA驱动所支持的 CUDA 版本的 runtime 版本。
CUDA 的版本受限于显卡驱动,cuDNN的版本受限于CUDA,而Pytorch、Transformers、ONNXRuntime、Flash-attn等都和CUDA版本有密切关联,当我们要运行不同的人工智能类项目时就大概引起依赖冲突,办理办法主要有两种,一是提前规划好版本,另一个是创建捏造环境,在捏造环境中安装不同的版本(就是比力费硬盘空间)。
安装 CUDA 主要有三种方式:a.下令行方式;b.NVIDIA网站下载安装(包含三类);c.用pip安装。(在这里 https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html 页面(Table 2 CUDA Toolkit and Minimum Required Driver Version for CUDA Minor Version Compatibility、Table 3 CUDA Toolkit and Corresponding Driver Versions)中可以查看  CUDA Toolkit和要求的显卡驱动的版本要求。 )
a.基于APT包源的下令行方式
  1. # 直接输入如下命令即可,但是 cuda版本略旧,而且可能与驱动冲突$ sudo apt install nvidia-cuda-toolkit
  2. # 安装完成后,验证一下,能看到相关cuda信息即可$ nvcc -V
  3. # 卸载方法如下$ sudo sudo apt-get --purge remove nvidia-cuda-toolkit 
复制代码
b.NVIDIA网站按操纵体系、架构等信息筛选、下载后安装
选择:Linux体系、x86_64架构、Ubuntu体系、体系版本22.04、会有三类安装方式,分别是:deb(local)、deb(network) 和 runfile(local)。
  1. #进入如下网站,选择操作系统、架构等信息,下载主版本cuda12.8https://developer.nvidia.com/cuda-downloads
  2. # deb(local)方式如下,注意要能匹配显卡驱动的 cuda driver 版本$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin$ sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600$ wget https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda-repo-ubuntu2204-12-8-local_12.8.0-570.86.10-1_amd64.deb$ sudo dpkg -i cuda-repo-ubuntu2204-12-8-local_12.8.0-570.86.10-1_amd64.deb$ sudo cp /var/cuda-repo-ubuntu2204-12-8-local/cuda-*-keyring.gpg /usr/share/keyrings/$ sudo apt-get update$ sudo apt-get -y install cuda-toolkit-12-8
  3. # deb(network)方式如下,注意要能匹配显卡驱动的 cuda driver 版本$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb$ sudo dpkg -i cuda-keyring_1.1-1_all.deb$ sudo apt-get update$ sudo apt-get -y install cuda-toolkit-12-8
  4. # runfile(local)方式如下,注意要能匹配显卡驱动的 cuda driver 版本$ wget https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda_12.8.0_570.86.10_linux.run$ sudo sh cuda_12.8.0_570.86.10_linux.run
  5. # 历史版本cuda toolkit下载地址https://developer.nvidia.com/cuda-toolkit-archive
  6. # 安装过程中会出现:End User License Agreement.....   输入:accept ,同意协议   # deb(local)、deb(network)卸载方法如下:$ sudo apt-get --purge remove "*cuda*" "*cublas*" "*cufft*" "*cufile*" "*curand*" \ "*cusolver*" "*cusparse*" "*gds-tools*" "*npp*" "*nvjpeg*" "nsight*" "*nvvm*"$ sudo apt-get autoremove --purge -V
  7. # 删除库信息$ sudo apt-get remove --purge "cuda-repo-<distro>-X-Y-local*"
  8. # runfile(local)卸载方法如下:$ cd /usr/local/cuda-xx.x/bin/$ sudo ./cuda-uninstaller$ sudo rm -rf /usr/local/cuda-xx.x
  9. #如果发现/usr/local/cuda_xx.x/bin下没有cuda-uninstaller,则需要提取cuda-uninstaller$ sudo sh cuda_xx.x.x_..._linux.run --extract=/usr/local/cuda-xx.x
  10. $ cd /usr/local/cuda-xx.x/bin/$ sudo ./cuda-uninstaller 
  11. #按住 Alt 勾选你想卸载的cuda,[X]表示选中    # 删除目录和软连接等$ sudo rm -rf /usr/local/cuda-xx.x  # 验证一下是否卸载完成$  nvcc -V# 没有显示cuda版本就可以了
复制代码


(图片来自 Aitotra01 在CSDN中关Ubuntu安装CUDA等的文章)
上图红框中的内容,可以选择在安装CUDA Toolkit时是否安装显卡驱动,假如在前面的显卡驱动安装环境没有安装驱动,这一步就一定要选上了。


(图片来自 Aitotra01 在CSDN中关Ubuntu安装CUDA等的文章)
安装完成后,会出现上图范例的信息,红框中的内容是提醒我们配置环境变量。CUDA Toolkit的安装路径通常在usr/local/路径下,安装完成后要检查该路径下是否存在cuda相关的录。
  1. # 配置环境变量$ vi ~/.bashrc
  2. # 写入以下内容,注意替换成自己的版本export PATH=/usr/local/cuda-12.8/bin:$PATHexport LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:$LD_LIBRARY_PATH
  3. # 上面的加环境变量方式存在不严谨的地方,就是如果“:”后面的$PATH 或 $LD_LIBRARY_PATH为空值时,# 最终的 CUDA 加载目录变成了:“/usr/local/cuda-12.8/lib64:”可能对部分软件有影响(PATH类似)。# 避免隐患的环境变量添加方式如下:
  4. if [ "$PATH" ]; then   PATH=/usr/local/cuda-12.8/bin:$PATHelse   PATH=/usr/local/cuda-12.8/binfi
  5. if [ "$LD_LIBRARY_PATH" ]; then   LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:$LD_LIBRARY_PATHelse   LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64fi
  6. # 使配置生效$ source ~/.bashrc
  7. # 记得输入 nvcc -V 进行验证
复制代码
c.基于PIP包源的下令行方式
下面对CUDA Toolkit与Pytorch的安装关系进行一些说明。
安装Pytorch(包名是:torch)可以选择支持CUDA的版本(其它还有支持 CPU、ROCm的版本),支持CUDA的版本又有两种,一种是利用体系上安装好的 CUDA runtime  API;另一种是只利用CUDA driver API,但是通常会主动附带下载安装编译好的CUDA runtime支持包如 nvidia-cuda-nvrtc-cu1x、nvidia-cuda-runtime-cu1x 、nvidia-cudnn-cu1x  等。
安装 Pytorch 时主动附带下载的CUDA runtime支持包是不完整的,如没有包含驱动也没有携带 nvcc 等编译工具,但是这些编译好的CUDA runtime支持包足以支持Pytorch的运行了。由于 Pytorch 之类的深度学习框架而言,在要 GPU 资源时,只需要由 CUDA 的动态链接库支持程序的运行即可,也就是安装显卡驱动时安装的 libcuda.so 等动态链接库,而通过 conda 大概 pip 下载 Pytorch的时间,我们看到的 nvidia-cuda* 之类的库与CUDA相关的部分是提前编译好的,不需要在程序运行时重新进行编译,只要体系上存在与当前的 nvidia-cuda*所兼容的 Nvidia 驱动,PyTorch直接调用这些库函数运行即可,所以我们假如不编写自定义的CUDA扩展、修改PyTorch的底层实现或编写自己的面向GPU的CUDA程序,也不用再进行 CUDA 程序的编译,自然用不到NVIDIA官网的完整版的CUDA Toolkit。
在安装 Pytorch 的GPU版本时,必须要选择的就是对应的CUDA版本,而这个CUDA版本指的就是CUDA Runtime Version,这个版本必须要低于或便是本机的CUDA驱动的版本,即CUDA Driver Version(通过 nvidia-smi 下令查询得到的版本),否则会出现兼容问题。
简单来说,Nvidia 官方提供安装的 CUDA Toolkit 是比力全面的,它包含了进行 CUDA 相关程序开辟的编译、调试等过程相关的所有组件,。一句话:假如你的利用场景只是利用 Pytorch 这类的深度学习框架,你只要装了显卡驱动,再通过pip 安装 Pytorch就可以了。
  1. # 为了流畅的安装这些“大块头”建议先切换换 PIP 包源(后面安装Pytorch也能用上)# 准备工作$ python3 -m pip install --upgrade setuptools pip wheel
  2. # 查看当前源:可以通过以下命令查看当前使用的pip源:$ pip config get global.index-urlhttps://mirrors.aliyun.com/pypi/simple
  3. # 更换为腾讯云镜像源$ pip config set global.index-url https://mirrors.tencent.com/pypi/simple/
  4. # 更换为阿里云镜像源$ pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
  5. # 更换为清华大学云镜像源$ pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
  6. #临时使用:源临时修改方式是在每次安装软件包时通过-i参数指定:$ pip install -i <package_name> https://pypi.tuna.tsinghua.edu.cn/simple 
  7. # 恢复默认源官方 PyPI 软件源,官方源里面的包比较齐全和新$ pip config unset global.index-url
  8. # 用 PIP 方式安装CUDA runtime API 包(也可以在安装 Pytorch 时自动安装)# nvidia-pyindex用于将 NVIDIA 私有 Python 包索引的地址添加到用户的环境中$ pip install nvidia-pyindex$ pip install nvidia-cuda-runtime-cu12
  9. # 安装其它需要的包$ pip install nvidia-<library>
  10. #下面的地址可以查看其它 meta-packages(元包)的相关信息https://docs.nvidia.com/cuda/cuda-installation-guide-linux/#meta-packages
复制代码


上面的图片,来自我电脑的截图,图上可以看出Python内里的torch采取的CUDA 版本是 PIP方式安装时的版本(12.4),并不是 CUDA Toolkit 安装的 12.2版本,这和Python环境的设置有关系,同时也说明,Python 内里的 torch 并不总是需要完整的  CUDA Toolkit 包。
更多更具体的安装细节可以访问NVIDIA官网:https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
3、cuDNN安装
       cuDNN(CUDA Deep Neural Network library)是NVIDIA提供的一个高性能深度学习库,专门为深度神经网络(DNN)的训练和推理优化,旨在利用NVIDIA GPU的计算本领来加速深度学习任务。CuDNN 加速了广泛利用的深度学习框架,包括Caffe2、 Chainer、 Keras、 MATLAB、 MxNet、 paddlePaddle、 PyTorch 和 tensorFlow等。
  我的明白是:CUDA driver API(显卡驱动中)是为操控GPU提供了一个能用的但不机动的接口,但是,通过CUDA Runtime API(CUDA Toolkit中 )是为了方便且机动地运用GPU的并行计算本领,cuDNN是为在GPU实现深度神经网络功能而生的。就好比,CUDA driver API 是建好了但是未划线的道路,各位老司机各凭本事纵横驰骋,CUDA Runtime API 是在道路上划线,有了开端的规划管理,一般司机也能放心上路了,cuDNN则是划出了专用的公交车道,为特定目的而创建快车道。
a.基于APT包源的下令行方式
  1. # 通过下面的网站核实当前的cuDNN主版本(下载时需要登录NVIDIA账号)https://developer.nvidia.com/cudnn-downloads
  2. # 安装依赖$ sudo apt-get install zlib1g
  3. # 默认安装当前主版本的cuDNN 9.7.0,cuda12或cuda11均可# 本地下载(deb(local))后安装方式如下$ wget https://developer.download.nvidia.com/compute/cudnn/9.7.0/local_installers/cudnn-local-repo-ubuntu2204-9.7.0_1.0-1_amd64.deb$ sudo dpkg -i cudnn-local-repo-ubuntu2204-9.7.0_1.0-1_amd64.deb$ sudo cp /var/cudnn-local-repo-ubuntu2204-9.7.0/cudnn-*-keyring.gpg /usr/share/keyrings/$ sudo apt-get update$ sudo apt-get -y install cudnn
  4. #通过网络在线(deb(network))安装,方式如下:$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb$ sudo dpkg -i cuda-keyring_1.1-1_all.deb$ sudo apt-get update$ sudo apt-get -y install cudnn
  5. # 根据实际需要如果使用cuda11,还需要安装特定的软件包$ sudo apt-get -y install cudnn-cuda-11
  6. # 根据实际需要如果使用cuda12,还需要安装特定的软件包$ sudo apt-get -y install cudnn-cuda-12
  7. # 验证一下是否安装成功$ cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2  #define CUDNN_MAJOR 9#define CUDNN_MINOR 1#define CUDNN_PATCHLEVEL 0--#define CUDNN_VERSION (CUDNN_MAJOR * 10000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
  8. /* cannot use constexpr here since this is a C-only file */
  9. #如上显示的 cuDNN 为9.1.0版本
  10. # 历史版本的cuDNN和CUDA的组合可用通过下面的网站进行选择下载https://developer.nvidia.com/rdp/cudnn-archive# 如果在历史版本中下载的是 cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz 类似格式的压缩包# 安装方式如下$ wget https://developer.nvidia.com/downloads/compute/cudnn/secure/8.9.7/local_installers/12.x/cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz$ tar -xvf cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz  $ sudo cp cudnn-linux-x86_64-8.9.7.29_cuda12-archive/include/cudnn*.h /usr/local/cuda/include$ sudo  cp -P cudnn-linux-x86_64-8.9.7.29_cuda12-archive/lib/libcudnn* /usr/local/cuda/lib64$ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
  11. # 关于cuDNN文件的复制目录,也可以是 /usr/local/cuda-X.X/xxx的目录中对应的子目录,# 因为/usr/local/cuda/ 和 /usr/local/cuda-X.X/ 是链接关系。
复制代码
b.基于PIP包源的下令行方式
   NVIDIA提供了通过pip安装cuDNN的Python Wheels,主要用于与Python一起利用cuDNN。利用这种安装方法,可以通过pip管理cuDNN安装环境。必须额外注意设置您的主机环境,以便在pip环境之外利用cuDNN。
  https://docs.nvidia.com/deeplearning/cudnn/installation/latest/linux.html#python-wheels-linux-installation
  1. # 通过下面的网站查找、核实cuDNN在Python源中的包名等信息,https://pypi.org/
  2. #  在下面网站,查找合适版本后,可下载至本地安装,如下页面可下载cuda11版本的cuDNN whl包https://pypi.org/project/nvidia-cudnn-cu11/#files
  3. # 直接pip命令安装方式如下# 安装在适用于 CUDA 12 的默认版本的cuDNN :$ python3 -m pip install nvidia-cudnn-cu12
  4. # 安装在适用于 CUDA 11 的默认版本的cuDNN :$ python3 -m pip install nvidia-cudnn-cu11
  5. # 安装在适用于 CUDA 12 的指定版本的cuDNN :$ python3 -m pip install nvidia-cudnn-cu12==9.x.y.z
  6. # 安装在适用于 CUDA 11 的指定版本的cuDNN :$ python3 -m pip install nvidia-cudnn-cu11==9.x.y.z
复制代码
4、Pytorch安装
Pytorch的包名是torch,提供了用于在Python环境中进行呆板学习方面的开辟的库包。
  1. # 通过下面的网站核实当前的torch主版本https://pytorch.org/get-started/locally/
  2. # 默认安装当前主版本的torch-2.6.0,Python3.9或以上,cuda12.4$ pip3 install torch torchvision torchaudio
  3. # 默认安装当前主版本的torch-2.6.0,Python3.9或或以上,无GPU加持的如下$ pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
  4. # 我的CUDA Toolkit安装后对应的cuda版本是12.2,所以根据cuda向后兼容的特定,实际安装命令如下# 用 nvcc -V 查看一下 cuda runtime 版本$ nvcc -Vnvcc: NVIDIA (R) Cuda compiler driverCopyright (c) 2005-2023 NVIDIA CorporationBuilt on Tue_Aug_15_22:02:13_PDT_2023Cuda compilation tools, release 12.2, V12.2.140Build cuda_12.2.r12.2/compiler.33191640_0
  5. $ pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu121
  6. # 历史版本的torch、是否需要GPU加持等,可用通过下面的网站进行选择下载https://pytorch.org/get-started/previous-versions/
  7. #在下面网站,查找合适版本后,可下载至本地安装https://pypi.org/project/torch/#history
复制代码
*验证Pytorch及CUDA安装效果
  1. # 进入Python,然后输入如下代码import torchprint(torch.__version__) x = torch.rand(5, 3)print(x)
  2. # 执行后会输出类似的张量:tensor([[0.8145, 0.6489, 0.4696],        [0.1548, 0.7105, 0.9190],        [0.9008, 0.5350, 0.4361],        [0.5822, 0.4562, 0.2200],        [0.6570, 0.9291, 0.1930]])
  3. # 查看Python中使用的 CUDA 及 cudnn 版本import torchprint(torch.version.cuda)torch.backends.cudnn.version()......
  4. # 验证 CUDA/ROCm 是否成功的与 Pytorch 协同工作import torchtorch.cuda.is_available()
  5. # 输出:False 或 True# False 表示 不成功;True 表示 成功,能运用GPU的 CUDA/ROCm 执行高效的并行计算。
复制代码

5、Flash Attention安装
FlashAttention (简称大概说是包名:flash_attn)是一种新型的注意力机制,主要用于处理基于transformers等架构的大模型中大规模数据集和复杂的呆板学习任务,其主要目标是提高计算效率并减少内存消耗。
  1. # 访问下面网站,找到对应torch、python、cuda版本的flash_attn进行下载https://github.com/Dao-AILab/flash-attention/releases/
  2. # 关键是要注意和Python、torch、cuda版本的匹配,下载预编译包安装# 较新版flash_attn要求cuda版本必须在12.0或以上,旧历史版本cuda要求的为11.0或以上# cxx11abiFALSE 表示编译时未启用 C++11 ABI。# 如果 PyTorch 是官方预编译包(默认启用 C++11 ABI),此包可能与之冲突,要使用 cxx11abiTRUE 标识的。
  3. # 例如python3.10 torch2.5.1 cuda12.2$ pip install flash_attn-2.7.4.post1+cu12torch2.5cxx11abiFALSE-cp310-cp310-linux_x86_64.whl               # 下面的方法也可以安装flash-attn,但是,这个耗时很长,我自己试了,至少半小时都没装好,网上有说要1~2小时的# --no-build-isolation 是一个选项,表示禁用构建隔离机制。这个隔离机制通常被用于避免与其他项目的依赖冲突# 但是,在某些情况下,例如使用特定版本的 C/C++ 编译器等情况下,需要禁用构建隔离机制以确保正确的编译和链接。$ pip install flash-attn --no-build-isolation
复制代码
[code][/code] PS:关于文章中安装的软件包或库版本存在前后不同等的是由于部分内容来自我的电脑,有些是根据相关网站的最新情况(或默认版本的软件包或库)做的介绍。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

光之使者

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表