【AI】环境——深度学习cuda+pytorch配置

文章目录

    • 关键组件及关系
      • 显卡驱动GPU Driver
      • CUDA
      • CUDA Toolkit
      • cuDNN
      • Pytorch
    • 各组件版本选择
      • 驱动程序
      • CUDA
        • 查看驱动及CUDA的最大支持版本
      • CUDA Toolkit
        • 选自定义安装
        • 检验
          • 无法识别nvcc
      • cuDNN
    • conda
      • pip换源
      • conda管理py包
        • conda 换源
        • 查看列表、创建、克隆、激活、删除
        • conda包管理
          • 包安装原则
        • 设置默认anaconda
    • pytorch安装
      • 自动安装
      • 手动安装
        • 确定pytorch版本
        • 确定torchvision与torchaudio版本
        • 国内镜像下载
        • 安装
      • pip安装
      • 测试

关键组件及关系

参考1

参考2

显卡驱动GPU Driver

介绍:显卡驱动是连接操作系统与GPU硬件的驱动程序。负责管理GPU的基本功能:内存管理、任务调度和与操作系统的通信

作用:显卡驱动程序是深度学习框架及CUDA Toolkit与GPU之间的桥梁。

CUDA

介绍:Compute Unified Device Architecture,NVIDIA 开发的并行计算平台和编程模型,旨在加速通用计算任务,包括深度学习训练与推理。

CUDA Toolkit

介绍:CUDA Toolkit 是一套软件工具集,定义了一些用于GPU加速的数学库。包含了编译CUDA代码所需的工具和CUDA的运行时库。

作用:CUDA Toolkit 提供了编译CUDA代码的工具、CUDA运行时库和各种GPU加速的数学库,使开发者能够方便地构建和优化GPU加速应用程序。

cuDNN

介绍:cuDNN 是NVIDIA的深度学习库,调用CUDA Toolkit的基本库函数,实现了专门用于加速深度神经网络的训练和推理,可用于各种深度学习框架。

作用:cuDNN 提供了用于加速卷积神经网络(CNN)等深度学习操作的GPU实现,使深度学习框架能够在GPU上获得显著的性能提升。

Pytorch

定义:PyTorch 是一个深度学习框架,提供用于构建和训练神经网络的高级API。

作用:PyTorch允许开发者构建灵活的神经网络模型,并使用CUDA加速训练和推理过程。

各组件版本选择

显卡驱动决定了本机器支持的最大CUDA的版本,CUDA版本决定了CUDA Toolkit 与cuDNN的版本,最后决定了Pytorch的版本

驱动程序

版本要求:必须与GPU硬件兼容,以确保GPU能正常工作并与操作系统和应用程序通信

更新显卡驱动版本可以提高本机支持的最高CUDA版本

查看显卡的最新驱动程序

CUDA

查看驱动及CUDA的最大支持版本
nvidia-smi

在这里插入图片描述

显卡驱动与CUDA版本关系

在这里插入图片描述

  • GA:General Availability,正式发布的版本。
  • RC:Release Candidate,发行候选版本,是最终发布成正式版的前一个版本。

CUDA Toolkit

CUDA Toolkit Archive

选择相应版本安装即可

在这里插入图片描述

在这里插入图片描述

选自定义安装

安装过程注意避免用旧版本替换较高的版本

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

检验

安装完成后在命令行中进行验证

nvcc -V

在这里插入图片描述

无法识别nvcc

nvcc 不是内部或外部命令,也不是可运行的程序或批处理文件

只能是两种问题:

  1. 安装出错
  2. 环境变量未配置完全

检验是否安装正确

#1. cmd 转到CUDA安装目录 XX\extras\demo_suite,分别执行
bandwidthTest.exe
deviceQuery.exe

若安装正确,则二者均 Result = PASS 。否则需要重新安装

在这里插入图片描述

环境变量

  1. Path新增三个变量

    D:\cuda\cuda12_3\lib\x64
    D:\cuda\cuda12_3\include
    D:\cuda\cuda12_3\extras\CUPTI\lib64
    

    在这里插入图片描述

    在这里插入图片描述

  2. 重启系统后生效,若想要不重启生效

    以修改环境变量“PATH”为例,修改完成后,进入DOS命令提示符,输入:set PATH=C: ,关闭DOS窗口。再次打开DOS窗口,输入:echo %PATH%

cuDNN

下载地址

