Cuda 驱动安装

news/2024/11/14 23:17:00/文章来源:https://www.cnblogs.com/acatsmiling/p/18547059

Author: ACatSmiling

Since: 2024-11-13

CUDA(Compute Unified Device Architecture):是 NVIDIA 推出的一种并行计算平台和编程模型,它允许开发者利用 NVIDIA GPU(图形处理器)的强大计算能力进行通用计算,而不仅仅局限于图形处理。简单来说,CUDA 提供了一种方式,让程序员可以像编写 CPU 程序一样来编写能够在 GPU 上高效运行的程序。

安装步骤:

  1. 根据操作系统版本和 GPU 型号等,下载对应的 cuda 驱动,下载地址:https://developer.nvidia.com/cuda-downloads

    image-20241114230828037

  2. 检查服务器 GPU 识别情况,确保 GPU 卡能够完全识别,如不能识别,需要进行重新插拔、对调测试等步骤进行硬件排查。

    [root@desong-gpu-wushan ~]# lspci | grep -i nvidia
    00:07.0 3D controller: NVIDIA Corporation Device 2236 (rev a1)
    
  3. 安装 gcc,g++ 编译器。(GPU 驱动安装时,需要 gcc 编译器)

    [root@desong-gpu-wushan ~]# gcc -v
    Using built-in specs.
    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
    Target: x86_64-redhat-linux
    Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
    Thread model: posix
    gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) 
    [root@desong-gpu-wushan ~]# g++ -v
    Using built-in specs.
    COLLECT_GCC=g++
    COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
    Target: x86_64-redhat-linux
    Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
    Thread model: posix
    gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) 
    
    • yum install gccyum install gcc-c++
  4. 安装 kernel-devel 和 kernel-headers 软件包。

    [root@desong-gpu-wushan ~]# yum list | grep kernel
    Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
    kernel.x86_64                             3.10.0-693.el7               @anaconda
    kernel-abi-whitelists.noarch              3.10.0-693.el7               @base-52 
    kernel-devel.x86_64                       3.10.0-693.el7               @anaconda
    kernel-headers.x86_64                     3.10.0-693.el7               @anaconda
    kernel-tools.x86_64                       3.10.0-693.el7               @anaconda
    kernel-tools-libs.x86_64                  3.10.0-693.el7               @anaconda
    abrt-addon-kerneloops.x86_64              2.1.11-60.el7.centos         base     
    erlang-kernel.x86_64                      R16B-03.18.el7               epel     
    kernel.x86_64                             3.10.0-1160.42.2.el7         updates  
    kernel-abi-whitelists.noarch              3.10.0-1160.42.2.el7         updates  
    kernel-debug.x86_64                       3.10.0-1160.42.2.el7         updates  
    kernel-debug-devel.x86_64                 3.10.0-1160.42.2.el7         updates  
    kernel-devel.x86_64                       3.10.0-1160.42.2.el7         updates  
    kernel-doc.noarch                         3.10.0-1160.42.2.el7         updates  
    kernel-headers.x86_64                     3.10.0-1160.42.2.el7         updates  
    kernel-tools.x86_64                       3.10.0-1160.42.2.el7         updates  
    kernel-tools-libs.x86_64                  3.10.0-1160.42.2.el7         updates  
    kernel-tools-libs-devel.x86_64            3.10.0-1160.42.2.el7         updates  
    libreport-plugin-kerneloops.x86_64        2.1.11-53.el7.centos         base     
    lirc-disable-kernel-rc.noarch             0.10.0-16.el7                epel     
    php-symfony-http-kernel.noarch            2.8.12-2.el7                 epel     
    texlive-l3kernel.noarch                   2:svn29409.SVN_4469-45.el7   base     
    texlive-l3kernel-doc.noarch               2:svn29409.SVN_4469-45.el7   base
    
    • yum install kernet-devel-$(uname -r) kernel-headers-$(uname -r)
  5. 禁用系统自带的 nouveau 模块。

    # 检查 nouveau 模块是否加载
    [root@desong-gpu-wushan ~]# lsmod | grep nouveau
    nouveau              1622010  0 
    mxm_wmi                13021  1 nouveau
    wmi                    19070  2 mxm_wmi,nouveau
    video                  24520  1 nouveau
    i2c_algo_bit           13413  1 nouveau
    drm_kms_helper        159169  2 cirrus,nouveau
    ttm                    99345  2 cirrus,nouveau
    drm                   370825  5 ttm,drm_kms_helper,cirrus,nouveau
    i2c_core               40756  5 drm,i2c_piix4,drm_kms_helper,i2c_algo_bit,nouveau# 编辑 /usr/lib/modprobe.d/dist-blacklist.conf,添加以下内容,如果没有则创建
    [root@desong-gpu-wushan modprobe.d]# vim /usr/lib/modprobe.d/dist-blacklist.conf
    blacklist nouveau
    options nouveau modeset=0# 使内核生效
    [root@desong-gpu-wushan modprobe.d]# dracut -force
    
  6. 修改系统运行级别为文本模式,GPU 驱动安装必须在文本模式下进行。

    [root@desong-gpu-wushan modprobe.d]# systemctl set-default multi-user.target
    Removed symlink /etc/systemd/system/default.target.
    Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.
    # 重启系统
    [root@desong-gpu-wushan modprobe.d]# reboot
    
  7. 验证 nouveau 模块禁用生效,并进入文本模式。

    [root@desong-gpu-wushan ~]# lsmod | grep nouveau
    
  8. cuda 安装。

    # 赋予 cuda 安装包可执行权限
    [root@desong-gpu-wushan ~]# chmod +x cuda_12.2.0_535.54.03_linux.run
    # 执行 cuda 安装命令
    [root@desong-gpu-wushan ~]# ./cuda_12.2.0_535.54.03_linux.run --no-opengl-libs
    

    image-20241113164756822

    image-20241113164802852

    • 默认全部安装,如果已经安装过 GPU 驱动,则取消 Driver 选项的勾选。
    Driver:   Installed
    Toolkit:  Installed in /usr/local/cuda-12.2/Please make sure that-   PATH includes /usr/local/cuda-12.2/bin-   LD_LIBRARY_PATH includes /usr/local/cuda-12.2/lib64, or, add /usr/local/cuda-12.2/lib64 to /etc/ld.so.conf and run ldconfig as rootTo uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-12.2/bin
    To uninstall the NVIDIA Driver, run nvidia-uninstall
    Logfile is /var/log/cuda-installer.log
    
  9. 配置环境变量。

    [root@desong-gpu-wushan ~]# vim /etc/profile
    export PATH=/usr/local/cuda/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
    
  10. 生效环境变量。

    [root@desong-gpu-wushan ~]# source /etc/profile
    
  11. 测试 cuda 是否安装成功。

    [root@desong-gpu-wushan ~]# nvcc -V
    nvcc: NVIDIA (R) Cuda compiler driver
    Copyright (c) 2005-2023 NVIDIA Corporation
    Built on Tue_Jun_13_19:16:58_PDT_2023
    Cuda compilation tools, release 12.2, V12.2.91
    Build cuda_12.2.r12.2/compiler.32965470_0
    
  12. 修改系统运行级别为图形模式,然后重启系统。

    [root@desong-gpu-wushan ~]# systemctl set-default graphical.target
    Removed symlink /etc/systemd/system/default.target.
    Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.
    [root@desong-gpu-wushan ~]# reboot
    
  13. 验证GPU驱动及CUDA安装成功,以及图形化界面显示正常。

    [root@desong-gpu-wushan ~]# nvidia-smi
    Wed Nov  6 07:18:06 2024       
    +---------------------------------------------------------------------------------------+
    | NVIDIA-SMI 535.54.03              Driver Version: 535.54.03    CUDA Version: 12.2     |
    |-----------------------------------------+----------------------+----------------------+
    | GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
    |                                         |                      |               MIG M. |
    |=========================================+======================+======================|
    |   0  NVIDIA A10                     Off | 00000000:00:07.0 Off |                    0 |
    |  0%   39C    P0              58W / 150W |      4MiB / 23028MiB |      0%      Default |
    |                                         |                      |                  N/A |
    +-----------------------------------------+----------------------+----------------------++---------------------------------------------------------------------------------------+
    | Processes:                                                                            |
    |  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
    |        ID   ID                                                             Usage      |
    |=======================================================================================|
    |  No running processes found                                                           |
    +---------------------------------------------------------------------------------------+
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/833699.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[RoarCTF 2019]Easy Java 1

