安装cuda、cudnn、Pytorch(用cuda和cudnn加速计算)

写在前面

最近几个月都在忙着毕业的事,好一阵子没写代码了。今天准备跑个demo,发现报错 AssertionError: Torch not compiled with CUDA enabled

不知道啥情况,因为之前有cuda环境,能用gpu加速,看这个报错信息应该是Pytorch下没有可用的cuda,不知道咋没了。因而决定从头开始配置一下环境,以此博文记录一下~


安装cuda

1、了解cuda版本

打开英伟达控制面板 -> 左下角“系统信息” -> 组件

可以看到:我的电脑所能兼容的最高cuda版本为12.5

2、安装cuda

进入官网:CUDA Toolkit Archive | NVIDIA Developer,选择合适的版本进行安装

因为我的电脑所能兼容的最高cuda版本为12.5,所以我选择了12.4进行下载安装,同时我的电脑系统为win11,如下:

安装时,选择“自定义(高级)” -> 取消勾选CUDA下的Visual Studio Integration

我选择的安装位置为F:\NVIDIA GPU Computing Toolkit\CUDA\v12.4。安装完成后检查一下是否有环境变量,没有的话手动添加一下

3、测试是否安装成功

在cmd里输入nvcc -V,出现类似下图的界面就ok了~


安装cudnn

1、安装cuda后还要安装cudnn?

  • CUDA:是一个通用的并行计算平台和编程模型,用于利用 NVIDIA GPU 进行通用计算。CUDA 提供了一种编写 GPU 加速代码的方式,使开发者可以利用 GPU 的强大计算能力进行高性能计算
  • cuDNN:是构建在 CUDA 之上的专用库,专注于深度学习领域的优化。它使用 CUDA 来执行底层的并行计算,但提供了更高层的、针对深度学习任务优化的操作

安装 CUDA 可以利用 GPU 的并行计算能力来加速通用计算任务,包括但不限于深度学习。然而,深度学习中的许多计算操作(如卷积、反向传播等)需要特殊优化,直接使用 CUDA 编写这些操作的效率可能不如使用专门的库,如 cuDNN 或其他深度学习框架。如果目标是使用 GPU 来加速深度学习任务,除了安装 CUDA,还需要安装 cuDNN。这是因为 cuDNN 提供了高度优化的深度学习操作,可以显著提高训练和推理的速度。

2、cudnn下载

网站CUDA Deep Neural Network (cuDNN) | NVIDIA Developer,点击Download cuDNN Library

将下载下来的cudnn文件解压,并用解压出的文件直接替换cuda安装目录下的文件


安装pytorch-gpu

1、配置新的虚拟环境 

打开Anaconda Prompt,利用conda配置一个新的虚拟环境并激活

可以看到我的Python版本是3.8

故输入以下两个命令:

conda create -n torch_gpu python=3.8
conda activate torch_gpu

看到前面的base变为torch_gpu即可 

2、安装Pytorch

官网PyTorch,选择自己的配置后得到一串命令,输入上面的命令行中

3、小插曲&安装方式二

安装的时候报错了,报错信息 CondaError: Downloaded bytes did not match Content-Length

查了一下原因说是使用conda安装包下载的时候速度较慢,导致下载timeout而终止,从而未完成整个安装包的下载。

于是尝试第二种安装方法:国内镜像网站安装,网址https://download.pytorch.org/whl/torch_stable.html

  • 选择合适的版本,注意一定要选择cu开头的才是gpu版本
  • torch后面的数字是torch版本(我下的是2.3.1),cp后是对应的python版本(我是3.8),还要注意操作系统(我是win)

下载torchvision的时候要特别注意torch与torchvision的版本对应关系,参考GitHub - pytorch/vision: Datasets, Transforms and Models specific to Computer Vision

所以我要下载0.18版本的torchvision,其他跟上面保持一致,如下:

下载完成后得到以下两个whl文件:

在Pycharm终端,进入到该路径下运行:

cd C:\Users\11842\Downloads
conda activate torch_gpu
pip install "torch-2.3.1+cu118-cp38-cp38-win_amd64.whl" --trusted-host pypi.tuna.tsinghua.edu.cn
pip install "torchvision-0.18.1+cpu-cp38-cp38-win_amd64.whl" --trusted-host pypi.tuna.tsinghua.edu.cn

