1. 系统的Nvidia Driver决定着系统最高可以支持什么版本的cuda和cudatoolkit,Nvidia Driver是向下兼容的(数据可能会更新,请查看:Release Notes :: CUDA Toolkit Documentation (nvidia.com)):
  2. 使用nvidia-smi指令查看Nvidia Driver的版本:(由下图可知我的版本是470.82.00,所以应该对应11.4版本)
  3. cuda和cudatoolkit不同,前者说的是系统安装的cuda,它是由Nvidia官方提供的(/usr/local/cuda就是系统安装的cuda的软链接),这与我们要安装的pytorch几乎没有什么关系。后者是anaconda官方提供的用来build pytorch的一个工具包,它是Nvidia所提供的cuda的一个子集。
  4. pytorch相关:
    1. pytorch和cudatoolkit版本并不是一一对应的关系,一个pytorch版本可以有多个cudatoolkit版本与之对应。例如1.5.1版本的pytorch,既可以使用9.2版本的cudatoolkit,也可以使用10.2版本的cudatoolkit。
    2. 只指定pytorch版本来安装不一定是能work的,例如执行conda install pytorch=X.X.X -c pytorch时,conda会自动为你选择合适版本的cudatoolkit。但conda只能保证你的pytorch和cudatoolkit版本一定是对应的,但并不能保证pytorch可以正常使用,因为系统的Nvidia Driver有可能不支持你所安装的cudatoolkit版本。
    3. 除非你对你的Nvidia driver版本很有自信,否则,还是先查看系统Nvidia Driver的版本,并在上方图表中查询最高支持的cudatoolkit版本,然后指定cudatoolkit版本来安装pytorch吧。例如系统的Nvidia Driver版本为470.82.00,查询到最高支持cudatoolkit版本为11.4,则可以使用
      pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu114

      命令安装pytorch。

  5. 下载cuda toolkit的官网网址:https://developer.nvidia.com/cuda-downloads
  6. cuda版本: 
    1. 查看cuda版本(取决于路径中包含什么):

      1. 输出当前的默认路径,如果CUDA安装没问题的话,会看到类似cuda/bin的路径
      2. 或者直接打开配置文件查看:
        vi .bashrc
      3. 使用指令查看软连接(即真正的cuda目录):
        1. 如果电脑里有多个CUDA(比如上图中我就有10.2和11.8两个版本),哪个路径在系统默认路径,哪个就是当前在使用的版本。默认路径就是输入命令后,系统去哪里找要执行的东西。
      4. 快速查看的方法:
        nvcc -V

    2. nvidia-smi的cuda版本大于等于你要安装的cuda版本就不会出问题,且你的实际cuda版本以nvcc为准。
    3. 切换CUDA版本实际上就是修改路径中的CUDA目录。
    4. CUDA在大版本下向下兼容。比如装了CUDA11.5,它支持CUDA11.0-CUDA11.5的环境,但不支持CUDA10.2。所以选版本的时候直接选符合要求的大版本的最新版就行,比如10.2, 11.6。(所以虽然有序列表我的机器实际需要的是11.4,但目前实际是11.8也是可以的)
    5. 30系不支持直接使用CUDA10
    6. 更改cuda版本后nvcc -V依然显示更改前的版本解决办法:该环境变量,还是一样的,实际cuda以环境变量路径为准。
    7. nvidia-smi和nvcc --version出来的版本不一致:
      1. 这主要是因为,CUDA有两个主要的API:runtime(运行时) APIdriver API。
      2. 根据runtime cuda版本选择tf/torch/dgl等对应的cuda版本,即以nvcc -v 得到的版本为准

#---------------------------12.3 补充一些笔记------------------------------------------------------------------------

  1. nvidia官方提供的 CUDA Toolkit 是一个完整的工具安装包,其中提供了 Nvidia 驱动程序、开发 CUDA 程序相关的开发工具包等可供安装的选项。使用 Nvidia 官网提供的 CUDA Toolkit 可以安装开发 CUDA 程序所需的工具,包括 CUDA 程序的编译器、IDE、调试器等,CUDA 程序所对应的各式库文件以及它们的头文件。

  2. Nvidia 官方提供安装的 CUDA Toolkit 包含了进行 CUDA 相关程序开发的编译、调试等过程相关的所有组件。但对于 Pytorch 之类的深度学习框架而言,其在大多数需要使用 GPU 的情况中只需要使用 CUDA 的动态链接库支持程序的运行( Pytorch 本身与 CUDA 相关的部分是提前编译好的 ),就像常见的可执行程序一样,不需要重新进行编译过程,只需要其所依赖的动态链接库存在即可正常运行。

  3. 所以安装pytorch时自动安装的cudatoolkit,主要包含的是应用程序在使用 CUDA 相关的功能时所依赖的动态链接库。在安装了 cudatoolkit 后,只要系统上存在与当前的 cudatoolkit 所兼容的 Nvidia 驱动,则已经编译好的 CUDA 相关的程序就可以直接运行,而不需要安装完整的 Nvidia 官方提供的 CUDA Toolkit .

  4. 每个版本的CUDA Toolkit 都对应一个最低版本的显卡驱动版本(CUDA Driver)

  5. CUDA 有两种API,分别是运行时API和驱动API,即所谓的 Runtime API 与 Driver API。
    nvidia-smi是 CUDA Driver API(驱动API)的版本,而nvcc的结果是对应 CUDA Runtime API(运行API)的版本。

