前言 本文将带大家了解 CUDA 编程,学习使用C和Python调用CUDA编程接口,对模型进行推理加速,性能优化。我们将从底层原理开始,带大家了解CUDA的工作机制,一步步掌握CUDA编程。相信大家会受益菲浅。
欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。
本教程来自知识星球【CV技术指南】更多技术教程,可加入星球学习。
零教程的基本概述
在深度学习蓬勃发展的今天,模型变得越来越深,参数愈加庞大,虽然准确率不断增长,由于硬件受限,对实际场景部署的要求也越来越高,CUDA 编程成为了一门必备的武林绝学。如果你对模型的推理速度有较高要求,如果你有庞大的数据流等待推理,一起跟着教程了解这门技术。
该教程目前暂定有以下章节,如有添加将会另行说明:
通过这些教程,可以说初入了 CUDA 编程的世界,基本学会了如何部署加速自己的深度学习模型。
一 CUDA简介
首先介绍一下 GPU,在计算机中,GPU 相比 CPU,拥有非常多的内核,这意味着 GPU 可以以非常高的吞吐量执行程序,如同一条非常宽阔的道路可以同时让很多车辆同时通行,例如最新的 RTX 3090 的核心数达到了恐怖的 10496 个,而当前的顶级 CPU 通常只有不超过 32 核心。因此我们需要正确地设计并行化加速算法,就可以发挥 GPU 的强大优势。
CUDA 是由英伟达 NVIDIA 于 2007 年所推出针对 NVIDIA GPU 专有系统,通过 CUDA,用户可方便地使用封闭好的 SDK 对 GPU 进行复杂的数值计算,在深度学习领域,CUDA 提供了一套强大的加速并行计算和人工智能相关的代码库,同时,NVIDIA 官方提供了非常完善的安装程序。
二 CUDA 安装
Linux 安装
首先检查本机是否有 nvidia 的显卡
lspci | grep -i "nvidia"
请不要在vm虚拟机中安装 CUDA
以笔主的电脑为例,有一张 RTX 3060 的移动显卡
之后去 NVIDIA 官网 下载对应发行版的 CUDA Toolkit,这里根据自己的深度学习框架选择版本,在安装 Toolkit 时会自带 CUDA Driver
下载文件推荐选择 runfile 格式
文件比较大,等待时确保机器上有相应的依赖库,可以运行下面命令安装依赖库
如果系统为图形界面,需要检查系统是否自带开源 NVIDIA Nouveau 驱动
lsmod | grep -i "nouveau"
如果有输出,需要禁用 Nouveau 驱动
sudo vim /etc/modprobe.d/blacklist.conf
在文件中追加如下内容
同时卸载 nvidia 相关包
sudo apt purge nvidia-*
重启系统
sudo reboot
重启后使用Ctrl + Alt + F2
进入 tt2,再次检查开源驱动是否启动
lsmod | grep -i "nouveau"
然后关闭显示服务,并修改安装文件权限
sudo service lightdm stop chmod 777 cuda_10.2.89_440.33.01_linux.run
之后运行 CUDA 安装脚本,在安装时
sudo sh cuda_*_linux.run
安装完成后脚本会自动在/usr/local
创建 cuda -> /usr/local/cuda-11.8/
软链接,在 ~/.bashrc
写入
在终端中输入 nvcc -V
,如有类似下面的输出,则安装成功
安装完成后重启图形界面
sudo service lightdm restart
接下来安装 cuDNN
https://developer.nvidia.com/rdp/cudnn-download
下载完成后解压
zip -xf cudnn-linux-x86_64-8.6.0.163_cuda11-archive.tar.xz
将解压后的文件拷贝到 CUDA 对应的安装目录下,并添加权限
即安装完成
Windows 安装
打开设备管理器,查看当前显卡型号
以笔主的电脑为例,有一张 RTX 3060 的移动显卡
再在桌面右击或打开系统小托盘,打开 NVIDIA 控制面板
这里推荐 Studio 驱动程序,不建议 Game Ready 驱动程序,可以在 NVIDIA 驱动程序下载 找到对应显卡的驱动程序。安装完成后如图所示
之后根据系统驱动程序版本下载 CUDA 安装程序,点击查看系统驱动程序版本和 CUDA 版本对应关系,推荐 exe(local)
下载完成后双击打开,这里使用默认位置
使用自定义安装
这里要记住安装位置,推荐默认
安装后会自动添加环境变量,打开 Powershell / CMD,输入nvcc -V
如有类似下面的输出,则安装成功
接下来安装 cuDNN
https://developer.nvidia.com/rdp/cudnn-download
下载完成解压后如何下图
把这三个文件夹拷贝到 CUDA 的安装目录下,同名文件夹会自动合并。
将如下路径添加到系统环境变量中
即安装完成
三 PyCUDA
PyCUDA 是 NVIDIA 针对 python 编写的 CUDA API,底层使用 C++, 使用 PyCUDA 可以更方便地编写代码。同样 CUDA 错误都会自动转换为 Python 异常。
Linux 安装
确保电脑中安装了 python 环境和 pip,安装命令
pip install pycuda
Windows 安装
根据自己的 CUDA 版本 和 Python 版本下载 whl 文件 http://www.lfd.uci.edu/~gohlke/pythonlibs/#pycuda
安装命令
pip install pycuda*.whl
四 Nvidia Nsight Systems
简称 nsys
,是一款低开销性能分析工具,旨在为开发人员提供优化软件所需的洞察力。无偏差的活动数据可在工具中可视化,可帮助用户调查瓶颈,避免推断误报,并以更高的性能提升概率实现优化。用户将能够识别问题,例如 GPU 闲置、不必要的 GPU 同步、CPU 并行化不足。
根据系统平台选择合适的安装包
https://developer.nvidia.cn/gameworksdownload#?dn=nsight-systems-2022-4
安装完成后输入命令
nsys --version
如有返回,即安装完成
本教程来自知识星球【CV技术指南】更多技术教程,可加入星球学习。
欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。
【技术文档】《从零搭建pytorch模型教程》122页PDF下载
QQ交流群:444129970。群内有大佬负责解答大家的日常学习、科研、代码问题。
其它文章
用于超大图像的训练策略:Patch Gradient Descent
CV小知识讨论与分析(5)到底什么是Latent Space?
CVPR 2023 Workshop | 首个大规模视频全景分割比赛
如何更好地应对下游小样本图像数据?不平衡数据集的建模的技巧和策
CVPR 2023 Workshop | 首个大规模视频全景分割比赛
如何更好地应对下游小样本图像数据?不平衡数据集的建模的技巧和策
用少于256KB内存实现边缘训练,开销不到PyTorch千分之一
DAMO-YOLO | 超越所有YOLO,兼顾模型速度与精度
入门必读系列(十六)经典CNN设计演变的关键总结:从VGGNet到EfficientNet
标签:教程,入门,编程,CUDA,NVIDIA,GPU,安装 From: https://www.cnblogs.com/wxkang/p/17133305.html