如下图:

等待两个均成功安装即可 

4、检测是否安装成功

输入python进入终端:

import torch
print(torch.cuda.is_available())

返回True,即pytorch-gpu安装成功

5、增加到Pycharm的编译器里

想重新用cuda加速跑demo时,发现Pycharm的编译器里还没有刚刚新创建的虚拟环境。如下图所示,File -> Settings -> Python Interpreter:

手动添加:点击上图的+,选择第三个System Interpreter,添加上下图的地址D:\Anaconda\envs\torch_gpu\python.exe,并重命名一下

这样就大功告成啦~ 

可以看到demo可以成功跑起来啦~


参考

1050ti显卡安装cuda_1050ti cuda-CSDN博客

Pycharm搭建CUDA,Pytorch教程(匹配版本,安装,搭建全保姆教程)_cuda12.3对应的pytorch版本-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于百度飞桨PaddleOCR应用开发实践银行卡卡面内容检测识别系统

OCR相关的内容我在之前的工作中虽有所涉及,但是还是比较少的,最近正好需要用到OCR的一些技术,查了一些资料,发现国内的话百度这块做的还是比较全面系统深入的,抱着闲来无事学习了解的心态,这里花了点时间基…

八大排序————C语言版实现

Hello,各位未来的高级程序员们,大家好,今天我就来为大家讲解一下有关排序的内容,我们常见的排序就是我们接下来要讲的这八个排序,我们平常所说的排序有十大排序,我们这里的八大排序是我们生活中最为常见的八…

h5兼容问题 复制粘贴移动端无法粘贴复制内容

