Ubuntu下的CUDA环境的安装与配置

经常要在Ubuntu上配置CUDA的运行环境,这里记录下避免之后忘记。

在 Ubuntu 上配置 CUDA 环境,通常需要以下几个步骤:

  1. 检查系统需求和安装前的准备
  2. 安装 NVIDIA 驱动
  3. 安装 CUDA 工具包
  4. 配置环境变量
  5. 验证 CUDA 安装
  6. (可选)安装 cuDNN(用于深度学习)

1. 检查系统需求和准备工作

在安装 CUDA 之前,确保以下事项:

  • 你使用的 Ubuntu 版本支持 CUDA。可以查看 NVIDIA CUDA 官方文档 获取兼容的操作系统列表。
  • NVIDIA 显卡支持 CUDA(一般来说,较新的 NVIDIA 显卡都支持)。

建议你先删除任何旧版本的驱动程序或 CUDA 软件包,以避免冲突:

bash 复制代码
sudo apt-get --purge remove "*nvidia*"

2. 安装 NVIDIA 驱动

你可以使用 Ubuntu 的包管理器来自动安装适合的 NVIDIA 驱动。

  1. 首先,更新系统软件包:

    bash 复制代码
    sudo apt update sudo apt upgrade
  2. 启用 Ubuntu 的驱动程序仓库:

    bash 复制代码
    sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update
  3. 检查可用的 NVIDIA 驱动:

    bash 复制代码
    ubuntu-drivers devices

    这将列出系统支持的 NVIDIA 驱动版本。

  4. 安装推荐的 NVIDIA 驱动程序(例如 nvidia-driver-xxx,其中 xxx 是版本号):

    bash 复制代码
    sudo apt install nvidia-driver-xxx

    例如,如果推荐安装 nvidia-driver-470,则命令为:

    bash 复制代码
    sudo apt install nvidia-driver-470

    安装完成后,重新启动计算机:

bash 复制代码
sudo reboot

3. 安装 CUDA 工具包

  1. 下载 CUDA 工具包 :访问 NVIDIA CUDA Toolkit 下载页面,选择你的 Ubuntu 版本并复制对应的安装命令。以 CUDA 12.0 为例,使用以下步骤:

  2. 添加 CUDA 存储库和 GPG 密钥: 根据官网提供的命令,运行以下命令来添加 CUDA 存储库:

    bash 复制代码
    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin 
    sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600

    添加 GPG 密钥:

    bash 复制代码
    sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub
  3. 安装 CUDA: 安装完 GPG 密钥后,添加 CUDA 存储库并安装 CUDA 工具包:

    bash 复制代码
    sudo apt update sudo apt install cuda
  4. 重启系统: 安装完成后,重新启动系统:

    bash 复制代码
    sudo reboot

4. 配置环境变量

为了让系统可以找到 CUDA 工具和库,需要配置环境变量。

  1. 打开终端,编辑 .bashrc 文件:

    bash 复制代码
    nano ~/.bashrc
  2. 在文件的末尾添加以下几行(请根据实际安装路径调整,通常路径是 /usr/local/cuda-<version>):

    bash 复制代码
    export PATH=/usr/local/cuda/bin:$PATH export
    LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
  3. 保存并关闭文件,然后使更改生效:

    bash 复制代码
    source ~/.bashrc

5. 验证 CUDA 安装

  1. 检查 CUDA 版本: 使用以下命令来验证 CUDA 是否安装成功:

    bash 复制代码
    nvcc --version

    你应该看到类似以下的输出,显示 CUDA 版本信息:

    css 复制代码
    nvcc: NVIDIA (R) Cuda compiler driver 
    Copyright (c) 2005-2023 NVIDIA Corporation 
    Built on Thu_May_25_19:08:35_PDT_2023 
    Cuda compilation tools, release 12.0, V12.0.194
  2. 运行示例代码: CUDA 工具包中通常包含示例代码,可以使用这些示例来测试是否成功安装。

    先导航到 CUDA 安装目录的示例文件夹:

    bash 复制代码
    cd /usr/local/cuda/samples/1_Utilities/deviceQuery

    然后编译并运行 deviceQuery

    bash 复制代码
    sudo make ./deviceQuery

    如果输出显示 GPU 设备的详细信息,说明安装成功。

    示例输出:

    css 复制代码
    ./deviceQuery Starting... 
    
    CUDA Device Query (Runtime API) version (CUDART static linking) 
    
    Detected 1 CUDA Capable device(s) 
    
    Device 0: "GeForce GTX 1050" 
    CUDA Driver Version / Runtime Version 11.0 / 11.0 
    Total amount of global memory: 4041 MBytes (4235358208 bytes) 
    (6) Multiprocessors, (128) CUDA Cores/MP: 768 CUDA Cores

6. (可选)安装 cuDNN

cuDNN 是 NVIDIA 的深度学习加速库。如果你计划在 GPU 上运行深度学习框架(如 TensorFlow、PyTorch),建议安装 cuDNN。

  1. 下载 cuDNN : 从 NVIDIA 官网 cuDNN 下载页面 下载与你的 CUDA 版本匹配的 cuDNN。

  2. 解压并安装 : 下载的文件是 .tar 格式。解压后,将 cuDNN 文件复制到 CUDA 目录中:

    bash 复制代码
    tar -xzvf cudnn-<version>-linux-x64-v<version>.tgz 
    sudo cp cuda/include/cudnn*.h /usr/local/cuda/include 
    sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64 
    sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
  3. 验证 cuDNN 安装: 检查 cuDNN 版本:

    bash 复制代码
    cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

    如果输出了版本号,说明 cuDNN 安装成功。

总结

  1. 安装 NVIDIA 驱动:确保显卡驱动正确安装。
  2. 安装 CUDA 工具包:下载并配置好 CUDA 工具包。
  3. 配置环境变量 :设置 CUDA 的 PATHLD_LIBRARY_PATH
  4. 验证安装 :使用 nvcc 和示例代码来验证安装是否成功。
相关推荐
小鱼仙官19 分钟前
MFC中Picture Control控件显示照片的几种方式
c++·mfc
努力成为DBA的小王20 分钟前
Linux( 权限+特殊权限 图片+大白话)
linux·运维·服务器·学习
vvw&1 小时前
如何在 Ubuntu 上安装 Jupyter Notebook
linux·人工智能·python·opencv·ubuntu·机器学习·jupyter
钰爱&4 小时前
【操作系统】Linux之线程同步二(头歌作业)
linux·运维·算法
捕鲸叉7 小时前
怎样在软件设计中选择使用GOF设计模式
c++·设计模式
Yz98767 小时前
Hive基础
大数据·linux·数据仓库·hive·hadoop·bigdata
捕鲸叉7 小时前
C++设计模式和编程框架两种设计元素的比较与相互关系
开发语言·c++·设计模式
未知陨落8 小时前
数据结构——二叉搜索树
开发语言·数据结构·c++·二叉搜索树
Stara05118 小时前
Linux系统常用操作与命令指南
linux·vim
一丝晨光8 小时前
gcc 1.c和g++ 1.c编译阶段有什么区别?如何知道g++编译默认会定义_GNU_SOURCE?
c语言·开发语言·c++·gnu·clang·gcc·g++