在这里插入图片描述

  • “12.x” 是 CUDA 版本号的一种通用表示法,其中 “x” 表示可以是任何数字,表示适用于该主要 CUDA 版本的所有次要版本。

下载之后,解压缩,将压缩包里面的bin、clude、lib文件直接复制到CUDA的安装目录下(Development与Documentation目录下),直接替换

conda

Miniconda/Anaconda区别在于Anaconda安装后会附带很多内容,省去安装一些常见包的麻烦,同时对于一些人来说也会显得比较臃肿。而Miniconda只包括了conda和python,内容简洁,但缺点就是一些常见包需要手动下载。

  • miniconda下载地址
    • miniconda清华源
  • anaconda下载地址
    • 清华源

安装流程注意勾选添加到环境变量即可

pip换源

#查看已安装的包
conda list
pip list# 安装包
pip install package_name[==version]
conda install package_name[==version]#移除包
conda remove numpy
pip uninstall numpy# 导入导出环境
conda env export > [配置文件路径.yaml]
用配置文件创建新环境
conda env create -n [anaconda_name] -f [配置文件路径.yaml]# 设置pip源
(learning) C:\Users\AmosTian>pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
Writing to C:\Users\AmosTian\AppData\Roaming\pip\pip.ini# 查看是否生效
pip config list# 阿里云镜像源
http://mirrors.aliyun.com/pypi/simple/
# 清华大学镜像源
https://pypi.tuna.tsinghua.edu.cn/simple/
# 国科大镜像源
http://pypi.mirrors.ustc.edu.cn/simple/
# 豆瓣镜像源
https://pypi.douban.com/simple/

conda管理py包

conda 换源
# 查看当前源
conda config --show channels# 设置安装包时,显示镜像来源,建议显示
conda config --set show_channel_urls yes # 恢复默认源
conda config --remove-key channels# 添加清华源
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --set show_channel_urls yes# # 修改conda 虚拟环境默认安装位置,默认是在C盘下的
envs directories : D:\anaconda3\envsC:\Users\AmosTian\.conda\envsC:\Users\AmosTian\AppData\Local\conda\conda\envs# 修改为
conda config --add envs_dirs D:\anaconda3\envs
修改文件夹权限,确保所有用户都有 所有权限

可以直接在 C:\Users\用户名 目录下找 .condarc 的文件,若不不存在新建一个

envs_dirs:- D:\anaconda3\envschannels:- http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/- defaults
show_channel_urls: true
auto_activate_base: true
查看列表、创建、克隆、激活、删除
conda info -e
# conda信息
conda info# 查看当前conda 环境列表
conda env list# 创建conda环境
conda create -n [anaconda_name] python=3.
#克隆环境
conda create --name [new_anaconda_name] --clone [new_anaconda_name]# 删除环境
conda remove --name [anaconda_name] --all# 激活环境
conda activate [anaconda_name]

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

conda包管理
# 在指定环境中管理包
conda list -n [anaconda_name]
conda install --name [anaconda_name] package_name 
conda remove --name [anaconda_name] package_name
包安装原则

conda有严格的检查机制,它会保证你当前装的package安装好之后能work,但是,它只检查用conda安装过的package。pip装的包不会检查出来

安装包,安装方式尽量一致,不要混用,除非一些包用其中一种固定用的方式安不上。先conda,装不上的包再pip

删除包,谁安装就由谁卸载,对于一些简单的包也可以直接到 lib/site-packages 中进行手动删除

设置默认anaconda

https://www.yingtwo.com/article/8435028.html

只修改prompt

  • 到 conda 安装目录的 Script 文件夹下,找一个名为 activate.bat 的文件
  • 将第24行 @CALL "%~dp0..\condabin\conda.bat" activate %* 中的 %*[anaconda_name] 替换

修改prompt 与 powershell pompt

  • 查看二者属性窗口,发现其启动目标都指向 D:\anaconda3 的默认 anaconda

    # prompt:
    %windir%\System32\cmd.exe "/K" D:\anaconda3\Scripts\activate.bat D:\anaconda3\envs\learn# powershell:
    %windir%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -NoExit -Command "& 'D:\anaconda3\shell\condabin\conda-hook.ps1' ; conda activate 'D:\anaconda3' "
    
  • D:\anaconda3 修改为 D:\anaconda3\envs\learn

pytorch安装

官网

参考

自动安装

最新版本

