场景描述
搞深度学习时需要先搭建环境,需要折腾显卡驱动、cuda、cudnn、以及各种深度学习框架(TensorFlow、Pytorch等)。光听这些名词有好些人都迷糊了,更不要提解决他们之间的不兼容,完成环境搭建了。这里先简单解释上述名词,不求高深与专业,理解他们处于什么位置就行。
通俗解释
- 显卡:一块焊了GPU 芯片的电路板,上面还有电容电阻以及其他辅助芯片。 因为有些复杂计算 CPU 效率太低了,所以放在 GPU 中执行运算。类比的, cpu主板也就是一块焊了 CPU 、辅助芯片、电容电阻的电路板。至于独立显卡与集成显卡的概念,自己查吧。
- 显卡驱动 :GPU 是硬件,操作系统怎么识别并与它传输数据呢?这就需要在操作系统上装显卡驱动了。目前 GPU 厂商国外有 inter、nvidia、amd三家巨头,国内有景嘉微、中船重工等厂商。不同厂商的 GPU 都有各自的显卡驱动,因为还要适配操作系统,所以每个型号的 GPU 都有 windows 和 linux 两套版本的显卡驱动。
- CUDA:GPU 的运算能力很强大,如果只用在做简单的、特定的计算任务那就有点亏。但是直接操作 GPU 难度又有点高,英伟达就设计了一个 GPU 的通用计算框架构(框架):cuda,并且开发实现 cuda 意图的完整的工具:CUDA Toolkit。这个 CUDA Toolkit 中包含了英伟达 GPU 的驱动程序、cuda库函数、编译器等等等等。那它能做什么呢?1:调用CUDA Toolkit 里面的cuda api 就能直接操作 GPU;2:CUDA Toolkit 里面的一些工具能将 pytorch 语法编译成 GPU 可识别的指令,pytorch 底层是 C++ 实现的。英伟达设计的 cuda 的目的就是做 GPU 的通用计算平台,开发者只需要使用 cuda api 或者 cuda可翻译的语言写程序,就能实现操作 GPU,这大大降低了使用门槛。正如不是所有的奶都叫特仑苏,也不是所有的 GPU 都支持 cuda 。 cuda 是英伟达设计并实现的,所以只支持 NVIDIA GPU。
- CUDNN:这是一个专门针对深度学习领域的软件库,它里面提供了一些函数能够加速卷积神经网络的运算。它也只支持 NVIDIA GPU,这么做的原因很简单,cuda+cudnn,想搞深度学习大概率只能买 NVIDIA GPU。
- 深度学习框架:各种互联网大厂在 cuda + cudnn 的基础上设计的框架。二十多层的网络架构,调用 pytorch 只需要配置入口参数一行代码就搞定了,自己使用底层语言搭模型,难度大,费时间不说,关键还不一定能 work。TensorFlow、Ptorch 的只需要会 python 就行,至于搭网络,一行代码搞定。框架的出现更是降低了开发者的使用门槛,一批一批的人前赴后继地入坑。
上述解释是自己根据自己理解写出来的,若有错误,李姐万岁!
环境搭建
好多人都折在版本不兼容以及安装时出现的各种奇奇怪怪的异常,这块需要胆大心细,大不了全掀了重来。以 NVIDIA GPU 为硬件搭建环境。
- 查看GPU 型号以及操作系统版本
# lspci | grep -i vga01:00.0 VGA compatible controller: NVIDIA Corporation GM200 [GeForce GTX TITAN X](rev a1)``````# uname -aLinux deployer-All-Series 5.15.0-50-generic #56~20.04.1-Ubuntu SMP Tue Sep 27 15:51:29 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
CPU:x86_64GPU:GeForce GTX TITAN XOS:20.04.1-Ubuntu - 安装显卡驱动这里有两种方式安装(1)先装显卡驱动,在安装cuda;(2)安装cuda时一并将显卡驱动安装了。第(2)种方式:在官网下载cuda,需要先注册才能下载。我安装的是 CUDA Toolkit 11.6.2。不推荐使用 deb(local) 方式安装,因为该方式即便选定了指定版本,依旧会安装最新版本,可能软件仓库里面保存的就只最新版本吧。选择 runfile(local) 一次性将 显卡驱动和 cuda 都安装。
# 下载安装文件到本地wget https://developer.download.nvidia.com/compute/cuda/11.6.2/local_installers/cuda_11.6.2_510.47.03_linux.run
# 必须以 sudo 权限安装。sudosh cuda_11.6.2_510.47.03_linux.run
安装文件中包含有显卡驱动和 cuda 工具包,可以选择是否安装,这里全选。
如果安装失败,可以查看日志文件寻找失败原因:
- 显卡驱动安装日志:/var/log/nvidia-installer.log
- cuda 安装日志:/var/log/cuda-installer.log
安装成功会显示信息:
============ Summary ============
Driver: Installed
Toolkit: Installed in /usr/local/cuda-11.6/
Please make sure that
- PATH includes /usr/local/cuda-11.6/bin
- LD_LIBRARY_PATH includes /usr/local/cuda-11.6/lib64, or, add /usr/local/cuda-11.6/lib64 to /etc/ld.so.conf and run ldconfig as root
To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-11.6/bin
To uninstall the NVIDIA Driver, run nvidia-uninstall
Logfile is /var/log/cuda-installer.log
这里一定要配置 PATH 和 LD_LIBRARY_PATH ,否则上层的框架总还是找不见 cuda 在哪里!!!
# vi ~/.bashrcexportPATH="$PATH:/usr/local/cuda-11.6/bin"exportLD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-11.6/lib64"# 退出source ~/.bashrc
至此,显卡驱动和 cuda一次性安装成功。
第(1)种方式:先安装显卡驱动,在安装cuda
显卡驱动安装:https://www.cnblogs.com/chua-n/p/13208398.html
cuda安装:按照(2)中方式选择,下载cuda,在安装时
选择不安装 Driver
。
cuda 安装完成后就可以使用 nvidia-smi 查看 GPU 信息了。
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.47.03 Driver Version: 510.47.03 CUDA Version: 11.6||-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC || Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |||| MIG M. ||===============================+======================+======================||0 NVIDIA GeForce ... Off | 00000000:01:00.0 Off | N/A ||22% 45C P8 30W / 250W | 5343MiB / 12288MiB |0% Default |||| N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: || GPU GI CI PID Type Process name GPU Memory || ID ID Usage ||=============================================================================||0 N/A N/A 2898247 C python 2960MiB ||0 N/A N/A 3553478 C /usr/local/bin/python3.7 2377MiB |
+-----------------------------------------------------------------------------+
推荐使用 tar 包的形式安装,因为自己心里清楚到底装的是什么版本的。
- 安装上层框架这个自己装啦。
版权归原作者 骑着蜗牛向前跑 所有, 如有侵权,请联系我们删除。