VS code配环境,4080S和4090训练速度对比

1. shell设置

1.1 更改系统运行脚本的执行策略

打开系统的 Windows PowerShell 出现如下报错:

. : 无法加载文件 C:\Users\YOLO\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参
阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 3
+ . 'C:\Users\YOLO\Documents\WindowsPowerShell\profile.ps1'
  +   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      + CategoryInfo          : SecurityError: (:) [],PSSecurityException
      + FullyQualifiedErrorId : UnauthorizedAccess

★解决方法:

更改执行策略为RemoteSigned,以管理员身份打开 PowerShell 输入:

set-executionpolicy remotesigned

选择“是”

系统默认模式为restricted

注: 为防止恶意脚本的执行,PowerShell 中设计了一个叫做执行策略(Execution Policy)的东西(我更倾向于把它叫做脚本执行策略)。我们可以在不同的应用场景中设置不同的策略来防止恶意脚本的执行。本文主要是解释这些执行策略,因为笔者在学习的时候发现它们并不是那么清晰易懂。
PowerShell 提供了 Restricted、AllSigned、RemoteSigned、Unrestricted、Bypass、Undefined 六种类型的执行策略

1.2 anaconda添加到系统环境变量

问题:
系统的powershell、prompt识别不到conda和pip
原因:
调用系统的和调用anaconda里的powershell、prompt是不一样的,anaconda里的powershell、prompt是能识别conda和pip命令的

★解决方法:

控制面板-系统-高级系统设置-高级-环境变量
系统变量-双击Path-新增以下6条,一行一条:

D:\miniconda3
D:\miniconda3\Scripts
D:\miniconda3\Library\bin
D:\miniconda3\Library\usr\bin
D:\miniconda3\Library\mingw-w64\bin
D:\Microsoft VS Code\bin

Anaconda根目录视具体情况更改,如果是miniconda同样,好像miniconda没有mingw-w64\bin,跳过这条即可
到此,终端问题全部解决
在这里插入图片描述
重启终端,激活环境时,可能会让你CondaError: Run ‘conda init’ before ‘conda activate’
照做即可:

conda init

我的输出如下(仅作记录):

no change     D:\miniconda3\Scripts\conda.exe
no change     D:\miniconda3\Scripts\conda-env.exe
no change     D:\miniconda3\Scripts\conda-script.py
no change     D:\miniconda3\Scripts\conda-env-script.py
no change     D:\miniconda3\condabin\conda.bat
no change     D:\miniconda3\Library\bin\conda.bat
no change     D:\miniconda3\condabin\_conda_activate.bat
no change     D:\miniconda3\condabin\rename_tmp.bat
no change     D:\miniconda3\condabin\conda_auto_activate.bat
no change     D:\miniconda3\condabin\conda_hook.bat
no change     D:\miniconda3\Scripts\activate.bat
no change     D:\miniconda3\condabin\activate.bat
no change     D:\miniconda3\condabin\deactivate.bat
modified      D:\miniconda3\Scripts\activate
modified      D:\miniconda3\Scripts\deactivate
modified      D:\miniconda3\etc\profile.d\conda.sh
modified      D:\miniconda3\etc\fish\conf.d\conda.fish
no change     D:\miniconda3\shell\condabin\Conda.psm1
modified      D:\miniconda3\shell\condabin\conda-hook.ps1
no change     D:\miniconda3\Lib\site-packages\xontrib\conda.xsh
modified      D:\miniconda3\etc\profile.d\conda.csh
modified      C:\Users\XXX\Documents\WindowsPowerShell\profile.ps1
modified      HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun

==> For changes to take effect, close and re-open your current shell. <==

2.vs code设置

2.1 基本插件

先找扩展图标(左边4方块飞一个角)
搜chinese装中文包、搜python装python基本包

2.2 设置解释器

打开一个项目的py文件,右下角设置python解释器

2.3 自动激活环境

vs code更改默认终端

法(1)

Ctrl+Shift+P搜索Terminal: Select Default Profile
选择默认终端为
cmd****在这里插入图片描述在这里插入图片描述

法(2)

ctrl+, 打开设置-功能-终端,找到Integrated > Default Profile
Linux:
在这里插入图片描述
Windows:
在这里插入图片描述

2.4 如果出现两个激活环境

在这里插入图片描述

conda config --set auto_activate_base False

关掉conda自动激活环境,问题解决
在这里插入图片描述

官方解释:
https://github.com/microsoft/vscode-python/wiki/Activate-Environments-in-Terminal-Using-Environment-Variables

