RTX3090(4090) 与pytorch版本对应关系

2023-11-02

在RTX 3090 上判断,当前版本的的torch版本是否可以用,一般需要通过如下方式:

  1. conda activate torch1.8.1 ( 激活相关的虚拟环境)
  2. python 进入python 环境, import torch 导入torch 安装包;
  3. 测试 torch.cuda.is_available(),
  4. 测试 torch.zeros(1).cuda()

直到,第四步骤完成,才能说明当前版本的cuda 可以调用当前版本的pytorch;

问题的关键点:

  1. 安装pytorch 过程中, 需要两个注意点, 一个是当前安装的pytorch 版本, 该pytroch 版本官网指定包含了哪几个cuda 版本;
  2. 使用pip install torch==1.8.1 的方式安装,默认的是torch 版本+ 当前主机上的cuda 版本
  3. 可能出现的问题, 当前主机的cuda 版本 不兼容该torch版本中官方发布的几个cuda 版本;

1. 问题现象

>>> torch.zeros(1).cuda()
/home/respecting/anaconda3/envs/torch1.8.1/lib/python3.7/site-packages/torch/cuda/__init__.py:104: UserWarning: 
NVIDIA GeForce RTX 3090 with CUDA capability sm_86 is not compatible with the current PyTorch installation.
The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_70.
If you want to use the NVIDIA GeForce RTX 3090 GPU with PyTorch, please check the instructions at https://pytorch.org/get-started/locally/

1.1 问题分析

表明当前的安装的pytorch 版本没有匹配上合适的cuda,  即当前pytorch 版本的 cuda 版本没有对应到自己主机上,安装的cuda 版本,

pytorch 环境中安装的cuda 版本, 需要满足以下两个条件:

  1. 当前pytorch版本的算力支持 当前机器上显卡的算力;
  2. pytorch  中的 cuda 版本 不能高于当前机器上已经安装的 cuda 版本;

具体讲来, 同一个pytorch 版本,比如 pytorch 1.8.1 会对应到不同版本的 cuda

# ROCM 4.0.1 (Linux only)
pip install torch==1.8.1+rocm4.0.1 torchvision==0.9.1+rocm4.0.1 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

# ROCM 3.10 (Linux only)
pip install torch==1.8.1+rocm3.10 torchvision==0.9.1+rocm3.10 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

# CUDA 11.1
pip install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

# CUDA 10.2
pip install torch==1.8.1+cu102 torchvision==0.9.1+cu102 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

# CUDA 10.1
pip install torch==1.8.1+cu101 torchvision==0.9.1+cu101 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

# CPU only
pip install torch==1.8.1+cpu torchvision==0.9.1+cpu torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

1.2 解决问题

pytorch 环境中安装的cuda 版本, 需要满足以下两个条件:

  1. 当前pytorch版本的算力支持 当前机器上显卡的算力;
  2. pytorch 中的 cuda 版本不能高于当前机器上已经安装的 cuda 版本;

知道了问题的原因之后, 我们便可以解决了:

  1. RTX3090 至少需要cuda 11.1 版本,才能够驱动该设备, 故我们可以安装cuda11.1 以上版本
  2. 所以在想要安装的 pytorch 版本中,找到大于  cuda11.1 <= pytorch-cuda --version <=  当前机器上安装的 cuda --version

由于笔者机器上安装的是 cuda11.2 , 而3090对应的cuda 版本必须大于等于cuda11.1,
故安装pytorch 1.8.1 中的 cuda11.1 版本,  卸载重新安装对应版本;

 pip install -i https://pypi.douban.com/simple torch-1.8.1+cu111-cp37-cp37m-linux_x86_64.whl 
Looking in indexes: https://pypi.douban.com/simple
Processing ./torch-1.8.1+cu111-cp37-cp37m-linux_x86_64.whl
Requirement already satisfied: numpy in /home/respecting/anaconda3/envs/torch1.8.1/lib/python3.7/site-packages (from torch==1.8.1+cu111) (1.21.6)
Requirement already satisfied: typing-extensions in /home/respecting/anaconda3/envs/torch1.8.1/lib/python3.7/site-packages (from torch==1.8.1+cu111) (4.2.0)
Installing collected packages: torch
  Attempting uninstall: torch
    Found existing installation: torch 1.8.1
    Uninstalling torch-1.8.1:
      Successfully uninstalled torch-1.8.1
Successfully installed torch-1.8.1+cu111

torchvision install

