安装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博客

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

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

相关文章

React常用方法汇总【更新中】

文章目录 前言创建项目启动命令列表渲染父子组件传值useEffect 异步函数使用方法useEffect 异步函数清除方法控制组件显示隐藏axios 安装使用 前言 运行 react 需要先安装 node.js,具体安装步骤可以参考这篇文章 https://blog.csdn.net/weixin_43721000/article/de…

如何在 MySQL 或 MariaDB 中导入和导出数据库

作者选择了自由开源基金会作为 Write for Donations 计划的捐赠对象。 介绍 在软件开发中,导入和导出数据库是一项常见任务。您可以使用数据转储来备份和恢复信息。您还可以使用它们将数据迁移到新的服务器或开发环境。 在本教程中,您将使用 MySQL 或…

spring xml实现bean的生命周期

spring xml实现bean的生命周期 搭建maven工程&#xff0c;导入maven依赖(需要jdk17或者降低spring-context版本) <dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><versio…

Linux GCC G++:各个版本发行年份及新增特性盘点

目录 GCC盘点 GCC 4.0 GCC 4.1 GCC 4.2 GCC 4.3 GCC 4.4 GCC 4.5 GCC 4.6 GCC 4.7 GCC 4.8 GCC 4.9 GCC 5.0 GCC 6.0 GCC 7.0 GCC 8.0 GCC 9.0 GCC 10.0 GCC 11.0 GCC 12.0 GCC 13.0 GCC稳定版本 GCC 4.8 GCC 4.9 GCC 5.0 GCC 6.0 GCC 7.0 GCC 8.0 …

Vue65-vue-resource:ajax请求

vue-resource是vue的插件库&#xff0c;用vue.use(xxxx)使用插件。 1、安装 2、引入和使用 这个库&#xff0c;维护的频率不高了。还是建议使用&#xff1a;axios&#xff0c;vue-resource只是了解即可。

MySQL8,Navicat能登陆成功,密码却忘记了

执行成功的图&#xff1a; 以下为步骤&#xff1a;本文一共8个简单步骤。 环境&#xff1a;mysql8、window10、navicat11 1、打开本地电脑window10的命令窗&#xff08;俗称黑窗口&#xff09;&#xff0c;windowR 2、输入regegit&#xff0c;回车&#xff0c;打开注册表 3、…

【React】《React 学习手册 (第2版) 》笔记-Chapter12-React 服务器端渲染

十二、React 服务器端渲染 我们可以采用同构方式渲染 React&#xff0c;以便支持浏览器以外的平台。这意味着&#xff0c;我们可以在服务器端渲染 UI&#xff0c;然后再发给浏览器。借助服务器端渲染&#xff0c;可以提升性能、增进可移植性、提高安全性。 同构&#xff08;is…

Flink Time 详解

Flink在处理实时数据流时&#xff0c;时间是一个核心概念。Flink支持多种时间语义&#xff0c;以满足不同业务场景的需求。以下是对Flink中时间概念的详细解释&#xff1a; 一、时间概念概述 在Flink中&#xff0c;时间主要分为三种类型&#xff1a; 事件时间&#xff08;Eve…

技术差异,应用场景;虚拟机可以当作云服务器吗

虚拟机和云服务器是现在市面上常见的两种计算资源提供方式&#xff0c;很多人把这两者看成可以相互转换或者替代的物品&#xff0c;实则不然&#xff0c;这两种资源提供方式有许多相似之处&#xff0c;但是也有不少区别&#xff0c;一篇文章教你识别两者的技术差异&#xff0c;…

【全文档】软件项目经理需要掌握的文档有哪些?

软件项目经理在项目管理过程中需要编写多种文档&#xff0c;以下是常见的十五个文档&#xff1a; 项目计划&#xff1a; 详细描述了项目的范围、时间、成本、资源、沟通计划等关键信息&#xff0c;是项目管理的核心文档。 需求文档&#xff1a; 记录了项目的业务需求、功能需求…

vue3第二阶段的开发文档