在这里插入图片描述

  • 修改为

    conda install pytorch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 pytorch-cuda=12.1 -c pytorch -c nvidia# -c pytorch 会使用默认的pytorch源,下载速度慢
    

试过了解决方法, unsuccessful initial attempt using frozen solve 无解,换手动或pip安装吧

手动安装

确定pytorch版本

也可以在 Previous Pytorch Verion 中选择CUDA相应的pytorch版本

# CUDA 11.8
conda install pytorch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 pytorch-cuda=11.8 -c pytorch -c nvidia
# CUDA 12.1
conda install pytorch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 pytorch-cuda=12.1 -c pytorch -c nvidia
# CPU Only
conda install pytorch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 cpuonly -c pytorch

官网的命令根据cuda以及pytorch的的版本有所不同,选择对应的即可。

确定torchvision与torchaudio版本

根据选择的pytorch版本,确定torchvision与torchaudio版本

https://gitcode.com/pytorch/vision/overview?utm_source=csdn_github_accelerator&isLogin=1

在这里插入图片描述

国内镜像下载

镜像

在这里插入图片描述

cuda版本12.1,python3.9,假设pytorch选用2.1.2

安装

三个文件下载完成后,切换准备安装torch的环境,切换到三个whl文件的目录下,执行 pip install

pip安装

pip install torch==2.1.2+cu121 torchvision==0.16.2+cu121 torchaudio==2.1.2+cu121 --extra-index-url https://download.pytorch.org/whl/cu121 -i https://pypi.tuna.tsinghua.edu.cn/simple
  • -i https://pypi.tuna.tsinghua.edu.cn/simple :切换清华源
  • +cu121 pip默认下载的是CPU版本,需要 指定下载GPU版本

测试

import torch# 检查CUDA是否可用
print(torch.cuda.is_available())# 显示当前CUDA版本
print(torch.version.cuda)

在这里插入图片描述

实际情况,有时需要我们根据pytorch版本倒推CUDA版本,若所需的pytorch版本低于当前CUDA的最低支持版本,则需要重新安装CUDA环境

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

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

相关文章

观众信息设置与统计(视频高级分析与统计功能)

Web播放器(POLYV-html5-player)支持设置观众信息参数,设置后在播放器上报的观看日志中会附带观众信息,这样用户就可以通过管理后台的统计页面或服务端API来查看特定观众的视频观看情况了。 一、观众信息设置 播放器设置观众信息参…

《数据库》 MySQL库表操作

1. SQL语句基础 1.2 SQL简介 SQL:结构化查询语言(Structured Query Language),在关系型数据库上执行数据操作、数据检索以及数据维护的标准语言。使用SQL语句,程序员和数据库管理员可以完成如下的任务 改变数据库的结构 更改系统的安全设置…

DSP的基础平台搭建

1、CCS6.0的安装安装步骤这里就不说了,只谈论最可能遇到的问题:可以看到为需要关闭防火墙和扫描;在这里将其都关闭,然后可以断掉网络,关闭联想管家,可能还是会出现防火墙提示,但是可以安装&…

下一代防火墙-终端安全防护