[RoarCTF 2019]Easy Java 1 打开实例发现登录框,尝试万能密码admin or 1=1#后无果注意到登录框下有个help,点击发现文件读取显示文件notfound,文件未找到,怀疑是请求方法问题,尝试POST请求发现能成功下载,确定这道题为任意文件下载 打开help.docx,显示看来文件不在这里,…

【linux日志】web日志分析

WEB正确日志格式分析#日志统计举例[root@master ~]# cat /etc/httpd/logs/access_log |awk {print $1}#对IP排序[root@master ~]# cat /etc/httpd/logs/access_log |awk {print $1}|sort#打印每一个重复出现IP的次数,[root@master ~]# cat /etc/httpd/logs/access_log |awk {p…

SpringBoot配置多数据源实战

SpringBoot配置多数据源实战@目录SpringBoot配置多数据源实战需求来源:简单粗暴3步使用步骤:思路讲解:目录结构:使用注意点: SpringBoot配置多数据源实战 需求来源: 当相关业务场景想实现同时操作2个甚至多个不同数据库表的时候,就需要配置多个数据源。简单粗暴3步使用步…

HTTP 协议学习笔记

HTTP 协议学习笔记 带新手走进神秘的HTTP协议 - 超超boy - 博客园 HTTP 首部字段详细介绍 - 超超boy - 博客园 《白帽子讲 web 安全(第二版)》HTTP 默认的端口号为 80,HTTPS 的端口号为 443。HTTP 是无状态协议,它不对之前发生过的请求和响应的状态进行管理。 可以使用 Coo…

