深度学习GPU的环境太乱?从头配置环境:理解+实操

深度学习CUDA环境太乱?环境配置:理解+实操

【注:从1开始进入正题】

小白关于环境配置的一点理解

linux下所有的命令行都是工具,类似软件,安装在某个位置,并把位置添加到环境变量里面。通过which XX就能查看到该位置在哪

nvidia-smi是一个管理监控GPU的工具

nvcc是运行时,编译驱动GPU的工具,安装cuda时一定会自带这个,所以检查这个就知道有没有CUDA

  • 两个不一样,后者输出的是runtime API,这个是运行时要调用的所以torch必须和这个配合。前者是驱动支持的最高版本的cuda,并不是实际安装的cuda

下载------(安装的位置)及配置其对应环境变量

装环境要注意,因为依赖,有的顺序不能变。

0.装环境之前你需要知道有关CUDA的事

查看官网安装教程,我们首先发现,要区分以下几个:

OS:你使用GPU所用的操作系统

NVIDIA hardware:GPU物理意义上的显卡

NVIDIA CUDA:加速GPU显卡使用的(用c++写的)库

和他的驱动CUDA driver:使用CUDA需要的编译驱动.即nvcc

(下载CUDA包把这两个都包括了)

所以,要为深度学习配置环境,要安装CUDA及其驱动,cuDNN,pytorch(版本要对应才能成功)

进一步理解(optional)

打开官网给出的表格Support Matrix :: NVIDIA cuDNN Documentation,最右边的Maxwell, pascal等属于GPU架构。你可以直接搜索自己的GPU型号+architecture就能找到是什么架构。比如GTX 4090就是Ada架构。这些架构是时间顺序推出的,可以说是随着工艺发展nm越来越小,所以性能越来越好(类似以前的古董机和现在的智能手机,当然是首选现在的)。Ada架构算是最新的。一个系列的产品可能会随着架构的更新不断推出新的。

RTX是一种平台platform,集成了显卡工作可能需要的一些低层技术,比如渲染图形的光流追踪,AI计算的加速功能。(只需要调用对应API即可)

Geforce是一个产品系列的名字。主打面向游戏的,普通消费级显卡。能搜到该系列产品的网站,看到都有什么产品。并列的有Quadro,Tesla。前后两个是专业级显卡产品。还有面向数据中心系列,面向边缘硬件端计算的。

  • 但是产品都有交叉功能。比如Geforce 4090也能跑深度学习,quadro系列专门面向计算,但是价格贵。对有的人来说,可能4090更划算。
  • 常听的Tesla是数据中心产品中的一个系列,面向工作站

从右往左第二列:CUDA compute capability,,所有显卡,不同版本除了性能不同,功能也有区别,所以挑选时

  • 首先找到符合你性能的

  • 然后看你需要的功能或技术该GPU上有没有。比如你AI计算,对数据精度有要求,32还是64bit的计算,对应的GPU版本上有没有。(当然我现在还没到这个程度)

下一列:GPU的驱动,不同cuDNN库需要不同版本驱动。

下一列:我们知道c++编译的时候,有动态链接和静态链接两种(虽然我还不知道这两种有什么应用场景需求)

下一列:CUDA Toolllkit:开发CUDA,更好使用GPU的环境,能让用户自己编程(类似java也有toolkit?开发时用到的必要、辅助工具等)。安装驱动时的一个工具。(比如选择下载文档?重新下载驱动等)

第一列:cuDNN库,同样是开发CUDA时,用到的库(类似python写时各种import)

  • CUDA11和12系列支持的cnDNN的库版本也不一样。

如何查看你当前的GPU型号?

lspci | grep -i vga命令输出的:

VGA compatible controller指的是计算机显示图形的一种软件/方式。

NVIDIA Corporation Device 2684 (rev a1),最后的2684通过网站能查出设备型号,每个设备有唯一型号Linux-ubuntu系统查看显卡型号、显卡信息详解、显卡天梯图_ubuntu查看显卡-CSDN博客

发现GPU驱动装的乱七八糟的,网上各种环境变量路径我也没有,决定重装一次。

1. 从驱动重装GPU环境

根据官网教程Installation Guide :: NVIDIA cuDNN Documentation

按照1.1.1下载驱动的run文件,运行

根据1.1.2安装toolkit,根据官网教程链接走,前面的大概浏览一下在说什么。

1.2根据教程安装cuDNN

1.3跟教程走,你下载什么类型的安装包,就找到对应的教程去做

1.4跟着教程测试

⛏可能用到的命令行工具:

Liunx使用apt安装本地deb软件包_apt安装deb包-CSDN博客

测试每个是否安装成功:

  • 驱动nvcc:
    • nvcc --version
    • nvidia-smi 显示驱动版本和刚才安装的一致

注:

  • nvidia-smi和nvcc显示的版本可能不一样。看网上的说法后者是实际安装的版本号,前者是可支持的最高驱动版本。
  • 最关键的是11和12区别大,如果是11.1, 11.5什么的应该区别不大(🍅大家有懂的可以解惑一下)

2. 装对应的pytorch包

也跟着官方教程来Start Locally | PyTorch

因为cuda最主要是11和12两个大区别,所以根据你安装的选择就行,不用纠结细分。

注:

如果你使用的是conda环境,一定要注意你当前python环境中,torch使用的是pip下载的还是conda下载的。我按照官网用conda命令下载后,发现还是torch.cuda.is_available()获取不到GPU

我发现我用两种方式都下载过,conda list查看当前环境的包,torch是cpu版本,还有一个pytorch。

实验一下python, import torch显示torch显示获取不到,所以用的是pip下载的。

最后用pip也下载了新的torch才可以

🍅我很好奇conda是如何处理这两种分别下载的torch的?挖个坑。有懂的小伙伴解惑一下

⛏查看当前环境:python3 -m torch.utils.collect_env

3. mmsegmention等安装

根据教程mmsegmentation/docs/en/get_started.md at main · open-mmlab/mmsegmentation (github.com),主要是mmcv的安装,直接用mim装最新版就完了

插个空,有问题以后再补充。

相关推荐
Tianyanxiao32 分钟前
如何利用探商宝精准营销,抓住行业机遇——以AI技术与大数据推动企业信息精准筛选
大数据·人工智能·科技·数据分析·深度优先·零售
撞南墙者39 分钟前
OpenCV自学系列(1)——简介和GUI特征操作
人工智能·opencv·计算机视觉
OCR_wintone42141 分钟前
易泊车牌识别相机,助力智慧工地建设
人工智能·数码相机·ocr
王哈哈^_^1 小时前
【数据集】【YOLO】【VOC】目标检测数据集,查找数据集,yolo目标检测算法详细实战训练步骤!
人工智能·深度学习·算法·yolo·目标检测·计算机视觉·pyqt
一者仁心1 小时前
【AI技术】PaddleSpeech
人工智能
是瑶瑶子啦1 小时前
【深度学习】论文笔记:空间变换网络(Spatial Transformer Networks)
论文阅读·人工智能·深度学习·视觉检测·空间变换
EasyCVR1 小时前
萤石设备视频接入平台EasyCVR多品牌摄像机视频平台海康ehome平台(ISUP)接入EasyCVR不在线如何排查?
运维·服务器·网络·人工智能·ffmpeg·音视频
柳鲲鹏2 小时前
OpenCV视频防抖源码及编译脚本
人工智能·opencv·计算机视觉
西柚小萌新2 小时前
8.机器学习--决策树
人工智能·决策树·机器学习
向阳12182 小时前
Bert快速入门
人工智能·python·自然语言处理·bert