nvidia-smi nvcc -V 及 CUDA、cuDNN 安装

nvidia-smi nvcc -V 及 CUDA、cuDNN 安装

  • 1. 问题缘由
  • 2. 分析
  • 3. CUDA Driver API 安装
    • 3.1 Software & Updates
    • 3.2 官网下载
  • 4. CUDA Runtime API 安装
  • 5. 安装 cuDNN
    • 5.1 cuDNN下载
  • 6. 一点点小注意事项

1. 问题缘由

之前查找 CUDA 版本时都是直接使用的 nvidia-smi 指令,可以看到当前的 CUDA 版本是 12.0。
在这里插入图片描述

这时在使用 PyTorch 的时候,默认安装的与该 CUDA 相同版本的 PyTorch。

但是后面在编译程序的时候,问题就出现了程序内会报 CUDA_TOOLKIT_ROOT_DIR not found or specified 的错误,有些摸不着头脑。

然后就发现使用 nvcc-V 命令查看的时候,是找不到 CUDA 的。
在这里插入图片描述

2. 分析

这是因为 CUDA 有两种 API:运行时的 API 和驱动 API,即所谓的 Runtime API 与 Driver API。nvidia-smi 的结果除了有 GPU 驱动版本型号,还有 CUDA Driver API 的型号,即上面的 12.0。

nvcc-V 的结果是对应 CUDA Runtime API。而这时的 CUDA Runtime API 还没有安装。

3. CUDA Driver API 安装

3.1 Software & Updates

如果想更新或安装 nvidia-smi 上的 CUDA 版本,最简单的方式是直接打开 Software & Updates,点击 Additional Drivers
在这里插入图片描述
选择一个驱动版本即可。

3.2 官网下载

在官网下载能看见更直观的 CUDA 版本:https://www.nvidia.cn/geforce/drivers/
在这里插入图片描述

选择对应的显卡款式安装即可。

4. CUDA Runtime API 安装

  1. 命令行键入 nvidia-smi 可以看到系统支持的最大CUDA版本,如果没有就不用管。因为上面截图过了这里就不放截图了。因为上面显示版本为 12.0,所以这里安装的 CUDA 最大版本应该是 12.0。
  2. 在英伟达官网找到想要安装的 CUDA 版本:https://developer.nvidia.com/cuda-11.1.0-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1804&target_type=runfilelocal

在这里插入图片描述

  1. 依照上面流程,输入:

    sudo sh cuda_11.1.0_455.23.05_linux.run

  2. 键入accept:
    在这里插入图片描述

  3. 注意,这个步骤如果前面安装了 Driver,即步骤1内显示了版本时,这里不要安装 Driver,否则这里的 CUDA 会安装失败;如果步骤1未安装,这里可以勾选。(这里我的.run软件不小心删了,拿的别人的,所以除了版本均一致)
    在这里插入图片描述

  4. 安装成功后,打开.bashrc 或 .zshrc,写入以下信息:

    export PATH=$PATH:/usr/local/cuda/bin
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
    export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
    
  5. 用 source 更新以下环境或重新打开一个终端,命令行输入 nvcc -V,显示下面内容就是成功了:
    在这里插入图片描述

5. 安装 cuDNN

5.1 cuDNN下载

  1. cuDNN 地址如下 https://developer.nvidia.com/rdp/cudnn-download,不过要注意的是,需要注册一个账号,才能进入下载界面,建议下载 tar 的:

在这里插入图片描述

  1. 详细的安装教程如下所示:https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html

  2. 解压 tar 后,使用以下指令将文件复制进 CUDA toolkit 目录:

    $ sudo cp cudnn--archive/include/cudnn.h /usr/local/cuda/include
    $ sudo cp -P cudnn--archive/lib/libcudnn /usr/local/cuda/lib64
    $ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

    这样就可以使用了。

6. 一点点小注意事项

在下载 PyTorch 时,这里的 Compute Platform 是运行的平台,这里是不包括 CUDA 安装的。
在这里插入图片描述

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

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

相关文章

OpenCV(十三):图像中绘制直线、圆形、椭圆形、矩形、多边形和文字