(torch1.8.1) respecting@respecting-B360M-GAMING-HD:/media/respecting/Ubuntu 18.0/June18$  pip install -i https://pypi.douban.com/simple torch-1.8.1+cu111-cp37-cp37m-linux_x86_64.whl 
Looking in indexes: https://pypi.douban.com/simple
Processing ./torch-1.8.1+cu111-cp37-cp37m-linux_x86_64.whl
Requirement already satisfied: numpy in /home/respecting/anaconda3/envs/torch1.8.1/lib/python3.7/site-packages (from torch==1.8.1+cu111) (1.21.6)
Requirement already satisfied: typing-extensions in /home/respecting/anaconda3/envs/torch1.8.1/lib/python3.7/site-packages (from torch==1.8.1+cu111) (4.2.0)
Installing collected packages: torch
  Attempting uninstall: torch
    Found existing installation: torch 1.8.1
    Uninstalling torch-1.8.1:
      Successfully uninstalled torch-1.8.1
Successfully installed torch-1.8.1+cu111

1.2 重新测试

(torch1.8.1) respecting@respecting-B360M-GAMING-HD:~$ python
Python 3.7.13 (default, Mar 29 2022, 02:18:16) 
[GCC 7.5.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.zeros(1).cuda()
tensor([0.], device='cuda:0')
>>> 

3090Ti 系列 nvidia 显卡驱动

Version:	515.57
Release Date:	2022.6.28
Operating System:	Linux 64-bit
Language:	English (US)
File Size:	346.53 MB

2. 4090 GPU 与cuda 之间版本匹配

这里给出,GPU 与 cuda, cudnn 之间的关系,

具体的环境的搭建参考这里,
安装步骤

2.1GPU 与 cuda, cudnn 之间的关系

https://docs.nvidia.com/deeplearning/cudnn/support-matrix/index.html#fntarg_4

在这里插入图片描述

从这里可以看出:官方已经规定了 基于 Ada Lovelace 的 4090 显卡, 要求cuda >= 11.8

而截至到 2023. 06.10 , Pytorch=2.0.1 官方版本最高支持到 cuda 11.8。
在这里插入图片描述

2.2cuda, cudnn 之间的关系

Collecting nvidia-cuda-cupti-cu11==11.7.101
  Downloading https://pypi.doubanio.com/packages/e6/9d/dd0cdcd800e642e3c82ee3b5987c751afd4f3fb9cc2752517f42c3bc6e49/nvidia_cuda_cupti_cu11-11.7.101-py3-none-manylinux1_x86_64.whl (11.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.8/11.8 MB 1.2 MB/s eta 0:00:00
INFO: pip is looking at multiple versions of <Python from Requires-Python> to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of torch to determine which version is compatible with other requirements. This could take a while.
ERROR: Cannot install torch==2.0.0 and torchvision==0.15.0 because these package versions have conflicting dependencies.

The conflict is caused by:
    The user requested torch==2.0.0
    torchvision 0.15.0 depends on torch==2.0.0+cu117

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RTX3090(4090) 与pytorch版本对应关系 的相关文章

  • Redhat Enterprise Linux 9安装配置图解教程

    2022 年 5 月 18 日 IBM 收购的红帽公司宣布推出红帽企业 Linux 9 RHEL 9 这是世界领先的企业 Linux 平台的最新版本 RHEL 9 为支持混合云创新提供了更灵活 更稳定的基础 并为跨物理 虚拟 私有和公共云和
  • workman 日志_workerman

    下载 手册参考 http doc3 workerman net 一 WorkerMan代码规范 1 类采用首字母大写的驼峰式命名 类文件名称必须与文件内部类名相同 以便自动加载 2 使用命名空间 命名空间名字与目录路径对应 并以开发者的项目
  • Java架构直通车——Redis的PF实现原理:HyperLogLog

    文章目录 引入 什么是基数统计 基数统计的常用方法 HyperLogLog原理 再近一步 分桶平均 更近一步 真实的HyperLogLog 引入 之前的文章Java架构直通车 点赞功能用Mysql还是Redis 一文中 我们介绍了分别从my
  • Java处理Excel

    1 引言 Excel是我们平时工作中比较常用的用于存储二维表数据的 Java中有两种常用的方法操作Excel jxl和poi 其中 在小数据量时jxl快于poi 在大数据量时poi要快于jxl 但差距都不明显 本文使用poi进行处理Exce
  • thinkPHP6.0入门笔记(四)——删除和修改用户信息

    thinkPHP6 0实现删除和修改用户信息 1 删除用户信息 2 优化bootstrap资源引入方式 3 浏览器的cookie与session机制 4 token令牌原理 5 利用token防止表单重复提交 6 同步表单数据库修改 参考文
  • 盘点国内10家互联网AI大模型

    ChatGPT在国内掀起热潮后 中国的生成式AI技术也迎来了蓬勃发展 中国国产AI模型的前景非常广阔 尤其是在中国国家战略的推动下 人工智能领域正在迅速发展 中国的公司和研究机构都在积极进行研发 并取得了一些重大进展 下面我们来看一下已经开
  • spark-2.2.0安装和部署——Spark集群学习日记

    前言 在安装后hadoop之后 接下来需要安装的就是Spark scala 2 11 7下载与安装 具体步骤参见上一篇博文 Spark下载 为了方便 我直接是进入到了 usr local文件夹下面进行下载spark 2 2 0 wget h
  • 【ffmpeg + VS2010】编译包含libavutil\common.h后出现找不到inttypes.h的问题

    包含libavutil common h 由于里面 include
  • 正则表达式(Regular Expressions)

    1 至少8个字符 8 2 URL http w w w URL 2 a zA z w w w w S 3 E Mail w w w w w w E Mail 2 w w w E Mail 3 w w w w 4 非负整数 正整数 0 d 5
  • 【设计】LDO

    参考 设计 低压差稳压器 LDO 的设计分析 对于误差放大器 当没有输出电容 为寄生电容的时候 输出的误差放大器为高频极点 而LDO的输出极点为环路的主极点 LDO输出极点随负载电流变化而变化 当负载电流变小 RL增大 Ppow的输出极点也
  • RPC调用的流程

    RPC调用的流程 要让网络通信细节对使用者透明 我们自然需要对通信细节进行封装 我们先看下一个RPC调用的流程
  • 【svelte】A11y: <div> with click handler must have an ARIA role;A11y: non-interactive elements

    问题描述 svelte项目跑起来的时候 控制台打印以下警告 vite plugin svelte src routes page svelte 50 8 A11y visible non interactive elements with
  • Servlet文件上传

    1 创建upload html文件为了提交上传表单
  • matlab 和 excel 数据的导入导出

    1 将excel中的数据导入到matlab中 将excel中 的数据导入到matlab中采用matlab库函数xlsread 1 C xlsread filename xls 2 C xlsread filename xls range 表
  • import java util_java里面import java.util.*;是什么用处?

    展开全部 import java util 导入32313133353236313431303231363533e78988e69d8331333366303064 java util包中的类接口 Java中import的作用是导入要用到的
  • 实验——田忌赛马c++

    故事概述 孙膑先以下等马对齐威王的上等马 第一局田忌输了 接着进行第二场比赛 孙膑拿上等马对齐威王的中等马 获胜了一局 第三局比赛 孙膑拿中等马对齐威王的下等马 又战胜了一局 比赛的结果是三局两胜 田忌赢了齐威王 还是同样的马匹 由于调换一
  • grep高级用法shell

    一 grep命令的基本概念和用途 grep命令是linux中一种强大的文本搜索工具 它能使用正则表达式搜索文本 并把匹配的行打印出来 在一个或多个文件中搜素字符串模式 如果字符串模式包括空格 也必须被引用 模式后的所有字符串被看作文件名 搜
  • 在头文件中加入#program once

    在头文件中加入 program once 可以解决头文件被重复引用的问题 例 error C2143 语法错误 缺少 在 的前面 error C4430 缺少类型说明符 假定为 int 注意 C 不支持默认 int error C4430
  • 中国汽车工业的发展道路

    中国汽车工业的发展道路 回顾与展望 合作与自主问题 1 中国汽车工业发展的背景与回顾 1 1 认识汽车工业 汽车是惟一的一种 零件以万计 产量以百万计 保有量以亿计 的 第一商品 它的巨大市场潜力 不断产生着科技进步的不竭动力 使它成为各种

随机推荐

  • Kotlin中take、drop方法使用

    1 take方法 private fun take val mList mutableListOf 1 2 3 4 5 6 7 8 9 0 take函数是根据传入的参数挑出该集合 前n个元素 的子集合 val mNewList1 mList
  • 全文搜索引擎,索引库

    全文搜索引擎的工作原理理论上很简单 关键技术就是 分词 索引库 使用分词技术把 文档数据 按分词拆分 也就是一个文档拆分为多个分词 一条普通数据拆分为多个词的索引数据 这个结构就形成了 索引库 索引库存储的数据就叫索引 索引数据 所以当普通
  • 全国计算机等级考试题库二级C操作题100套(第68套)

    第68套 给定程序中 函数fun的功能是 求ss所指字符串数组中长度最长的字符串所 在的行下标 作为函数值返回 并把其串长放在形参n所指变量中 ss所指字符串数组中共有M个字符串 且串长
  • Esxi下通过虚拟文件安装lede系统(一分钟搞定)

    Esxi下通过虚拟文件安装lede系统 一分钟搞定 安装环境esxi6 7 已经提供的LEDE相关文件 安装说明 安装下面提供的图片依次设置即可 1 登录esxi 选择存储 选择数据存储浏览器 2 设置目录名称 3 安装下图将文件依次上载
  • 用 Github Codespaces 免费搭建本地开发测试环境

    如何丝滑地白嫖一个本地开发环境 怎么新建一个代码空间 1 通过Github网页新建 2 通过VSCode插件新建 为代码创建相应的开发测试环境 如何丝滑地白嫖一个本地开发环境 使用Codespaces为开发者解决这样的痛点 为项目设置和维护
  • 搞懂Mybatis逆向⼯程这一篇就够了

    Mybatis逆向 程配置与 成 使用基础版本 前置准备 项目结构 导入依赖 配置generatorConfig xml 数据库表 使用逆向工程 点击插件使用 双击之后效果 UserMapper xml的内容 UserMapper接口的内容
  • 西门子PLC各类通信协议差异对比

    西门子PLC有4大类 几十个型号类型 PLC不同所支持的通讯协议也不相同 S7 200系列支持的协议有 PPI MPI PROFIBUS 以太网 S7协议 AS INTERFACE USS MODBUS 自由口 S7 300 400系列支持
  • 人工智能在线特征系统中的数据存取技术

    主流互联网产品中 不论是经典的计算广告 搜索 推荐 还是垂直领域的路径规划 司机派单 物料智能设计 建立在人工智能技术之上的策略系统已经深入到了产品功能的方方面面 相应的 每一个策略系统都离不开大量的在线特征 来支撑模型算法或人工规则对请求
  • linux 文件句柄数查看命令

    当你的服务器在大并发达到极限时 就会报出 too many open files 查看线程占句柄数 ulimit a 输出如下 core file size blocks c 0 data seg size kbytes d unlimit
  • 微服务知识点整理

    1 Spring Cloud Netflix和Spring Cloud Alibaba包括哪些组件 Spring Cloud Netflix 主要由 Eureka Ribbon Feign Hystrix Zuul Gateway Conf
  • map的内存释放

    map在erase和clear后是否会马上释放内存 参考链接 关于c 中map的内存占用问题 原文 原文提到map在erase和clear后不会立马释放内存 而是采用类似内存池的机制 对申请的内存进行 预留 在一段时间内不使用才会予以 释放
  • AndroidUI-约束布局ConstrainLayout

    参考资料 约束布局ConstraintLayout看这一篇就够了 https www jianshu com p 17ec9bd6ca8a 约束布局ConstrainLayout 约束布局的出现主要是为了解决试图层级嵌套过多的情况 它可以在
  • Android 加解密类Cipher

    近日在做一个关于短信及文件加解密的小项目 查看了一些Android加解密方面的知识 关于加解密这部分以前完全没有接触过 所以网上乱翻了一天对于什么DES AES RSA BASE64 MD5之类的还是懵懵懂懂 这里也就不再来说它们的原理了
  • layui的穿梭框

    首先引入CSS样式和Jquery Layui插件 Html部分只有一个fieldast标签和一个设置了ID的div标签 Jq部分直接开启layui中的渲染 然后设置属性值 最主要的是elem属性 输入ID值对当前ID的div进行渲染 最后设
  • 42 最佳实践-性能最佳实践-halt-polling

    文章目录 42 最佳实践 性能最佳实践 halt polling 42 1 概述 42 2 操作指导 42 最佳实践 性能最佳实践 halt polling 42 1 概述 在计算资源充足的情况下 为使虚拟机获得接近物理机的性能 可以使用h
  • 使用Formail发送html格式的中文主题邮件,解决乱码问题等

    查了很多资料都没有很好的解决发送中文主题的html格式的邮件 要解决的乱码问题 经过摸索 最后终于搞定 且可使用shell脚本 实现多收件人发送相对比较简单 使用formail发送html格式的邮件 邮件正文内容为html的网页内容 支持更
  • docker平台中常用的镜像,容器,和数据卷操作指令

    docker平台中常用的镜像 容器 和数据卷操作指令 卸载Docker sudo yum remove docker ce docker ce client docker client latest docker common docker
  • 对于glm模型summary()输出的汇总结果

    对于glm模型summary 输出的汇总结果 如何解读是非常重要的 它直接影响得出的结论 例如下面这样一个输出结果 该如何理解呢 Call glm formula bl I family gaussian data anaData Devi
  • 想入门自学编程,应该怎么开始?

    自学编程学习方法永远都不是重点 学习方法 学习路线基本千篇一律 大同小异 每个人或多或少都能总结几条 但是自学者的心里建设谁去指导 如果一个人没有实践过的真实自学编程经历 自学的感受和经验是总结不出来的 私以为 感受和经验才是自学者关注的重
  • RTX3090(4090) 与pytorch版本对应关系

    在RTX 3090 上判断 当前版本的的torch版本是否可以用 一般需要通过如下方式 conda activate torch1 8 1 激活相关的虚拟环境 python 进入python 环境 import torch 导入torch