Ubuntu系统配置深度学习环境之nvidia显卡驱动和cuda安装

2023-12-05

前言

NVIDIA 显卡驱动是为了确保 NVIDIA 显卡能够正确运行而开发的软件。显卡驱动负责与操作系统通信,管理显卡的各种功能,并提供性能优化和兼容性保证。安装适用于特定显卡型号和操作系统版本的最新驱动程序是确保显卡能够正常工作的重要步骤。

CUDA 是 NVIDIA 推出的一种并行计算平台和编程模型。它充分利用 NVIDIA 显卡的并行处理能力,使开发人员能够通过编写并行计算任务来加速各种计算工作。CUDA 提供了一组编程接口和工具,使开发人员能够使用标准编程语言(如C/C++、Python)来开发并行计算应用程序。

CUDA 依赖于 NVIDIA 显卡驱动的支持。安装正确的显卡驱动是为了确保 CUDA 开发平台能够顺利工作。通过 CUDA,开发人员可以利用 NVIDIA 显卡的强大算力来加速计算任务,从而提高性能和效率。

因此,NVIDIA 显卡驱动和 CUDA 是相辅相成的,只有在正确安装并配置了适用的显卡驱动程序后,才能利用 CUDA 进行并行计算任务的开发和加速。

1、显卡驱动的安装及卸载

查看独立显卡驱动支持及其支持的最高 cuda版本

nvidia-smi

若无输出表示驱动未安装,查询可用的驱动:

ubuntu-drivers devices

上述命令很可能什么都不显示,添加官方 ppa 的源,更新源后即可查询可用驱动:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
ubuntu-drivers devices

安装

第一种安装显卡驱动的方式(通过命令行安装)

自动安装推荐的驱动:

sudo ubuntu-drivers autoinstall

指定版本安装:

sudo apt install nvidia-driver-515  #指定安装515版本
第二种安装显卡驱动的方式(通过界面安装)

在ubuntu20.04 安装NVIDIA驱动比较简单,打开系统设置->软件和更新->附加驱动->选择NVIDIA驱动->应用更改,该界面会自动根据电脑上的GPU显示推荐的NVIDIA显卡驱动,选择需要的版本安装即可。

卸载

查看当前驱动、卸载驱动:

dpkg -l | grep nvidia           #查看当前驱动
sudo apt-get purge nvidia*      #卸载当前驱动   
sudo apt autoremove             #清理链接

2、安装Cuda

查看是否安装了cuda:

nvcc -V

输入nvcc-V后,若显示:Command 'nvcc' not found, but can be installed with:sudo apt install nvidia-cuda-toolkit, 注意:千万不能使用sudo apt install nvidia-cuda-toolkit。

查看CUDA的位置:cd /usr/local,如果该目录下有CUDA文件夹或软链,表示已经安装了cuda,只需要添加cuda相关的环境变量即可。

打开、编辑环境变量的配置文件:

vim ~/.bashrc 

在文件末尾添加:

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

然后按:wq保存退出编辑模式。

刷新~/.bashrc文件使其生效:

source ~/.bashrc

重新使用nvcc命令查看CUDA版本:nvcc -V。

安装cuda的步骤

点击网址 https://developer.nvidia.com/cuda-toolkit-archive ,选择需要的CUDA下载。选择runfile(local),并使用生成的指令进行下载和安装。

wget https://developer.download.nvidia.com/compute/cuda/11.1.1/local_installers/cuda_11.1.1_455.32.00_linux.run
sudo sh cuda_11.1.1_455.32.00_linux.run

若第1步提示Existing package manager installation of the driver found. It is strongly recommended that you remove this before continuing.选择continue,在下一步中点击回车键去除driver项,之后选择install。

安装完成后,显示如下:

在~/.bashrc文件中添加如下环境变量:

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

验证是否安装成功:

nvcc -V

完毕!!!

