Anaconda创建虚拟环境+CUDA、cuDNN一同安装

文章目录

  • 前言
  • 一、CUDA的作用
  • 二、下载CUDA的步骤
    • 2.1 查看电脑NVIDIA适合的CUDA版本( 两种方法)
      • 1)打开NVIDIA控制面板,目前我的CUDA版本是12.1
      • 2)使用命令行查看,使用命令:`nvidia-smi`。
    • 2.2 根据pytorch版本确定cuda和cudnn的版本
      • 1)在已创建的虚拟环境中安装CUDA
      • 2)虚拟环境和CUDA 均未创建的情况
  • 总结


前言

在学习机器学习 / 深度学习时,我们不可避免的需要跑多个神经网络,而不同的神经网络环境都不一样(复现不同的文章,代码要求的环境也不一样),所以必须要使用到虚拟环境(如Anaconda)去做环境隔离,安装不同的所需环境。在这环境中,大多神经网络都必须要用到CUDA和cuDNN。不同的神经网络需求版本不同,本章记录了在自创建的虚拟环境中安装CUDA和cuDNN。


一、CUDA的作用

通俗地说,CUDA是一种协助“CPU任务分发+GPU并行处理”的编程模型/平台,用于加速GPU和CPU之间的计算。即,CUDA通过CPU任务分发和GPU并行处理的方式,把计算任务通过CPU分发给GPU进行并行计算加速。

CUDA(ComputeUnified Device Architecture),是显卡厂商NVIDIA推出的运算平台。CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够参与解决复杂的计算问题

二、下载CUDA的步骤

有很多博客的方法是手动安装 CUDA 或 cuDNN(例如通过 NVIDIA 官网下载),那么您需要确保它们的版本和安装路径配置正确,并在运行 PyTorch 之前正确设置环境变量。
本博客通过用 conda 语句安装 ,可以选择安装合适的 CUDA 版本。在这种情况下,cuDNN 的相关库会与 CUDA 一起安装,因此您不需要单独下载和安装 cuDNN。

2.1 查看电脑NVIDIA适合的CUDA版本( 两种方法)

1)打开NVIDIA控制面板,目前我的CUDA版本是12.1

在这里插入图片描述

2)使用命令行查看,使用命令:nvidia-smi

nvidia-smi 是一个 NVIDIA 提供的工具,用于监控 GPU 状态。它通常也能显示安装的 CUDA 版本。

CUDA Version: 12.1 表明当前的显卡驱动可以安装的cuda最高版本是12.1。
在这里插入图片描述

2.2 根据pytorch版本确定cuda和cudnn的版本

1)在已创建的虚拟环境中安装CUDA

若已经创建了虚拟环境,但是未安装CUDA的情况,首先查看已经创建的虚拟环境中pytorch版本。

  • 进入虚拟环境
# activate (虚拟环境的名称)
activate torch113_py38
  • 查看pytorch版本
# 进入python环境
python	
# 导入pytorch包,查看版本
import torch
torch.__version__	# (此处是双下划线)

我使用的pytorch版本是1.13.1。下一步,去官方网站上,找对应的cuda版本。
在这里插入图片描述

  • 在官方网站找对应的cuda版本。

在官网可以看到,pytorch版本为1.13.0对应的CUDA版本可以是11.6或11.7。有三个版本可以下载,其中# CUDA可以使用CPU和GPU;# CPU只能使用CPU。
在这里插入图片描述
使用命令下载CUDA:

conda install pytorch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0 pytorch-cuda=11.6 -c pytorch -c nvidia

在这里插入图片描述
下载成功后会显示:
在这里插入图片描述

  • 验证是否安装成功,若显示True,则下载成功
# 进入python环境
python
import torch
print(torch.cuda.is_available())

在这里插入图片描述
查看CUDA下载的版本:

nvcc --version

在这里插入图片描述

在这里插入一个知识点:nvcc & nvidia-smi的区别
可学习blog:显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么?
CUDA主要有两个API:runtime API、driver API。

  1. 用于支持driver API的必要文件(如libcuda.so)是由GPU driver installer安装的。
  2. 用于支持runtime API的必要文件(如libcudart.so以及nvcc)是由CUDA Toolkit installer安装的。
  3. nvidia-smi属于driver API、nvcc属于runtime API。
  4. nvcc属于CUDA compiler-driver tool,只知道runtime API版本,甚至不知道是否安装了GPU driver。
  • 检查 CUDA 和 cuDNN 的可用性:要验证 PyTorch 是否可以正确使用 CUDA 和 cuDNN,您可以在 Python 环境中运行以下命令,来检查可用的 CUDA 设备:
import torch
print(torch.cuda.is_available())  # 检查 CUDA 是否可用
print(torch.backends.cudnn.enabled)  # 检查 cudnn 是否启用

cuDNN的作用:
cuDNN的全称为NVIDIA CUDA® Deep Neural Network library,是NVIDIA专门针对深度神经网络中的基础操作而设计基于GPU的加速库。cuDNN为深度神经网络中的标准流程提供了高度优化的实现方式,例如convolution、pooling、normalization以及activation layers的前向以及后向过程。
cuDNN 是 NVIDIA 提供的一个深度学习库,它为深度学习框架提供了高效的卷积操作和其他深度学习相关的功能。通过使用 cuDNN,PyTorch 可以在运行深度学习模型时更高效地利用 NVIDIA GPU 的计算能力。

2)虚拟环境和CUDA 均未创建的情况

  • 创建虚拟环境
conda create -n name python=3.X

name是环境名,3.x是python版本
如果创建名为torch2.0,python版本为3.8的虚拟环境,命令为:conda create -n torch113_py38 python=3.8

  • 进入激活虚拟环境中:命令为activate name,其他安装内容,跟情况1一致。

总结

安装 PyTorch 的过程中已经通过命令行指定了 CUDA 版本,那么您不需要单独再安装 cudatoolkit
可以通过命令查看已安装的包:

conda list

在本博文记录的下载方法中,已下载了包括CUDA和cuda-toolkit的包。
在这里插入图片描述

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

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

相关文章

数学建模之熵权法