实验设备1、 山石网科(hillstone)系列下一代防火墙(实训平台v1.0中hillstone设备)2、 三层交换机一台(实训平台v1.0中cisco vios l2设备)3、 二层交换机一台(实训平台v1.0中cisco iol switch设备…

Scala实现网页数据采集示例

Scala 可以轻松实现简单的数据采集任务,结合 Akka HTTP(高效HTTP客户端)和 Jsoup(HTML解析库)是常见方案。Scala因为受众比较少,而且随着这两年python的热门语言,更让Scala不为人知,…

【IO复用】五种IO模型

文章目录五种IO模型Linux设计哲学BIONIOAIOSIOIO多路复用五种IO模型 Linux设计哲学 在linux系统中,实际上所有的I/O设备都被抽象为了文件这个概念,一切皆文件,磁盘、网络数据、终端,甚至进程间通信工具管道pipe等都被当做文件对…

FeatherScan v4.0 – 适用于Linux的全自动内网信息收集工具

前言 在平时渗透打靶的时候,经常要自己手工输入命令,做各种基本的信息收集,非常的繁琐,所以自研了一款工具,这款工具没有接入AI,因为不合适,接入了AI的话在一些不能上网的环境下进行信息收集&a…

如何精准筛选优质SEO服务资源?

核心要点: 中小企业选择SEO服务常陷困惑——效果难量化、承诺不透明、策略模糊化。本文剖析核心痛点,拆解技术合规性、策略透明度、行业经验匹配度等关键筛选维度,提供一套清晰的评估路径,助您在复杂市场中找到真正专业的合作伙伴…

在教育领域中,如何通过用户ID跑马灯来对视频进行加密?

文章目录前言一、什么是用户跑马灯二、用代码如何实现用户ID跑马灯的功能三、如何通过用户ID跑马灯来对视频进行加密?总结前言 在教育领域,优质视频课程易遭非法传播。为强化版权保护与责任追溯,引入基于用户ID的跑马灯水印技术成为有效手段…

MCP协议:AI时代的“万能插座”如何重构IT生态与未来

MCP协议:AI时代的“万能插座”如何重构IT生态与未来 在人工智能技术爆炸式发展的浪潮中,一个名为Model Context Protocol(MCP) 的技术协议正以惊人的速度重塑IT行业的底层逻辑。2024年11月由Anthropic首次发布,MCP在短…

同步,异步复位问题

1.同步复位的基本原理是,复位信号仅在时钟的有效边沿影响或重置触发器的状态。复位的主要目标之一是使 ASIC 在仿真时进入已知状态。由于复位树的扇出较大,复位信号相对于时钟周期可能成为 “晚到信号”。即使复位信号会通过复位缓冲树进行缓冲&#xff…

数组和指针回顾,练习与解析

代码见:登录 - Gitee.com 1.数组和指针练习与解析 1.1数组名 1.sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小。 2.&数组名,这里的数组名表示整个数组,取出的是整个数组的地址。 3.除此之…

【牛客刷题】活动安排

文章目录一、题目介绍二、解题思路2.1 核心问题2.2 贪心策略2.3 正确性证明三、算法分析3.1 为什么按结束时间排序?3.2 复杂度分析3.3 算法流程图解3.3.1 流程图说明3.3.2 关键步骤说明四、模拟演练五、完整代码一、题目介绍 活动安排 题目描述 给定 nnn 个活动&am…

第1讲:C语言常见概念

目录 一、什么是C语言? 二、C语言的历史与成就 三、编译器选择(VS2022) 1、编译与链接 2、编译器对比 3、VS2022的优缺点 四、VS项目与源文件、头文件介绍 五、第一个C语言程序 六、main函数 七、printf和库函数 八、关键字介绍 …

WinUI3入门18:从APP打开商店链接以及实现内购

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…

BI布局拖拽 (1) 深入react-gird-layout源码

因为有个拖拉拽的需求,类似于quickBi那样的效果。在网上调研了一下发现react-grid-layout实现效果类似,但其也有局限性,比如不支持嵌套,不支持在多个gridLyaout之间互相拖拽。 要求:基于react-grid-layout的思路&#…

CentOS环境搭建-快速升级G++版本

在CentOS环境中快速升级G编译器版本,对于追求最新语言特性的开发者来说至关重要。由于CentOS默认的软件仓库可能不提供G的最新版本,我们通常需要借助第三方软件源,如Developer Toolset或使用Spack等包管理器来完成这一任务。下面将详细介绍两…

分布式接口幂等性的演进和最佳实践,含springBoot 实现(Java版本)

一、背景:为什么需要幂等性 在微服务、分布式架构下,网络不可靠、请求重试机制(如前端超时重发、客户端重发、网关重试、消息消费失败重试等)会带来重复请求,如果接口没有幂等性,可能导致: 重复…

OGRE 3D----6. 背景图片渲染实现详解

1. 背景图片渲染原理 1.1 渲染队列机制 Ogre3D 使用渲染队列(Render Queue)来控制对象的渲染顺序。背景图片需要在所有其他对象之前渲染,因此我们将其设置为 RENDER_QUEUE_BACKGROUND。 1.2 视图变换控制 为了让背景图片始终保持在场景的最远处,我们需要: 使用单位投影…

K线连续涨跌统计与分析工具

K线连续涨跌统计与分析工具 1. 概述 本工具是一个用于分析金融时间序列数据(特别是K线数据)的Python脚本,主要功能是统计连续n根同方向K线后,第n+1根K线的涨跌情况。该工具不仅提供统计分析功能,还支持图形化标记以验证结果,帮助交易者和量化分析师识别市场中的特定模式…