1 2.1 案例——学习计划表 2.1.1 准备工作 在开发“学习计划表”案例之前&#xff0c;需要先完成一些准备工作&#xff0c;具体步骤如下。 ① 打开命令提示符&#xff0c;切换到 D:\vue\chapter02 目录&#xff0c;在该目录下执行如下命令&#xff0c;创建 项目。 np…

深入理解预处理

1.预定义符号 C语言设置了⼀些预定义符号&#xff0c;可以直接使用&#xff0c;预定义符号也是在预处理期间处理的。 __FILE__ //进⾏编译的源⽂件 __LINE__ //⽂件当前的⾏号 __DATE__ //⽂件被编译的⽇期 __TIME__ //⽂件被编译的时间 __STDC__ //如果编译器遵循ANSI C&…

3. ceph-mimic版本部署

ceph-mimic版本部署 一、ceph-mimic版本部署1、环境规划2、系统基础环境准备2.1 关闭防火墙、SELinux2.2 确保所有主机时间同步2.3 所有主机ssh免密2.4 添加所有主机解析 3、配置ceph软件仓库4、安装ceph-deploy工具5、ceph集群初始化6、所有ceph集群节点安装相关软件7、客户端…

AI-“国外一开源,国内就创新”!

大模型领域中美差距有多大&#xff1f; 近年来&#xff0c;人工智能技术在全球范围内迅速发展&#xff0c;特别是在大型语言模型和机器学习方法方面取得了突破性进展。在这个领域&#xff0c;计算能力的提升也推动了技术的革命性进步。 作为世界上两大的重要经济体&#xff0…

Java程序之简单求和

题目&#xff1a; 求saaaaaaaaaaaa...a的值&#xff0c;其中a是一个数字。要求输入a的值和加数的个数n&#xff0c;例如&#xff1a;a2&#xff0c;n5&#xff0c;此时s222222222222222&#xff0c;输出s的值。 源代码&#xff1a; package Question5;import java.util.Scann…

LeetCode322.零钱兑换(一)

LeetCode刷题记录 文章目录 &#x1f4dc;题目描述&#x1f4a1;解题思路⌨C代码 &#x1f4dc;题目描述 给你一个整数数组 coins &#xff0c;表示不同面额的硬币&#xff1b;以及一个整数 amount &#xff0c;表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。…

Macbook M1 Fusion安装Debian/Linux

背景 本人主力工作电脑已经迁移到苹果芯片m1的macbook上&#xff0c;曾经尝试使用Fusion安装CentOS、OpenEuler、Ubuntu的一些版本&#xff0c;都没有安装成功。最近开始研究Linux/Unix系统编程&#xff0c;迫切需要通过VMware Fusion安装一台Linux操作系统的虚拟机。 Linux安…

u8g2 使用IIC驱动uc1617 lcd 字符显示只显示上半部分,不显示下半部

使用u8g2 使用硬件iic驱动某些page为4个字节 带灰度的lcd显示屏幕的时候有时候只显示上半部&#xff0c;下半部不显示&#xff0c;例如uc1617等。 原因&#xff1a; 以uc1617为例&#xff0c;链接https://github.com/olikraus/u8g2/blob/master/csrc/u8x8_d_uc1617.c 在u8x8…

libmodbus 疑问:对象结构体是如何关联的

1. 主要结构体 结构体 modbus_t &#xff1a; 包含 int slave&#xff08;从机地址&#xff09;、timeout、 backend&#xff08;各种操作&#xff09;; backend_data 等 结构体modbus_backend_t&#xff1a; build_request_basis、set_slave、receive、send、connect 等操作 …

项目监督与控制

1.什么是项目过程度量&#xff1f;其方法有哪些&#xff1f; 项目过程度量是一种对项目执行过程中的活动和性能进行量化测量的方法。它涉及到收集、分析和解释项目数据&#xff0c;以便更好地理解项目的进度、质量和效率。过程度量的目的是提供关于项目健康状况的客观信息&…