3.conda虚拟环境中查看cuda、cuDNN是否安装

注意:虚拟环境里的cuda、cudnn和电脑上安装的cuda、cudnn是相互独立的,这里讲的是conda环境里面的
终端激活环境

conda activate myenv

进入python编程模式

python

输入以下命令

import torch
print(torch.cuda.is_available())  #返回True则说明已经安装了cuda
print(torch.__version__)
print(torch.version.cuda)
print(torch.backends.cudnn.is_available())  #返回True则说明已经安装了cuDNN
print(torch.backends.cudnn.version())

在这里插入图片描述

题外话:系统和编译器对训练速度的影响

系统和编译器对训练速度影响蛮大的,以下为所有参数、软件、包环境一致的情况下的对比测试,虽然硬件环境没有严谨一致,但是CPU、内存性能都是完全过剩的(GPU全程使用率99%,没有GPU空闲等待数据读写的情况)。


  1. win11 + pycharm,torch-2.1.2+cu121 4080 SUPER:跑yolov8n,17秒一轮
  2. win11 + VS code,torch-2.1.2+cu121 4080 SUPER:跑yolov8n,16秒一轮
  3. Ubuntu20.04 + VS code,torch-2.1.2+cu121 4080 SUPER:跑yolov8n,14秒一轮
  4. autodl租的4090,torch-2.1.2+cu121 4090:跑yolov8n,13秒一轮

以下为4080S和4090在软件包环境完全相同(系统不同)的对比情况:

我为什么要对比4080S和4090:
因为穷买了4080S,想对比看看,用性价比安慰一下自己。
下面的对比对买4090的富哥没有参考价值,请跳过
按照4090历史最低1.1w-1.2w价格算,4080目前8k出头,4k(4090的30%+)的价格差距
现在4090D都要1.3w-1.4w往上,多2k的价格,买个Dog属实心里不舒服


yolov8n(8GFLOPs),batch_size=64,workers=8:
4080S:14秒
4090:13秒
200epoch差距=200秒=3-4分钟,训练时长差距很小


yolov8s(28GFLOPs),batch_size=64,workers=8:
4080S:26秒
4090:22秒
200epoch差距=800秒=13-14分钟,训练时长差距还不是很明显


yolov8l(165GFLOPs),batch_size=16,workers=8:
4080S:1:18秒
4090:1:05秒~06秒(batch_size=16),1:05秒(batch_size=32)
200epoch差距=2600秒=43-44分钟,训练时长差距明显了


其实一般自己炼丹(读研需求)的话,基本就是用50GFLOPs以内的模型,差不多yolov8s这个量级
差距撑死就是十几分钟到半小时的总训练时长,现在入的话,感觉4070tis性价比最高吧,富一点4080s,感觉现在上4090或者4090D不如等5090吧
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

### A100 GPU 与 4090 GPU 的计算能力对比 NVIDIA A100 GeForce RTX 4090 是两款设计目标不同的高性能处理器。A100 主要面向数据中心企业级应用,而 4090 更适合游戏个人工作站用途。 #### 计算性能参数 - FP32 单精度浮点运算峰值性能:19.5 TFLOPS - FP64 双精度浮点运算峰值性能:9.7 TFLOPS - 内存带宽:1.6 TB/s (HBM2e)[^1] - **GeForce RTX 4090** - FP32 单精度浮点运算峰值性能:82.6 TFLOPS - 内存带宽:1 TB/s (GDDR6X) 从单精度浮点运算的角度来看,RTX 4090 显著高于 A100。然而,在实际应用场景中,尤其是对于大规模并行处理任务而言,内存带宽其他因素同样重要。 #### 实际效能评估 由于两者定位不同,直接通过理论峰值来衡量并不完全准确。通常情况下: - 对于深度学习训练工作负载,考虑到 A100 支持更高效的张量核心操作以及更高的内存带宽,大约需要 **两到三块** RTX 4090 才能接近一块 A100 的整体表现。 - 如果仅考虑纯浮点运算能力,则可能只需要较少数量的 4090 就可以达到相似水平。 需要注意的是,具体比例还会受到特定算法优化程度的影响,因此上述估计仅供参考。 ```python # Python code snippet to demonstrate theoretical performance comparison a100_fp32_performance = 19_500 # GFLOPS rtx4090_fp32_performance = 82_600 # GFLOPS ratio = rtx4090_fp32_performance / a100_fp32_performance print(f"One A100 is approximately equivalent to {round(ratio)} RTX 4090s in raw FP32 performance.") ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dneccc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值