配置你的AI学习框架,从sklearn谈到pytorch(1)

前言,最近几天小伞君在配置基于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,知乎上面的详细分析,总结一下就是下面的内容:

如下的总结基于下列链接的作者总和而成,遵循对应的版权协议:

https://www.cnblogs.com/marsggbo/p/11838823.html

为什么电脑装了pytorch没有安装cuda,还是能够使用gpu? - 知乎

cuda 的driver API 和 runtime API_cuda的两种api_Be long的博客-CSDN博客

精简CUDA教程——CUDA Runtime API_cuda_runtime_api.h_Adenialzz的博客-CSDN博客

附上版权声明:

考虑到CC 4.0 BY-SA协议同样包含改动内容的版权保护,因此这里遵循协议将链接附上:

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

cuda 的driver API 和 runtime API_cuda的两种api_Be long的博客-CSDN博客

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

精简CUDA教程——CUDA Runtime API_cuda_runtime_api.h_Adenialzz的博客-CSDN博客

  1. cuda包含三大组件,分别是 NVIDIA driver(驱动)、toolkit 和 samples。

  2. cuda driver已经内置在你的电脑里面了(对应Windows用户,Linux应该也是,具体的不清楚)(不然你觉得平时看剧的时候,是谁在渲染你窗(口)?)

  3. driver包含driver相关的一系列命令,例如nvidia-smi,提供了对于Driver APIs的访问

    等等等,这Driver APIs是什么鬼?别急,往下看

    还有就是配置方法及相关传送门也在下面,有需自行跳转,如果不清楚原理最好看完再跳

  4. driver 和toolkit可以分开安装,并且同一台电脑上二者支持的CUDA版本可以不一样,只要保证驱动的CUDA比toolkit的CUDA版本大就行

  5. toolkit提供了对Runtime APIs的访问,所以nvcc命令是toolkit提供的,因此,在没有nvcc的情况下,也可能有nvidia-smi命令(只有driver)

  6. 又由于英伟达显卡的APIs架构如下:

  7. 因此就很直观了:Driver的权限最底下,runtime APIs封装了一部分Driver,因此,这二者的CUDA版本存在Driver > Runtime的关系。

  8. 这里我们需要用到nvcc,CUDNN来配置,所以需要runtime API,我又不想覆盖原先的CUDA版本,因此选择的CUDA版本在nvidia-smi的版本之下。

  9. 安装,安装参考了如下几位博主的资料,我就不过多赘述,这里放链接在这,有需自取:(莫得Linux的,但过程应该差不多,除了无环境变量)

    1. (Windows下安装写得很全的一个教程,强推)Windows下安装CUDA并配置cuDNN教程_cuda安装_这也太南了趴的博客-CSDN博客

    2. 检测是否安装成功:怎么检查cuda是否安装成功(以及查看cuda的安装位置)_查看cuda是否安装成功_舒心远航的博客-CSDN博客(CUDNN的检测方法存疑,之前CUDNN未安装,仅安装CUDA时也能通过,建议上tensorflow==2.10.0直接检测,tf找得到GPU就可以,否则不行)

    3. 还有这个,如果真的都全局乱装CUDA的可以参考一下多个CUDA的配置方案:如何在电脑上安装多个版本的CUDA_多个cuda_识久的博客-CSDN博客

  10. 安装好深度学习库

    1. pytorch,PaddlePaddle(easy,自行安装)

    2. tensorflow(windows一般用户安装2.10.0及以下版本,或是某些版本对应的GPU分支),对于WSL2用户或者Linux,无脑pip install即可

      1. 理由是2.10.0以后的TF版本不再支持无WSL2的windows操作系统。

      2. 详见:GPU 支持  |  TensorFlow

  11. 测试是否查得到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化等

猜你喜欢

转载自blog.csdn.net/unrealnum_border/article/details/129759414
今日推荐