熵权法 概述 **熵权法(Entropy Weight Method,EWM)**是一种客观赋权的方法,原理:指标的变异程度越小,所包含的信息量也越小,其对应的权值应该越低(例如,如果对于所有样本而言,某项指标的值都相…

Python学习第十六天--迭代器和生成器

一、可迭代对象 六大标准数据类型:字符串,列表,元组,字典,集合,数值类型 可迭代对象:字符串,列表,元组,字典,集合。即:通过for...in…

【JavaScript】选项卡切换

选项卡切换 选项卡切换是一种常见的网页设计模式,用于在一个页面内显示和切换不同内容区域,而无需加载页面。用户可以通过点击选项卡切换显示不同的内容,而隐藏其他内容。 多选项显示:页面顶部、侧边或其他地方通常有多个选项卡…

【Spring】Spring 整合 MyBatis

在实际项目开发中,将 Spring 和 MyBatis 进行整合可以提高开发效率、简化配置、增强事务管理和可维护性,同时利用 Spring 的强大功能能提升系统的稳定性。这里从独立使用 MyBatis 开始,逐步实现与 Spring 框架的整合。 MyBatis 独立开发 现…

JavaWeb学习(1)(同步或异步请求、依赖jQuery简单实现Ajax技术)

目录 一、Web的基本流程与页面局部刷新。 (1)web开发时基本流程。 (2)页面的"全局刷新"与"局部刷新"。 二、Ajax技术。 (1)基本介绍。 (2)基本特点。 1、与服务…

win11 vs2022 python3.9环境下运行jupyterlab

jupyter官网及简介:https://jupyter.org/ Jupyter 集合“浏览器 编程 文档 绘图 多媒体 发布”众多功能与一身,适合探究式学习。 JupyterLab是最新的基于网络的笔记本、代码和数据的互动开发环境。 Jupyter Notebook是JupyterLab的上一代版本。 由…

STM32 进阶 定时器 2基本定时器 基本定时器中断案例:LED闪烁

基本定时器 基本定时器TIM6和TIM7各包含一个16位自动装载计数器,由各自的可编程预分频器驱动。 这2个定时器是互相独立的,不共享任何资源。 这个2个基本定时器只能向上计数,由于没有外部IO,所以只能计时,不能对外部…

libaom 源码分析:帧间帧内预测编码

整体流程框架逻辑 帧间帧内预测模式的分区类型 不论是 RD 模式还是 nonRD 模式,libaom 中分区只应用 PARTITION_NONE、PARTITION_HORZ、PARTITION_VERT、PARTITION_SPLIT 四种类型,不像 AV1 标准中介绍的那样有十种类型(其实 libaom 源码中也实现了所有了类型,但在正式版中…

达梦归档文件名与实例对应关系

默认的,达梦归档文件名比较难以看懂,且多实例下不好区分 靠它就行 select upper(to_char((select DB_MAGIC), xxxxxxxxxx)) mag_id; 这样就对上号了。

JavaScript实现圆周运动效果

在 JavaScript 中&#xff0c;可以通过 requestAnimationFrame 和数学公式来实现圆周运动效果。以下是示例代码&#xff1a; 示例代码 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewp…

11.爬虫

前言&#xff1a; 正则表达式的作用&#xff1a; 作用一&#xff1a;校验字符串是否满足规则 作用二&#xff1a;在一段文本中查找满足要求的内容 一.Pattern类和Matcher类&#xff1a; 1.Pattern类&#xff1a;表示正则表达式 a.因此获取Pattern对象就相当于获取正则表达式…

Java项目实战II基于微信小程序的无中介租房系统(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 随着城市化进程的加速&#xff0c;租房市场日益繁荣&a…

Linux里面实时查看项目的tomcat服务器日志文件

目录 前言 一、查看tomcat服务器日志 二、运行项目验证&#xff08;篇外&#xff09; (一)运行自己的项目 二、发送验证码测试 前言 这个可以查看在Linux系统里面部署运行项目的日志&#xff0c;日志内可以查看到运行和各种错误以及前后端交互传输的各种数据&#xff0c;…

12,攻防世界simple_php

simple_php 题目来源:Cyberpeace-n3k0 题目描述: 小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。 进入靶场 这段PHP代码是一个简单的web应用示例&#xff0c;让我们逐步分析这段代码&#xff1a; show_source(__FILE__);&#xff1a;这行代码会显示当前文件的…

Webpack Tree Shaking 技术原理及应用实战,优化代码,精简产物

前言 在前端开发中&#xff0c;优化代码体积和提升应用性能是至关重要的课题。Webpack 提供了多种优化手段来帮助开发者实现这一目标&#xff0c;Tree Shaking 就是其中一种非常重要的优化技术&#xff0c;它通过在编译阶段移除未被使用的代码模块&#xff0c;从而显著减小最终…

5G CPE核心器件-基带处理器(三)

5G CPE 核心器件 -5G基带芯片 基带芯片简介基带芯片组成与结构技术特点与发展趋势5G基带芯片是5G CPE中最核心的组件,负责接入5G网络,并进行上下行数据业务传输。移动通信从1G发展到5G,终端形态产生了极大的变化,在集成度、功耗、性能等方面都取得巨大的提升。 基带芯片简…

SpringBoot高级-底层原理

目录 1 SpringBoot自动化配置原理 01-SpringBoot2高级-starter依赖管理机制 02-SpringBoot2高级-自动化配置初体验 03-SpringBoot2高级-底层原理-Configuration配置注解 04-SpringBoot2高级-底层原理-Import注解使用1 05-SpringBoot2高级-底层原理-Import注解使用2 06-S…

ES常见问题汇总

ES常见问题汇总 1.Es的作用&#xff08;elasticsearch&#xff09; 作用&#xff1a; elasticsearch是一款非常强大的开源搜索引擎&#xff0c;具备非常多强大功能&#xff0c;可以帮助我们从海量数据中快速找到需要的内容 ELK技术栈 elasticsearch结合kibana、Logstash&…

linux环境宝塔服务部署安装及介绍

一、简介 宝塔面板是一款服务器管理软件&#xff0c;支持windows和linux系统&#xff0c;可以通过Web端轻松管理服务器&#xff0c;提升运维效率。例如&#xff1a;创建管理网站、FTP、数据库&#xff0c;拥有可视化文件管理器&#xff0c;可视化软件管理器&#xff0c;可视化C…

ONES 功能上新|ONES Project 甘特图再度升级

ONES Project 甘特图支持展示工作项标题、进度百分比、依赖关系延迟时间等信息。 应用场景&#xff1a; 在使用甘特图规划项目任务、编排项目计划时&#xff0c;可以对甘特图区域进行配置&#xff0c;展示工作项的工作项标题、进度百分比以及依赖关系延迟时间等维度&#xff0c…