当前位置: 首页 > ai >正文

解决低版本CUDA与PyTorch之间的兼容性问题

一.查看CUDA驱动版本

nvidia-smi.exe 通常位于 C:\Windows\System32 目录下。这个目录默认就在系统路径中,如果普通路径无法识别该命令,就去C:\Windows\System32路径,这里以下面这个截图举例说明。

在pytorch集成环境中执行,torch.cuda.is_available()返回为fasle。

nvidia-smi 输出信息中,我们可以非常清晰地定位到问题所在。

核心问题:该驱动和CUDA版本太旧了。

  • 驱动程序版本: 419.72 (发布于2019年左右)

  • 最高支持的CUDA版本: 10.1 (也是一个非常古老的版本)

而目前主流的 PyTorch 版本需要 CUDA 11.8CUDA 12.1。您的环境完全不兼容,因此 torch.cuda.is_available() 会返回 False

上面显示显卡 GeForce MX250 是支持更新版本的驱动和CUDA的。

二.通过NVIDIA App 自动更新(推荐)

这是最省心、推荐大多数用户使用的方法。NVIDIA App(GeForce Experience已被NVIDIA App取代) 专为 NVIDIA 显卡设计,能自动匹配并提供最适合你显卡和系统的最新驱动。

  1. 确保已安装 NVIDIA App:如果你尚未安装,可以从 NVIDIA 官网 下载并安装。

  2. 打开并登录:启动 NVIDIA App,并使用你的 NVIDIA 账户登录(如果没有,需要先注册一个),也可以不用登陆。

  3. 检查更新

    • 点击左上角的 驱动程序 选项卡。

    • 软件会自动检测你的显卡型号和当前驱动版本。

    • 如果发现有新的驱动可用(例如 5xx.xx 版本),它会显示 下载 按钮。

  4. 选择安装方式

    • 快速安装:一键式安装,所有选项均采用默认设置,适合大多数用户。

    • 自定义安装:你可以选择执行清洁安装(这相当于在安装新驱动前先卸载旧驱动,有助于减少冲突,但比重装系统轻量很多)1。

  5. 完成安装:点击安装后,按照屏幕提示操作即可。安装完成后通常需要重启电脑

💡 提示:使用 NVIDIA App或官网下载时,如果遇到网络不稳定、下载速度慢或中断的情况,可以尝试使用网络加速器(如 UU 加速器)来优化连接,提升下载体验

三.安装兼容的PyTorch版本

已经成功将NVIDIA驱动程序更新到了581.15,并且 nvidia-smi 显示的CUDA版本也更新到了13.0,这是一个很大的进展!不过 torch.cuda.is_available() 返回 False 的问题通常与PyTorch和CUDA版本之间的兼容性有关。

卸载与安装

pip方式(cmd终端)

pip uninstall torch torchvision torchaudio
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu130

conda方式(打开 Anaconda Prompt)

conda activate 你的环境
conda remove pytorch 
conda remove torchvision
conda remove  torchaudio 
conda remove  cudatoolkit
conda remove pytorch-cuda
conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.8 -c pytorch -c nvidia

四.验证

PyTorch集成环境run如下代码。

import torch
print(torch.__version__)  # 查看 PyTorch 版本
print(torch.version.cuda) # 查看 PyTorch 构建时使用的 CUDA 版本
print(torch.cuda.is_available())  # 最终目标:输出 True
# 如果输出 True,可以继续查看显卡信息
print(torch.cuda.get_device_name(0)) # 应输出 'NVIDIA GeForce MX250'

http://www.xdnf.cn/news/19128.html

相关文章:

  • leetcode643. 子数组最大平均数 I
  • ORM基础操作+路由系统
  • destoon8.0使用post插入keyword热搜到表
  • SQL注入6----(其他注入手法)
  • Spring和mybatis整合后事务拦截器TransactionInterceptor开启提交事务流程
  • 音视频学习(六十一):H265中的VPS
  • 本地部署 hello-algo 并实现外部访问
  • 趣味学RUST基础篇(结构体方法)
  • 吴恩达机器学习(四)
  • 在 MyBatis 中oracle基本数值类型的 JDBC 类型映射
  • Linux命令学习:make,make install,modprobe,lsmod
  • 鸿蒙服务端开发资料汇总
  • android adb调试 鸿蒙
  • 119、【OS】【Nuttx】【周边】效果呈现方案解析:变量展开
  • 计算机三级嵌入式填空题——真题库(26)原题附答案速记
  • components.d.ts声明组件类型的作用
  • RabbitMQ 和 Kafka
  • github同一台电脑支持两个或以上的ssh账户(macos或Linux系统),解决Key is already in use问题
  • 苍穹外卖Day7 | 缓存商品、购物车、SpringCache、缓存雪崩、缓存套餐
  • DVWA靶场通关笔记-CSRF(Impossible级别)
  • VMware 设置 Ubuntu 虚拟机桥接模式完整教程
  • Java进阶教程之多线程与并发编程
  • 33. 包装类型是什么?基本类型和包装类型有什么区别?
  • 深入解析 Java interrupt
  • 从零开始部署 Kubernetes Dashboard:可视化管理你的集群
  • 不惧和谐,永不失效!!
  • 高并发内存池(19)-用基数树优化
  • JavaScript事件
  • FastAPI 入门科普:下一代高性能 Python Web 框架
  • 顶点 (VS)vs 片段(FS):OpenGL纹理滚动着色器的性能博弈与设计哲学