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

news2024/11/23 17:19:47

写在前面

最近几个月都在忙着毕业的事,好一阵子没写代码了。今天准备跑个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.coloradmin.cn/o/1841112.html

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

相关文章

Elasticsearch搜索引擎(初级篇)

1.1 初识ElasticSearch | 《ElasticSearch入门到实战》电子书 (chaosopen.cn) 目录 第一章 入门 1.1 ElasticSearch需求背景 1.2 ElasticSearch 和关系型数据库的对比 1.3 基础概念 文档和字段 索引和映射 第二章 索引操作 2.0 Mapping映射属性 2.1 创建索引 DS…

Java宝藏实验资源库(1)文件

一、实验目的 掌握文件、目录管理以及文件操作的基本方法。掌握输入输出流的基本概念和流处理类的基本结构。掌握使用文件流进行文件输入输出的基本方法。 二、实验内容、过程及结果 1.显示指定目录下的每一级文件夹中的.java文件 运行代码如下 : import java.io.…

智慧校园综合管理系统:打造高效智慧的学校管理平台

智慧校园综合管理系统,作为提升教育管理与教学效率的数字化解决方案,它将信息技术深度融合于校园的每一个角落,构建了一个集信息共享、教学资源优化、智能管理、安全保障于一体的综合平台。该系统不仅提供了统一的信息门户,确保学…

MYSQL 四、mysql进阶 3(存储引擎)

mysql中表使用了不同的存储引擎也就决定了我们底层文件系统中文件的相关物理结构。 为了管理方便,人们把连接管理、语法解析、查询优化这些并不涉及真实数据存储的功能划分为 Mysql Server的功能,把真实存取数据的功能划分为存储引擎的功能&…

CVE-2023-50563(sql延时注入)

简介 SEMCMS是一套支持多种语言的外贸网站内容管理系统(CMS)。SEMCMS v4.8版本存在SQLI,该漏洞源于SEMCMS_Function.php 中的 AID 参数包含 SQL 注入 过程 打开靶场 目录扫描,发现安装install目录,进入,…

ruoyi登录功能源码分析

Ruoyi登录功能源码分析 上一篇文章我们分析了一下若依登录验证码生成的代码,今天我们来分析一下登录功能的代码 1、发送登录请求 前端通过http://localhost/dev-api/login向后端发送登录请求并携带用户的登录表单 在后端中的com.ruoyi.web.controller.system包下…

Artalk-CORS,跨域拦截问题

今天重新部署Artalk之后,遇到了CORS——跨域拦截的问题,卡了好一会记录一下。 起因 重新部署之后,浏览器一直提示CORS,之前在其他项目也遇到过类似的问题,原因就在于跨域问题。

[Linux] 系统的基本架构特点

Linux系统的基本结构 Linux is also a subversion of UNIX,it follows the basic structure of UNIX 内核(kernel): 操作系统的基本部分 管理与硬件相关的功能,分模块进行 常驻模块:进程控制IO操作文件\磁盘访问 用户不能直接访问内核 外壳(s…

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

题目&#xff1a; 题解&#xff1a; int* twoSum(int* numbers, int numbersSize, int target, int* returnSize) {int* ret (int*)malloc(sizeof(int) * 2);*returnSize 2;int low 0, high numbersSize - 1;while (low < high) {int sum numbers[low] numbers[high]…

Centos 配置安装Mysql

linux安装配置mysql的方法主要有yum安装和配置安装两种&#xff0c;由于yum安装比较简单&#xff0c;但是会将文件分散到不同的目录结构下面&#xff0c;配置起来比较麻烦&#xff0c;这里主要研究一下配置安装mysql的方法 1、环境说明 centos 7.9 mysql 5.7.372、环境检查 …

【Kubernetes】概念学习

Kubernetes介绍 Kubernetes 是谷歌开源的容器集群管理系统 是用于自动部署&#xff0c;扩展和管理 Docker 应用程序的开源系统&#xff0c;简称 K8S。 Kubernetes是一个可以移植、可扩展的开源平台&#xff0c;使用 声明式的配置 并依据配置信息自动地执行容器化应用程序的管…

27 map和set封装

map和set可以采用两套红黑树实现&#xff0c;也可以用同一个红黑树&#xff0c;就需要对前面的结构进行修改 迭代器的好处是可以方便遍历&#xff0c;是数据结构的底层实现与用户透明。如果想要给红黑树增加迭代器&#xff0c;需要考虑以前问题&#xff1a; begin()和end() s…

ChatGPT Plus GPT-4o Claude 3 Opus合租拼车全新方式

无需自己搭建&#xff0c;登录即可用&#xff0c;国内直连访问&#xff0c;聚合多家最强大模型&#xff0c;随意选择使用。立即体验 datapipe.top 支持 OpenAI 最新 GPT-4o &#xff0c;获得快速高质量的对话&#xff0c;保证可用配额。支持多种大模型&#xff0c;GPT-4o &…

课程设计---哈夫曼树的编码与解码(Java详解)

目录 一.设计任务&&要求&#xff1a; 二.方案设计报告&#xff1a; 2.1 哈夫曼树编码&译码的设计原理&#xff1a; 2.3设计目的&#xff1a; 2.3设计的主要过程&#xff1a; 2.4程序方法清单&#xff1a; 三.整体实现源码&#xff1a; 四.运行结果展示&…

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

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

Part 6.2.3 欧拉函数

欧拉函数φ(x) 表示了小于x的数字中&#xff0c;与x互质的数字个数。 关于欧拉函数的基本知识>欧拉函数的求解< [SDOI2008] 仪仗队 题目描述 作为体育委员&#xff0c;C 君负责这次运动会仪仗队的训练。仪仗队是由学生组成的 N N N \times N NN 的方阵&#xff0c;…

在VScode中创建PHP环境

一、下载PHP Server 和 PHP Debug这两个扩展 二、下载完成之后&#xff0c;在VScode中&#xff0c;打开我们写代码的文件 这里是我事先创建好的一些文件&#xff0c;本次环境搭建只需要创建一个.php后缀的文件即可。 先选中.php文件&#xff0c;再点击文件。 点击首选项&#x…

配置CentOS 7通过MSTSC连接远程桌面

正文共&#xff1a;777 字 14 图&#xff0c;预估阅读时间&#xff1a;1 分钟 前面我们介绍了如何通过VNC连接Ubuntu的远程桌面&#xff08;Ubuntu 18.04开启远程桌面连接&#xff09;&#xff0c;也介绍了如何使用微软的MSTSC来连接Ubuntu的远程桌面&#xff08;如何通过MSTSC…

Flink 1.19.1 standalone 集群模式部署及配置

flink 1.19起 conf/flink-conf.yaml 更改为新的 conf/config.yaml standalone集群: dev001、dev002、dev003 config.yaml: jobmanager address 统一使用 dev001&#xff0c;bind-port 统一改成 0.0.0.0&#xff0c;taskmanager address 分别更改为dev所在host dev001 config.…

Vue63-配置代理-方式二

一、请求前缀&#xff1a;能灵活的控制走不走代理 1-1、请求前缀 有请求前缀的走代理服务器&#xff1b; 没有请求前缀的不走代理服务器。 修改代码中的请求地址&#xff0c;加上请求前缀 报错的原因&#xff1a; 解决方式&#xff1a; 1-2、ws配置项、changeOrigin配置项 二…