自主研发RPA,基于uiautomatorviewer的自动化代码生成器,一键生成Java代码和Cucumber描述文件

介绍 基于UI Automator进行二次开发,让你不懂开发也能编写自动化测试代码, 一边生成代码一边Debug,毫不费力写出完美的自动化测试代码 。该工具集成了Tomcat使得添加新的功能的时候使用HTML+API进行开发,降低了开发难度;集成了Derby数据库,测试用例持久化到数据库。 软件…

关于NVIDIA Jetson AGX Xavier刷机过程记录

刷机记录,再刷机忘记了回来看看~主机电脑安装ubuntu20.04虚拟机,NVIDIA sdkmanager,主机端连上路由器提供的wifi。再将Jetson接上电源,但不开机。拿出附带的typec——USB数据线,typec端连上图中的typec口,USB连上主机电脑。找出一根网线,一端连接Jetson,另一端连接步骤…

shell编程 - 基础篇

1. Shell简介Shell是一个C语言编写的脚本语言,它是用户与Linux的桥梁,用户输入命令交给Shell处理,Shell将相应的操作传递给内核(Kernel),内核把处理的结果输出给用户。2. Shell编程语言必知必会shell命令解释器:bash编程常用命令解释器.命令解释器bash 目前应用最广泛一…

第四届光学与机器视觉国际学术会议(ICOMV 2025) 2025 4th International Conference on Optics and Machine Vision

第四届光学与机器视觉国际学术会议(ICOMV 2025)2025 4th International Conference on Optics and Machine Vision重要信息官网:https://ais.cn/u/vEbMBz

【os】操作系统是怎样一步步接收键盘按键的?

你有没有想过,按下键盘按键后,相应的字符是怎么一步步显示在屏幕上的? 首先来看硬件部分,你至少应该能想到必须得有键盘和CPU:之后呢,cpu是怎么知道有键盘按下呢? 为了让键盘按下按键后能通知到CPU,需要借助键盘控制器,keyboard controller,这当然也是硬件:当按下按…

Kafka学习day01

Kafka的学习day01-Kafka基础环境的搭建Kafka Centos7环境搭建 1. 安装Zookeeper 1.1 官网下载安装包ZooKeeper官网下载地址1.2 使用Xftp或远程工具将ZooKeeper安装包上传文件到服务器或虚拟机1.3 编写配置文件 进入ZooKeeper安装目录 cd {安装目录}/conf/1.3.1 配置文件模版 # …

从数据到知识,知识中台赋能企业智能化升级

在信息爆炸的时代,企业面临着数据泛滥与知识匮乏的双重挑战。如何将海量的数据转化为有价值的知识,进而驱动企业的智能化升级,已成为企业竞争力的关键。知识中台作为企业数字化转型的核心,正逐渐成为企业智能化升级的新引擎。 一、数据与知识的转化 数据本身并不等同于知识…

基于Java+SpringBoot+Mysql在线课程学习教育系统功能设计与实现十

审核前台用户认证信息、查看所有用户、订单、发布文章、发布常见问题等。 该系统总共24张表,代码整洁,每个功能、接口上都有注释说明。 运行环境:jdk1.8、mysql5.x、eclipse/idea、maven3.5/3.6 包远程运行的哦。 特色功能:发布课程、学习课程、分享资料、资料讨论等。 部分…