前言,最近几天小伞君在配置基于GPU驱动的深度/机器学习框架,深深体会到了英伟达硬件帝国的绝对统治力度,终于,凭借实验室的电脑,小伞君终于享受了一回有显卡的感觉,这里给大家总结一下整体的配置之路!
PS:实验室的电脑,为了不弄坏(重装),安装的每一步都相当小心,所以间接学了不少东西,马上就给大家分享欧!
1. 从基本的pytorch配置说起……
什么?pytorch需要配置GPU吗?这不是安装下来就能用?
是这样的没错,现在PaddlePaddle也同样支持这样做了,理由是这两都自带了CUDA与CuDNN,只要本地有GPU,直接解决全部问题!
但是Tensorflow呢?
这年头有谁还用TF呀?
抛开这个不说,即便深度学习无需配置CUDA这些麻烦事,机器学习也一样要配置CUDA和一些其他的组件,以达到更快的加速效果。
小伞你雨淋多了???
机器学习用GPU???
没错,机器学习就是可以用GPU!!!
(不得不佩服Nivdia大爹的统治力,直接把隔壁AMD的ROCm(AMD的深度学习加速框架)给干碎了,AMD才刚刚能兼容TF呢,隔壁英伟达已经联动机器学习搞了一堆框架,这回彻底赣爆了AMD,奠定了英伟达在显卡加速领域的领主地位。)
(这年头谁用ROCm搞深度学习呀? )
英伟达的产品——Rapids,下属3个库:CUML,CUGRAPH,CUDF,从机器学习,图机器学习/深度学习,类pandas数据加载三个领域,直接降维打击,隔壁用CPU的跑一天,GPU加速可能几小时就把参数调好了。
因此,安装CUDA,CUDNN,以及Rapids,箭在弦上,不得不发!
2. 但是CUDA,CUDNN不是pytorch帮你all OK了?
第一:pip安装的东西,各位一般不会全局安装吧
第二:全局安装了,各位一般不会顺手了设置环境路径吧
第三:你这些真的都搞了,那。。。。。。
你是个狠人。
考虑到CUDA,CUDNN的pip安装,不清楚这里面发生了什么,所以可能出什么意外,绝顶还是自己安装了。
3. 开始安装
首先,进入cmd界面,输入nvidia-smi
nvidia-smi
不出意外的出来了这些东西:
这张图上,不是已经表面本地存在CUDA了吗???
但我的nvcc呢???(试试nvcc -V
)
网上的说法:
- CUDA Version只是表示你所能安装的CUDA版本的最高上限……
- CUDA Version表示CUDA版本的下限…..
???
最后无奈找了CSDN,知乎上面的详细分析,总结一下就是下面的内容:
如下的总结基于下列链接的作者总和而成,遵循对应的版权协议:
附上版权声明:
考虑到CC 4.0 BY-SA协议同样包含改动内容的版权保护,因此这里遵循协议将链接附上:
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明
-
cuda包含三大组件,分别是 NVIDIA driver(驱动)、toolkit 和 samples。
-
cuda driver已经内置在你的电脑里面了(对应Windows用户,Linux应该也是,具体的不清楚)(不然你觉得平时看剧的时候,是谁在渲染你窗(口)?)
-
driver包含driver相关的一系列命令,例如
nvidia-smi
,提供了对于Driver APIs的访问等等等,这Driver APIs是什么鬼?别急,往下看
还有就是配置方法及相关传送门也在下面,有需自行跳转,如果不清楚原理最好看完再跳
-
driver 和toolkit可以分开安装,并且同一台电脑上二者支持的CUDA版本可以不一样,只要保证驱动的CUDA比toolkit的CUDA版本大就行
-
toolkit提供了对Runtime APIs的访问,所以
nvcc
命令是toolkit提供的,因此,在没有nvcc
的情况下,也可能有nvidia-smi
命令(只有driver) -
又由于英伟达显卡的APIs架构如下:
-
因此就很直观了:Driver的权限最底下,runtime APIs封装了一部分Driver,因此,这二者的CUDA版本存在Driver > Runtime的关系。
-
这里我们需要用到nvcc,CUDNN来配置,所以需要runtime API,我又不想覆盖原先的CUDA版本,因此选择的CUDA版本在
nvidia-smi
的版本之下。 -
安装,安装参考了如下几位博主的资料,我就不过多赘述,这里放链接在这,有需自取:(莫得Linux的,但过程应该差不多,除了无环境变量)
- (Windows下安装写得很全的一个教程,强推)blog.csdn.net/qq_46941656…
- 检测是否安装成功:blog.csdn.net/qq_41897154…(CUDNN的检测方法存疑,之前CUDNN未安装,仅安装CUDA时也能通过,建议上tensorflow==2.10.0直接检测,tf找得到GPU就可以,否则不行)
- 还有这个,如果真的都全局乱装CUDA的可以参考一下多个CUDA的配置方案:blog.csdn.net/L1778586311…
-
安装好深度学习库
-
pytorch,PaddlePaddle(easy,自行安装)
-
tensorflow(windows一般用户安装2.10.0及以下版本,或是某些版本对应的GPU分支),对于WSL2用户或者Linux,无脑pip install即可
- 理由是2.10.0以后的TF版本不再支持无WSL2的windows操作系统。
- 详见:tensorflow.google.cn/install/gpu…
-
-
测试是否查得到GPU:
pytorch:
import torch
print(torch.cuda.is_available())
PaddlePaddle:
import paddle
print(paddle.device.get_device())
# 有gpu像这样:
# gpu: 0, 表明检测到了
Tensorflow:
import tensorflow as tf
gpus = tf.config.experimental.list_physical_devices(device_type='GPU')
cpus = tf.config.experimental.list_physical_devices(device_type='CPU')
print(gpus, cpus)
那本章的介绍就到这里,下期我们讲Rapids的相关配置,及集成学习树的相关GPU化等。