在windows11环境下安装CUDA11.6+Anaconda3+pyToach1.13搭建炼丹炉

news2024/11/20 12:25:19

0.电脑环境

系统:win11
显卡:NVIDIA GTX1650
还有一个pyCharm,其他也用不到了,需要的文章中会进行说明

1.安装CUDA11.6

目前2023.03出来的pyToach2.0是用不到了,因为最低版本支持CUDA11.7。我的显卡是1650,驱动达不到CUDA11.7的要求,因此安装不了11.7。(主要原因是和女朋友端午旅游把我计划要买的4060TI 16G钱花掉了/(ㄒoㄒ)/~~,只能继续压榨我的我的小显卡了)。
pyToach2.0看说明是比1.13快很多,但是安装方式一样的,有好显卡的一定要安装CUDA11.7进而支持pyToach2.0
PyTorch的官网:官网
可以看的具体的依赖
在这里插入图片描述
显卡驱动和cuda对照
在这里插入图片描述
首先打开 cmd 命令窗口,输出如下命令:

nvidia-smi

可以看到,此时显示的表格中,有一个字段叫 CUDA Version,像我的界面是这样的:
在这里插入图片描述在这个官方网站:老黄的CUDA网站
找到11.6,下载它,三个都可以下载,随便选一个
在这里插入图片描述
在这里插入图片描述
说明:
安装cuda时,第一次会让设置临时解压目录,第二次会让设置安装目录;

临时解压路径,建议默认即可,也可以自定义。安装结束后,临时解压文件夹会自动删除;

安装目录,自定义最好;

注意:临时解压目录千万不要和cuda的安装路径设置成一样的,否则安装结束,会找不到安装目录

选择自定义安装

安装完成后,配置cuda的环境变量;

命令行中,测试是否安装成功;下面是具体安装步骤:

1)双击“exe文件”,选择下载路径,换一个其他的盘也可以。
在这里插入图片描述
一直确定
2)自定义安装,精简版本是下载好所有组件,并且会覆盖原有驱动,所以在这里推荐自定义下载
在这里插入图片描述
3)如果电脑上没有visual studio,后面会让下载,所以可以取消这个复选框
在这里插入图片描述
4)下面是比较重要的安装路径选择,建议先在自己电脑上安装软件的盘中先建立两个文件夹:
在这里插入图片描述
4.1) 然后将第一个和第三个目录更换为上面的CUDAToolkit,第二个目录更换为CUDASamples。记住安装目录
在这里插入图片描述
后面一直向下,然后就是查看一下环境变量了。点击设置–>搜索高级系统设置–>查看环境变量
在这里插入图片描述
在这里插入图片描述
上面的环境变量是自己生成的,无需手动配置。之后在cmd下查看是否可以使用命令:注意是大写V
在这里插入图片描述
这样就可以确定安装成功了。要注意自己的显卡驱动版本和cuda版本的对应,我的1650就可以安11.6了,显卡比我高的如果驱动版本不高可以升级驱动版本。

2.安装Anaconda3

下载官网:Anaconda官网,或者是清华镜像源镜像源,我感觉都可以下载
在这里插入图片描述

在这里插入图片描述
双击exe安装包,进行安装,
1)一直下一步到这里,选择所有用户
在这里插入图片描述
2)安装路径,还是推荐自定义
在这里插入图片描述
3)只选择第二项,第二项是说要默认使用python的版本,后期手动添加环境变量
在这里插入图片描述
4)安装完成
在这里插入图片描述
5)配置环境变量,点击path
在这里插入图片描述
5.1) 在编辑环境变量里,点击新建
在这里插入图片描述
5.2)新建下面这五个变量:xxx是自己的路径

D:\xxx\xxx\Anaconda3
D:\xxx\xxx\Anaconda3\Scripts
D:\xxx\xxx\Anaconda3\Library\bin
D:\xxx\xxx\Anaconda3\Library\mingw-w64\bin
D:\xxx\xxx\Anaconda3\Library\usr\bin

在这里插入图片描述
6)安装完成,验证,同时按 win + r ,输入cmd,在弹出的命令行查看anaconda版本,输入 :
conda --version和python
在这里插入图片描述
可以看的正确的版本号以及python已托管至Anaconda。可以在电脑屏幕左下角的Windows徽标键这里,选择点击绿色圈圈Anaconda Navifator将其打开
在这里插入图片描述
7)接下来是镜像源的配置,这里踩坑很多,花了好几个小时才搞定,其他博客有通过命令配置的源的,然后一些包总是无法使用。这里提供一个简单的方式。进入c盘的用户路径下,点击.condarc文件,可以用记事本方式打开。
在这里插入图片描述
然后内容修改为如下内容,注意envs_dirs:

  • D://DeepLearingEnvironment//envs是自己的路径哦。
channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
envs_dirs:
  - D://DeepLearingEnvironment//envs

编辑保存后,打开Anaconda查看镜像源,如下所示
在这里插入图片描述
在这里插入图片描述
点击configure Conda后,可以看到镜像源已更换
在这里插入图片描述
8)试着导入一下基础环境,如下所示,点击Environment下的base环境,等待加载后,可以看到环境导入完成,前面都有绿色的勾。而且速度快到飞起。至此,Anaconda也安装配置完成
在这里插入图片描述

3.在Anaconda中安装pyToacn1.13

  1. 先新建一个环境,我随便起名为pyToach1113
    在这里插入图片描述
    2)命令行添加环境,进入cmd下,输入

conda env list
antivate pyToach1113
在这里插入图片描述

2.1) 使用官方推荐命令安装pyToach,进入网站pyToach官网,选择这个标签页:
在这里插入图片描述
拉到下面,使用这个命令,注意是11.6哦

conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.6 -c pytorch -c nvidia

在这里插入图片描述
2.2) 等待漫长的命令执行完成,验证是否可以正常使用:
在这里插入图片描述
可以正常使用

4.尝试使用pyToach调用cuda

  1. 新建一个项目,环境选择刚才搞好的
    在这里插入图片描述
    2)输入如下代码
import time

import torch

if __name__ == '__main__':
    print("启动!!!")
    print("PyTorch版本:" + torch.__version__)
    print("PyTorch是否启动CUDA:", torch.cuda.is_available())

    matrix_a1 = torch.randn(15000, 9999)  # GPU运算量太大会爆显存
    matrix_b1 = torch.randn(9999, 15000)  # GPU运算量太大会爆显存

    t1 = time.time() #cpu运算前的时间
    matrix_c1 = torch.matmul(matrix_a1,matrix_b1) #cpu做矩阵相乘
    t2 = time.time() #cpu运算后的时间
    print("当前模式:",matrix_a1.device,"\t耗时:",t2-t1,matrix_c1.norm(2))

    gpu = torch.device("cuda")
    matrix_a2=matrix_a1.to(gpu)
    matrix_b2=matrix_b1.to(gpu)

    t3=time.time() #gpu运算前的时间
    matrix_c2=torch.matmul(matrix_a2,matrix_b2)
    t4=time.time() #gpu运算后的时间
    print("当前模式:", matrix_a2.device, "\t耗时:", t4 - t3, matrix_c2.norm(2))

    t5=time.time() #gpu运算前的时间
    matrix_c3=torch.matmul(matrix_a2,matrix_b2)
    t6=time.time() #gpu运算后的时间
    print("当前模式:", matrix_a2.device, "\t耗时:", t6 - t5, matrix_c3.norm(2))
    

计算一个矩阵乘法,对比一下cpu与gpu,结果如下:
在这里插入图片描述
可以看到目前已经启用了CUDA加速,且PyTorch的版本是1.13,安装成功。
因为GPU运算首次需要加载C++的包,依旧比CPU快了10多倍。第二次运算时C++的包已经加载完毕,比CPU快了将近1000倍(/(ㄒoㄒ)/~~是我的cpu跟不上gpu吗)。

3)但是,gpu计算出来的结果和cpu有些差距,看一下gpt的解释是:

通常情况下,GPU(图形处理单元)和CPU(中央处理单元)执行计算任务的方式和速度不同,这可能导致计算结果略有不同的情况。下面是一些可能导致GPU计算结果与CPU计算结果稍有不同的原因:
数值精度:GPU通常使用较低的数值精度来执行计算,例如使用32位浮点数(单精度)而不是64位浮点数(双精度)的CPU默认精度。这种精度差异可能会导致在某些情况下,GPU计算结果的舍入误差略微大于CPU计算结果。
并行计算:GPU通过并行计算大规模数据集来提高计算速度,而CPU通常是顺序执行。由于并行计算涉及到数据分割和任务分配,可能会存在微小的差异,尤其是在涉及非结合性操作(不满足交换律和结合律)时。
优化算法:GPU和CPU使用不同的指令集和优化算法来执行计算任务。这可能导致在某些情况下,GPU计算结果与CPU计算结果有细微差异。例如,某些特定的数学函数或优化算法在GPU上可能有不同的实现方式。
平台依赖性:GPU和CPU使用不同的硬件和驱动程序,可能存在平台依赖性问题。这可能会导致不同的硬件或驱动程序在执行计算时产生微小的差异。
需要注意的是,通常情况下,GPU计算结果与CPU计算结果之间的差异应该是非常小的,特别是对于大多数数值计算任务来说。如果存在较大的差异,可能是由于程序中的错误、数值稳定性问题或其他因素引起的,这时候需要进一步调查和分析问题。
为了确保结果的一致性,可以采取一些措施,如使用相同的数值精度、检查算法实现的一致性、验证代码的正确性,并进行平台和硬件的兼容性测试。