目录 1.绘制直线line() 2.绘制圆形circle() 3.绘制椭圆形ellipse() 4.绘制矩形rectangle() 5.绘制多边形 fillPoly() 6.绘制文字putText() 7.例子 1.绘制直线line() CV_EXPORTS_W void line(InputOutputArray img,Point pt1, Point pt2,const Scalar& color,int t…

2021年03月 C/C++(六级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C++编程(1~8级)全部真题・点这里 第1题:生日相同 2.0 在一个有180人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的名字,出生月日。试找出所有生日相同的学生。 时间限制:1000 内存限制:65536 输入 第一行为整数n,表示有n个学生,n ≤ 180。此后每行包…

论文阅读_扩散模型_DDPM

英文名称: Denoising Diffusion Probabilistic Models 中文名称: 去噪扩散概率模型 论文地址: http://arxiv.org/abs/2006.11239 代码地址1: https://github.com/hojonathanho/diffusion (论文对应代码 tensorflow) 代码地址2: https://github.com/AUTOM…

java八股文面试[数据库]——索引的基本原理、设计原则

索引的设计原则 索引覆盖是什么: 索引(在MySQL中也叫做“键(key)”) 是存储引擎用于快速找到记录的一种数据结构。这是索引的基本功能。 索引对于良好的性能非常关键。尤其是当表中的数据量越来越大时,索引…

【小沐学Unity3d】3ds Max 多维子材质编辑(Multi/Sub-object)

文章目录 1、简介2、精简材质编辑器2.1 先创建多维子材质,后指定它2.2 先指定标准材质,后自动创建多维子材质 3、Slate材质编辑器3.1 编辑器简介3.2 编辑器使用 结语 1、简介 多维子材质(Multi/Sub-object)是为一个模形&#xff0…

使用Vue3和Vite升级你的Vue2+Webpack项目

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

使用PAM保障开发运营安全

硬编码凭据和 DevOps 系统中缺乏凭据安全性是组织的巨大漏洞。以明文形式访问凭据的恶意内部人员可以在 IT 中建立和扩展其立足点 基础设施,构成巨大的数据被盗风险。 什么是PAM 特权访问管理 (PAM) 是指一组 IT 安全管理原则,可…

解决gitee仓库中 .git 文件夹过大的问题

最近,许多项目都迁移到gitee。使用的也越来越频繁,但是今天突然收到一个仓库爆满的提示。让我一脸懵逼。本文将详细为你解答,这种情况如何处理。 1、起因 我收到的报错如下: remote: Powered by GITEE.COM [GNK-6.4] remote: T…

RDMA性能优化经验浅谈

一、RDMA概述 首先我们介绍一下RDMA的一些核心概念,当然了,我并不打算写他的API以及调用方式,我们更多关注这些基础概念背后的硬件执行方式和原理,对于这些原理的理解是能够写出高性能RDMA程序的关键。 Memory Region RDMA的网…

在访问一个网页时弹出的浏览器窗口,如何用selenium 网页自动化解决?

相信大家在使用selenium做网页自动化时,会遇到如下这样的一个场景: 在你使用get访问某一个网址时,会在页面中弹出如上图所示的弹出框。 首先想到是利用Alert类来处理它。 然而,很不幸,Alert类处理的结果就是没有结果…

ModaHub魔搭社区:自动化机器学习神器Auto-Sklearn

Auto-Sklearn Auto-Sklearn是一个开源库,用于在 Python 中执行 AutoML。它利用流行的 Scikit-Learn 机器学习库进行数据转换和机器学习算法。 它是由Matthias Feurer等人开发的。并在他们 2015 年题为“efficient and robust automated machine learning 高效且稳健的自动…

YOLOv7框架解析

YOLOv7概念 YOLOv7是基于YOLO系列的目标检测算法,由Ultra-Light-Fast-Detection(ULFD)和Scaled-YOLOv4两种算法结合而来。它是一种高效、准确的目标检测算法,具有以下特点: 1. 高效:YOLOv7在保持准确率的…

说说TIME_WAIT和CLOSE_WAIT区别

分析&回答 TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不会被释放。网络服务器程序要同时管理大量连接&#xf…

MySQL索引和查询优化

文章目录 1.Mysql索引2. b- tree 与 b tree3.覆盖索引和回表查询4.查询优化1.Explain 5.优化实战举例**用户搜索****订单查询****分页查询** 1.Mysql索引 MySQL索引是一种用于提高数据库查询效率的数据结构。它可以加快数据检索的速度,减少查询所需的IO操作和计算…

leetcode 1365. 有多少小于当前数字的数字

2023.9.2 本题直观的解法就是双层for循环暴力求解&#xff1a; 暴力解&#xff1a; class Solution { public:vector<int> smallerNumbersThanCurrent(vector<int>& nums) {vector<int> ans;for(int i0; i<nums.size(); i){int temp 0;//比当前元素…

浅谈安防视频监控平台EasyCVR视频汇聚平台对于夏季可视化智能溺水安全告警平台的重要性

每年夏天都是溺水事故高发的时期&#xff0c;许多未成年人喜欢在有水源的地方嬉戏&#xff0c;这导致了悲剧的发生。常见的溺水事故发生地包括水库、水坑、池塘、河流、溪边和海边等场所。 为了加强溺水风险的提示和预警&#xff0c;完善各类安全防护设施&#xff0c;并及时发现…

解决 git clone 时出现Failed to connect to 127.0.0.1 port 1573问题

今天去拉一个仓库代码&#xff0c;往常都是一下就拉下来了&#xff0c;今天却报错&#xff0c;报错信息如下&#xff1a; 原因&#xff1a;这种情况是因为代理在git中配置的&#xff0c;但是本身环境就有SSL协议了&#xff0c;所以取消git的https或者http代理即可 方法如下&…

LeetCode-455-分发饼干-贪心算法

题目描述&#xff1a; 假设你是一位很棒的家长&#xff0c;想要给你的孩子们一些小饼干。但是&#xff0c;每个孩子最多只能给一块饼干。 对每个孩子 i&#xff0c;都有一个胃口值 g[i]&#xff0c;这是能让孩子们满足胃口的饼干的最小尺寸&#xff1b;并且每块饼干 j&#xff…

SpringBoot整合Redis使用

目录 1、redis介绍2、redis五种数据类型2.1 String&#xff08;字符串&#xff09;2.2 List&#xff08;列表&#xff09;2.3 Set&#xff08;集合&#xff09;元素唯一不重复2.3 Hash&#xff08;哈希&#xff09;2.4 zSet&#xff08;有序集合&#xff09; 3、SpringBoot整合…

Ros noetic 机器人坐标记录运动路径和发布 实战教程(A)

前言: 网上记录Path的写入文件看了一下还挺多的,有用yaml作为载体文件,也有用csv文件的路径信息,也有用txt来记录当前生成的路径信息,载体不重要,反正都是记录的方式,本文主要按yaml的方式写入,后文中将补全其余两种方式。 其中两种方式的主要区别在于,加载yaml所需要…