一、 CUDA简介
1.1 官方介绍
CUDA是NVIDIA专为GPU上的通用计算开发的并行计算平台和编程模型。借助CUDA开发者能够利用GPU的强大性能显著加速计算应用。 在经GPU加速的应用中,工作负载的串行部分在CPU上运行,且CPU已针对单线程性能进行优化,而应用的计算密集型部分则以并行方式在数千个GPU核心上运行。使用CUDA时,开发者使用主流语言(如 C、C++、Fortran、Python 和 MATLAB)进行编程,并通过扩展程序以几个基本关键字的形式来表示并行性。
1.2 要点总结
- CPU+GPU,CPU处理串行任务(如数据读取、数据预处理等),GPU加速(利用其多核心的特点,并行计算),这就是所谓的“异构计算”
- CUDA可以用C/C++,python,matlab等进行编程,我们主要使用C++
- CUDA的特点主要在于“多核心”,也就是他的并行能力。它的单核能力相对CPU是非常弱的,但是它胜在核心多
二、 环境准备
系统环境选择Windows10,也可以选择linux系统,下面介绍一下Windows10中,CUDA环境的准备
2.1 Microsoft Visual Studio安装
由于CUDA主要使用C++进行开发,所以首先需要安装C++的代码环境,Microsoft Visual Studio为windows上首选的C++编译器,所以我们先安装Microsoft Visual Studio,直接搜索Microsoft Visual Studio,然后根据官网安装即可,现在最新版是2022
2.2 CMake安装(可选)
CMake - Upgrade Your Software Build System 直接下载安装即可
2.3 显卡驱动安装
NVIDIA GeForce 驱动程序 - N 卡驱动 | NVIDIA 在网页中,根据自己的显卡型号,下载相应的驱动,推荐下载比较新的版本,如果下载老的版本,可能无法支持最新版本的cuda 如果已经安装了老版本的驱动,但是要安装最新版本的cuda,也需要把驱动升级一下
2.4 CUDA安装
CUDA Toolkit - Free Tools and Training | NVIDIA Developer 在官网下载最新版本即可(也可以在网页下方找到之前版本的链接),然后点击下载的文件,傻瓜式安装。 会安装在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.x路径下。 版本列表:CUDA Toolkit Archive | NVIDIA Developer
2.5 项目准备
NVIDIA/cuda-samples: Samples for CUDA Developers which demonstrates features in CUDA Toolkit (github.com) 我们使用github上的cuda示例代码,作为学习的材料 首先使用git命令,将这个项目clone到本地,项目结构如图
根据自己安装的msvs版本,双击打开即可,打开后如图所示
左侧为demo项目的分类,之后一个一个学吧
2.6 学习资料准备
- cuda官方文档:CUDA Toolkit Documentation 12.2 (nvidia.com)
- cuda初学者:github.com
- cuda-samples:NVIDIA/cuda-samples: Samples for CUDA Developers which demonstrates features in CUDA Toolkit (github.com)
三、学习计划
3.1 基础
- 根据官方文档和网上其他的学习资料,学习了解cuda相关的概念
- 根据cuda-samples,学习cuda代码写法
3.2 进阶
- 学习cuda高级特性
- 查看一些源代码,例如PyTorch、TensorRT等框架使用cuda的部分