5.总结

总之,代码可以测试成功,之后可以进行愉快的炼丹了。然后有时间发一个使用上面环境进行深度学习的案例
最后说一个实话,想要一个4060ti学习为假,打游戏为真。
在这里插入图片描述

参考文章:
在Windows10环境安装CUDA11.7及PyTorch1.13–使用Nvidia RTX A4000开始炼丹之旅

【CUDA安装详细教程】

Anaconda安装-超详细版(2023)

w11下载anaconda在d盘,新建的虚拟环境总是在c盘怎么解决

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

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

相关文章

leetcode数据库题第八弹(免费题刷完了)

leetcode数据库题第八弹(免费题刷完了) 1757. 可回收且低脂的产品1789. 员工的直属部门1795. 每个产品在不同商店的价格1873. 计算特殊奖金1890. 2020年最后一次登录1907. 按分类统计薪水1934. 确认率1965. 丢失信息的雇员1978. 上级经理已离职的公司员工…

WebRTC音视频会议底层支撑技术

WebRTC允许应用使用P2P通信。WebRTC是一个广泛的话题,在本文中,我们将重点讨以下问题。 为什么Web RTC 如此受欢迎? 在P2P连接过程中会发生什么 信号传递 NATs和ICE STUN & TURN服务器 VP9视频编解码器 WebRTC APIs 安全 1.为什…

科技资讯|苹果新专利曝光:手势增强用户的交互体验

根据美国商标和专利局(USPTO)公示的最新清单,苹果公司获得了一项编号为 US 20230195237 A1 的专利,展示了使用手势导航用户界面的交互体验。 苹果这项专利涉及 iPhone、iPad、Apple Watch 和 Mac,使用屏幕生成组件和…

Typora的安装和授权(2023)

文章目录 1. 文章引言2. Typora的下载3. Typora的安装4. Typora的授权 1. 文章引言 我们在开发的过程中,不可或缺地要使用到markdown文本,支持markdown文本的编辑器有很多,其中Typora便是一款不错的编辑器。 不过,Typora是收费的…

知行之桥EDI系统QA第二期:AS2专题

随着使用知行之桥EDI系统的用户群体日益壮大,在使用过程中,用户可能对系统的工作原理、功能模块和实施过程有一些疑问。近期整理了有关 AS2 的四个常见问题: 1.知行之桥 EDI系统支持AS2 协议的 AES_GCM 算法吗?2.AS2发送文件后收…

C++不知算法系列之计数排序算法的计数之巧

1. 前言 计数排序是较简单的排序算法,其基本思想是利用数组索引号有序的原理。 如对如下的原始数组中的数据(元素)排序: //原始数组 int nums[5]{9,1,7,6,8};使用计数排序的基本思路如下: 创建一个排序数组。数组的大小由原始数组的最大值…

ActiveMQ消息队列的核心概念

文章目录 ActiveMQ消息队列的核心概念1.什么是MQ消息队列2.为什么要使用MQ消息队列3.MQ消息队列的应用场景3.1.异步处理3.2.应用解耦3.3.流量削锋 4.常见的MQ消息队列产品对比 ActiveMQ消息队列的核心概念 1.什么是MQ消息队列 Message Queue消息队列简称MQ,消息队…

NXP i.MX 6ULL工业开发板规格书( ARM Cortex-A7,主频792MHz)

1 评估板简介 创龙科技TLIMX6U-EVM是一款基于NXP i.MX 6ULL的ARM Cortex-A7高性能低功耗处理器设计的评估板,由核心板和评估底板组成。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。 评估板接口资源丰富&…

AI通用大模型 —— Pathways,MoE, etc.