文章到此就结束了,下篇文章将的的如何安装cuda对应版本的cudnn,因为安装cudnn适合99%的linux系统,所以单独拿出来讲解,cudnn详细安装讲解请看下篇文章: Linux系统配置深度学习环境之cudnn安装

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu系统配置深度学习环境之nvidia显卡驱动和cuda安装 的相关文章

  • 在本地主机上使用相同的 IP 和端口创建套接字

    我在 Linux 上看到奇怪的行为 我看到远程端和本地端都显示相同的 IP 和端口组合 以下是 netstat 输出 netstat anp 网络统计grep 6102 tcp 0 0 139 185 44 123 61020 0 0 0
  • 所有 CopyConstructible 类型都是 MoveConstructible 类型吗?

    根据工作草案 N3337 与已发布的 ISOC 11 标准最相似的草案 和cppreference com http en cppreference com w cpp concept CopyConstructible 答案是肯定的 N3
  • 在ubuntu中打开spyder

    我想在ubuntu中打开spyder Python IDE 通常我会在 shell 中编写 spyder 它会打开spyder IDE 现在 当我在shell中编写spyder时 它只是换行 什么也没有发生 类似于按 enter 我如何找回
  • 更新Linux中的包含路径

    我的 my path to file 文件夹中有几个头文件 我知道如何将这些文件包含在新的 C 程序中 但每次我都需要在包含它之前输入头文件的完整路径 我可以在linux中设置一些路径变量 以便它自动查找头文件吗 您可以创建一个 makef
  • Bash:将字符串添加到文件末尾而不换行

    如何将字符串添加到文件末尾而不换行 例如 如果我使用 gt gt 它将添加到文件末尾并换行 cat list txt yourText1 root host 37 echo yourText2 gt gt list txt root hos
  • Docker忽略limits.conf(试图解决“打开文件太多”错误)

    我正在运行一个 Web 服务器 该服务器正在处理数千个并发 Web 套接字连接 为了实现这一点 在 Debian linux 我的基本镜像是 google debian wheezy 在 GCE 上运行 上 打开文件的默认数量设置为 100
  • “git add”返回“致命:外部存储库”错误

    我刚刚进入 git 的奇妙世界 我必须提交我对程序所做的一系列更改 位于名为的目录中 var www myapp 我创建了一个新目录 home mylogin gitclone 从这个目录中 我做了一个git clone针对公共回购 我能够
  • nginx + WordPress:SFTP + 自动更新的适当用户/文件权限?

    I used this http wordimpress com aws ec2 rds s3 cloudfront nginx wordpress tutorial roundup 在 Ubuntu VPS 上安装 nginx 和 Wor
  • 在 x86 汇编语言中获取文件大小的简单方法

    假设我已经在汇编中打开了一个文件 并且在寄存器 eax 中有该文件的文件句柄 我将如何获取文件的大小 以便为其分配足够的缓冲区空间 我在这里研究了另一个讨论 建议使用sys fstat 28 系统调用来获取文件统计信息但无法实现它 My a
  • 如何并行执行4个shell脚本,我不能使用GNU并行?

    我有4个shell脚本dog sh bird sh cow sh和fox sh 每个文件使用 xargs 并行执行 4 个 wget 来派生一个单独的进程 现在我希望这些脚本本身能够并行执行 由于某些我不知道的可移植性原因 我无法使用 GN
  • 查看graphml文件

    我最近发现了一个 graphml 文件 但不知道如何从命令行打开它 我需要安装一些东西才能在 ubuntu 中从命令行查看此类文件吗 我尝试谷歌但找不到与此主题相关的任何结果 Graphml 是标准文件格式图表 yED 编辑器 http w
  • 为 Linux 编译 Objective-C 应用程序(API 覆盖范围)

    我可能在这里问一些奇怪的问题 但我不确定从哪里开始 问题是我正在考虑使用 Obj C 和 Foundation 类在 Mac 上编写一个命令行工具 但存在一个非常大的风险 那就是我希望能够为不同的 Linux 发行版编译它 以便将来作为服务
  • Linux无法删除文件

    当我找到文件时 我在删除它们时遇到问题 任务 必须找到带有空格的文件并将其删除 我的尝试 rm find L root grep i 但我有错误 rm cannot remove root test No such file or dire
  • grep 排除文件的数组参数

    我想从我的文件中排除一些文件grep命令 为此我使用参数 exclude excluded file ext 为了更容易阅读 我想使用包含排除文件的 bash 数组 EXCLUDED FILES excluded file ext 然后将
  • docker repo 解决映像构建期间的错误错误(检查存储库文件)

    我在构建 docker 映像时遇到问题 并尝试了不同的 DNS 选项 但似乎运气不佳 Docker版本1 9 1 构建a34a1d5 回购还活着 为了运行我使用的容器docker run dns 192 168 1 1 d ti name
  • ioctl 命令的用户权限检查

    我正在实现 char 驱动程序 Linux 并且我的驱动程序中有某些 IOCTL 命令仅需要由 ADMIN 执行 我的问题是如何在 ioctl 命令实现下检查用户权限并限制非特权用户访问 IOCTL 您可以使用bool capable in
  • 在内核代码中查找函数的最佳方法[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我开始浏览内核代码 遇到的一件事是如何跟踪函数调用 结构定义等 有没有一种好的方法可以快速跳转到函数定义并退出 我尝试过 Source N
  • 找不到包“gdk-pixbuf-2.0”

    我正在尝试在 Amazon Linux 发行版实例上构建 librsvg 我已经通过 yum 安装了大部分依赖项 其中一些在实例上启用的默认 yum 存储库中不可用 因此必须从头开始构建它们 我已经走了很远 但还停留在最后一点 跑步时sud
  • 为什么 Linux 原始套接字的 RX 环大小限制为 4GB?

    背景 我试图mmap 我的原始套接字的 RX 环形缓冲区64 bitLinux 应用程序 我的环由 4096 个块组成 每个块大小为 1MB 总共 4GB 请注意 每个 1MB 块中可以有许多帧 如果您好奇 请参阅此文档了解背景信息 htt
  • 创建反应应用程序:npm 错误!解析“...”附近时 JSON 输入意外结束

    描述错误 npx create react app my app不适合我 我试过npm cache clean force但我一次又一次地遇到同样的错误 重现步骤 npm cache clean force npm npx create r

随机推荐