const selectText (textbox, startIndex, stopIndex) > {if (textbox.createTextRange) {//ieconst range textbox.createTextRange();range.collapse(true);range.moveStart(character, startIndex);//起始光标range.moveEnd(character, stopIndex - startIndex);//结束光…

西门子PLC1200--与电脑连接的TCP通讯

本例演示将PLC作为服务器,电脑作为客户端,进行通讯。 反过来也是一回事,就不啰嗦了。 二者进行TCP通讯,是基于网线的,电脑上用的是网口,PLC上用的是Profinet接口,即PN口。 软件工具准备 西门子…

SQL注入-下篇

HTTP注入 一、Referer注入 概述 当你访问一个网站的时候,你的浏览器需要告诉服务器你是从哪个地方访问服务器的。如直接在浏览器器的URL栏输入网址访问网站是没有referer的,需要在一个打开的网站中,点击链接跳转到另一个页面。 Less-19 判…

【Java面试】二十一、JVM篇(中):垃圾回收相关

文章目录 1、类加载器1.1 什么是类加载器1.2 什么是双亲委派机制 2、类装载的执行过程(类的生命周期)3、对象什么时候可以被垃圾回收器处理4、JVM垃圾回收算法4.1 标记清除算法4.2 标记整理算法4.3 复制算法 5、分代收集算法5.1 MinorGC、Mixed GC、Full…

java:动态代理和cglib代理的简单例子

# 项目代码资源&#xff1a; 可能还在审核中&#xff0c;请等待。。。 https://download.csdn.net/download/chenhz2284/89457803 # 项目代码 【pom.xml】 <dependency><groupId>cglib</groupId><artifactId>cglib</artifactId><version&…

ATA-2032高压放大器设计要求是什么内容

高压放大器是一种专门用于放大高电压信号的电子设备。它在许多领域都具有重要的应用&#xff0c;例如在医疗设备、科学研究、传感器驱动和测试测量等方面。设计一个高压放大器需要考虑多个因素&#xff0c;包括性能要求、安全性、稳定性和可靠性等方面。下面我们将详细讨论高压…

vxe-table 列表过滤踩坑_vxe-table筛选

但是这个过滤输入值必须是跟列表的值必须一致才能查到&#xff0c;没做到模糊查询的功能&#xff0c;根据关键字来过滤并没有实现。 下面提供一下具体实现方法&#xff1a;&#xff08;关键字来过滤&#xff09; filterNameMethod({ option, row }) {if (row.name.indexOf(op…

差分数组汇总

本文涉及知识点 算法与数据结构汇总 差分数组 令 a[i] ∑ j : 0 i v D i f f [ i ] \sum_{j:0}^{i}vDiff[i] ∑j:0i​vDiff[i] 如果 vDiff[i1]&#xff0c;则a[i1…]全部 如果vDiff[i2]–,则a[i2…]全部–。 令11 < i2 &#xff0c;则&#xff1a; { a [ i ] 不变&…

MySQL----undo log回滚日志原理、流程以及与redo log比较

回滚日志 回滚日志&#xff0c;保存了事务发生之前的数据的一个版本&#xff0c;用于事务执行时的回滚操作&#xff0c;同时也是实现多版本并发控制&#xff08;MVCC&#xff09;下读操作的关键技术。 如何理解Undo Log 事务需要保证原子性&#xff0c;也就是事务中的操作要…

【OpenHarmony开发】自定义系统应用之实践

前言 OpenHarmony系统应用是指预装在OpenHarmony操作系统中的应用程序&#xff0c;也称为系统应用。这些应用程序通常由操作系统开发者开发&#xff0c;包括系统设置、电话、短信、浏览器、相机、音乐、视频等常用应用程序。这些应用程序通常具有更高的权限和更深入的系统集成…

解决ERROR: Cannot uninstall ‘ipython-genutils‘.的方法

删除ipython-genutils-X-pyX.egg-info文件&#xff0c;X表示对应版本&#xff0c;问题解决。

昇思25天学习打卡营第1天|基本介绍及快速入门

1.第一天学习总体复盘 1&#xff09;成功注册昇思大模型平台&#xff0c;并成功申请算力&#xff1b; 2)在jupyter环境下学习初学入门/初学教程的内容&#xff1b; 在基本介绍部分&#xff0c;快速撸了一边内容&#xff0c;有了一个基本的了解&#xff08;没理解到位的计划采用…

Java | Leetcode Java题解之第167题两数之和II-输入有序数组

题目&#xff1a; 题解&#xff1a; class Solution {public int[] twoSum(int[] numbers, int target) {int low 0, high numbers.length - 1;while (low < high) {int sum numbers[low] numbers[high];if (sum target) {return new int[]{low 1, high 1};} else i…

spark 整合 yarn

spark 整合 yarn 1、在master节点上停止spark集群 cd /usr/local/soft/spark-2.4.5/sbin ./stop-all.sh 2、spark整合yarn只需要在一个节点整合, 可以删除node1 和node2中所有的spark文件 分别在node1、node2 的/usr/local/soft目录运行 rm -rf spark-2.4.…

前端 CSS 经典:边框转圈动画效果

前言&#xff1a;首先我们要知道 css 动画只对数值类的 CSS 属性起作用。要实现边框转圈动画效果&#xff0c;实际就是渐变背景的旋转。但是在以前&#xff0c;渐变背景是不支持动画的。现在我们可以利用浏览器新出的 Houdini API 来实现这个动画效果。Houdini API 特别强大&am…

数据结构_栈和队列

目录 一、栈 1.1 栈的使用 1.2 模拟实现栈 二、队列 2.1 队列的使用 2.2 环形队列 2.3 双端队列 总结 一、栈 栈是只允许在固定的一端进行元素的插入和删除操作的一种特殊线性表。其中进行元素的插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈遵循先进后…

数据分析第十一讲:pandas应用入门(六)

pandas应用入门&#xff08;六&#xff09; 我们再来看看Index类型&#xff0c;它为Series和DataFrame对象提供了索引服务&#xff0c;有了索引我们就可以排序数据&#xff08;sort_index方法&#xff09;、对齐数据&#xff08;在运算和合并数据时非常重要&#xff09;并实现…

2024最新宝塔面板8.1.0企业版开心版

官方更新记录 【增加】增加【网站】-【HTML项目】 【优化】优化Docker模块使用体验 【优化】优化文件压缩和解压的速度 【修复】修复在上一版本中出现的所有已知问题 开心版更新记录 1.在 PHP切换页面&#xff0c;出现报错弹窗属于正常情况&#xff0c;是因爲没安装 企业…