文章目录 Pathways现有AI缺憾Pathways Can DoMultiple TasksMultiple SensesSparse and Efficient Mixture of Experts(MoE)Neural Computation1991, Adaptive mixtures of local expertsICLR17, Outrageously Large Neural Networks: The Sparsely-Gate…

【已解决】ModuleNotFoundError: No module named ‘timm.models.layers.helpers‘

文章目录 错误信息原因解决方法专栏:神经网络精讲与实战AlexNetVGGNetGoogLeNetInception V2——V4ResNetDenseNet 错误信息 在使用timm库的时候出现了ModuleNotFoundError: No module named timm.models.layers.helpers’的错误,详情如下: …

Windows下安装ClickHouse图文教程

文章目录 1.安装WSL21.1启用适用于 Linux 的 Windows 子系统1.2启用Windows虚拟机功能1.3将WSL2设置为默认版本1.4下载Linux内核更新包1.5安装Linux子系统1.6设置账户和密码 2.安装Docker2.1下载与安装2.2设置镜像地址 3.安装Clickhouse3.1拉取镜像3.2启动clickhouse-server3.3…

Docker学习笔记7

启动一个运行httpd服务的容器: docker run -it --namec3 centos:latest /bin/bash 在容器中安装apache服务: yum install -y httpd 在这个过程中遇到一个问题: Error: Failed to download metadata for repo appstream: Cannot prepare …

关于PHP调用openAI chatGPT一些问题

我是直接使用gpt生成的curl代码区调用的 1:windows可能出现代理访问问题,报443端口问题 解决办法:开启代理后,需要到设置 确认这里打开状态 在curl请求里面加上对应的代码 curl_setopt($ch, CURLOPT_PROXY, "127.0.0.1&qu…

java spring cloud 企业工程项目管理系统源码-全面的工程项目管理

​ ​工程项目管理系统是指从事工程项目管理的企业(以下简称工程项目管理企业)受业主委托,按照合同约定,代表业主对工程项目的组织实施进行全过程或若干阶段的管理和服务。 如今建筑行业竞争激烈,内卷严重&#xff0c…

企业运维 | NFS、Samba服务在Docker容器环境中快速搭建部署实践

欢迎关注「全栈工程师修炼指南」公众号 设为「星标⭐」每天带你 基础入门 到 进阶实践 再到 放弃学习! 专注 企业运维实践、网络安全、系统运维、应用开发、物联网实战、全栈文章 等知识分享 “ 花开堪折直须折,莫待无花空折枝。 ” 作者主页&#xff1…

chatgpt赋能python:Python能自举吗?

Python能自举吗? Python是一门高级编程语言,由Guido van Rossum于1989年开发而来。Python被广泛用于Web开发、数据分析、人工智能等领域。因为Python语法简洁易懂,易于学习,许多人都称其为“入门语言”。 那么问题来了&#xff…

Spring Cloud——演进与应用的分布式系统开发利器

🌸作者简介:花想云,目前大二在读 ,C/C领域新星创作者、运维领域新星创作者、CSDN2023新星计划导师、CSDN内容合伙人、阿里云专家博主、华为云云享专家 🌸专栏推荐:C语言初阶系列 、C语言进阶系列 、C系列、…

Linux之CentOS 7.9部署Oracle 11g r2_p13390677_112040最终版简易安装实测验证(桌面模式)

前言: Linux之CentOS 7.9部署Oracle 11g r2最终版安装实测验证(桌面模式) 介于前段时间的Windows以及linux无桌面模式环境,之前的linux oracl源包因缺失会存在报错现象,这次主要以oracle 11gr2更新包来记录下部署方式&…

不挂脖、不入耳,南卡NANK-OE骨传开放式蓝牙耳机

蓝牙耳机几乎成为和手机相同的EDC设备,无论是在工作还是通勤过程,无论是娱乐还是线上办公,随身携带的蓝牙耳机都能提供更舒适、更便捷的听觉和通话体验。 目前主流的蓝牙耳机有头戴式、入耳式和骨传耳机三类,考虑到使用的便携性普…

JavaScript:一门强大的脚本语言,掌握它,开启前端开发之路

目录 一、JavaScript的发展历史背景 二、JavaSxript的组成 三、javascript的基本特点 四、javascript的特性 五、Javascript的使用方式 六、JavaScript与Java的区别 七、JavaScript与JScript的区别 一、JavaScript的发展历史背景 JavaScript的发展历史可以追溯到20世纪9…