cuda,显卡,pytorch三者配置相关知识--学习笔记相关推荐

  1. 【JavaScript】相关知识学习笔记

    JavaScript笔记 定义: ​ JavaScript是一种基于对象和事件驱动的,并具有安全性能的脚本语言. 特点: ​ 01.向HTML页面中添加交互行为 ​ 02.脚本语言,语法跟java类似 ...

  2. PE结构、SEH相关知识学习笔记

    原文:http://www.pediy.com/kssd/index.html -- 病毒技术 -- 病毒知识 -- Anti Virus专题 PE结构的学习 原文中用fasm自己构造了一个pe,这里 ...

  3. 云网络相关知识学习列表

    网络相关知识学习列表 介绍 学习计算机网络相关知识的的技术文档 基础知识 1. 包括TCP/IP知识点 2. UDP协议 3. leaf-spine架构 4. IPv6 5. 大二层网络 6. VLA ...

  4. K8s基础知识学习笔记及部分源码剖析

    K8s基础知识学习笔记及部分源码剖析 在学习b站黑马k8s视频资料的基础上,查阅了配套基础知识笔记和源码剖析,仅作个人学习和回顾使用. 参考资料: 概念 | Kubernetes 四层.七层负载均衡的 ...

  5. opencv-python基础知识学习笔记

    opencv-python基础知识学习笔记 原博地址:https://www.cnblogs.com/silence-cho/p/10926248.html 目录: opencv-python基础知识 ...

  6. 图像基础知识学习笔记

    图像基础知识学习笔记 文章目录 图像基础知识学习笔记 前言 一.图像基础知识相关笔记 1.光学系统影响图像的结构主要包括什么? 2.常见噪声都有什么,其分类,及特点? 3.光圈,快门,景深? 4. I ...

  7. 网络基础知识学习笔记

    网络基础知识学习笔记 参考菜鸟教程.个人学习整理,仅供参考.三年前学过,三年没用忘了,重新学习整理一下. 文章目录 网络基础知识学习笔记 OSI七层网络模型 IP地址 子网掩码及网络划分 网络协议 A ...

  8. 伯禹公益AI《动手学深度学习PyTorch版》Task 04 学习笔记

    伯禹公益AI<动手学深度学习PyTorch版>Task 04 学习笔记 Task 04:机器翻译及相关技术:注意力机制与Seq2seq模型:Transformer 微信昵称:WarmIce ...

  9. 多项式相关操作学习笔记

    多项式相关操作学习笔记 标签: 多项式 说在前边 记录一下相关的多项式操作,顺便存个模板.(多点求值之后的部分,有点写不动了...留坑留坑 多项式 定义 给定一个环\(R\)(\(R\)通常是交换环, ...

最新文章

  1. 成人短信11条,全看懂的是超级色狼
  2. 结合实例讲解广域网路由基本技术
  3. jQuery获取元素
  4. nginx 目录讲解
  5. Jenkins 关闭和重启实现方式.
  6. 34. 在排序数组中查找元素的第一个和最后一个位置012(二分查找+思路+详解+两种方法)Come Baby!!!!!!!! !
  7. 在云服务器搭建WordPress博客(六)发布和管理文章
  8. 重启开源,分享无限--微软面试187题精选
  9. PHP被浏览器解释成注释,HTML+CSS入门 在HTML中嵌入的php代码会被浏览器注释掉如何解决...
  10. ABI (应用程序二进制接口)
  11. git tag怎么使用_这才是真正的Git——Git内部原理揭秘
  12. Informatic中如何设置每月初,和每周五、周六跑批
  13. OA办公系统免费版评测 哪个适合自己?
  14. java字符串的长度_java中如何统计一个字符串的长度
  15. 【Regular正则表达式】正则表达式学习
  16. 福岛邦彦在多少年创立了卷积神经网络
  17. 计算机领域中dns是什么意思,dns错误是什么意思?dns错误要如何解决?
  18. 我真的不懂微信营销(一)
  19. 设计模式 - 抽象工厂模式(abstract factory pattern) 详解
  20. varnish 高性能加速器

热门文章

  1. amazon - amzreport 之 amazon report list
  2. 你的可视化项目需要一张3D地图吗?这里有多种风格的炫酷三维地图一键下载即可开始使用
  3. 在BIOS中设置U盘启动
  4. 轻量级rpc框架Hessian
  5. jQuery(一)jQuery的认识和使用
  6. 什么是共享办公室,你想知道的都在这
  7. 奥利给 之 【优学院自定义速度】
  8. Unity 报错之 ToLua打包:Unable to find tolua DllNotFoundException: tolua
  9. VB中的IIF() 函数
  10. 2021年材料员-通用基础(材料员)考试试题及材料员-通用基础(材料员)作业模拟考试