1 GPU 介绍
GPU(graphics processing unit),意为图形处理器,也被称为显卡(graphics card)。GPU的浮点数运算峰值就比同时期的CPU高一个量级;GPU的内存带宽峰值也比同时期的CPU高一个量级。
CPU和GPU的显著区别是: 一个典型的CPU拥有少数几个快速的计算核心,而一个典型的GPU拥有几百到几千个不那么快速的计算核心。所以,GPU是靠众多的计算核心来获得相对较高的计算性能的。
GPU计算不是指单独的GPU计算,而是指CPU+GPU的异构(heterogeneous)计算。一块单独的GPU 是无法独立地完成所有计算任务的,它必须在CPU 的调度下才能完成特定任务。
通常将起控制作用的CPU 称为主机(host),将起加速作用的GPU 称为设备(device)。主机和(非集成)设备都有自己的DRAM(dynamicrandom-access memory,动态随机存取内存),它们之间一般由PCIe总线(peripheral component interconnect express bus)连接。
2 CUDA程序开发工具介绍
CUDA 编程语言是基于C/C++语言。
CUDA提供了两层API,即CUDA驱动(driver) 和CUDA运行时(runtime) 。
其中,CUDA驱动是更加底层的API,它为程序员提供了更为灵活的编程接口;CUDA运行时API是
在CUDA驱动API的基础上构建的一个更为高级的API,更容易使用。这两种API在性能上几乎没有差别。 故本书只涉及runtime API,下图展示了CUDA开发环境的主要组件。
3 CUDA环境搭建
这里介绍Windows环境搭建、Linux环境搭建请自行搜索。
IDE选择Visual Studio Community 2019 ,CUDA版本选择Windows_X86_64_10,CUDA下载连接,Installer Type随便选
注意: cuda11.2及以下的版本,只有下载visual studio2019及以下的版本才能自动配置,否则需要手动配置
安装好后打开CMD进入cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\替换成你的\extras\demo_suite,然后再输入“bandwidthTest.exe”和“deviceQuery.exe”,输出中Result=PASS*就代表安装成功了
然后进入C:\ProgramData\NVIDIACorporation\CUDASamples\v10.1\1_Utilities\deviceQuery
找到
右键使用VS打开
选择运行,若显示RESULT=PASS,则表示visual studio添加cuda成功
4 CUDA官方手册
编程指南(programmingguides):
《CUDAC++ProgrammingGuide》,见以下网址:
- https://docs.nvidia.com/cuda/cuda-c-programming-guide
《CUDAC++BestPracticesGuide》,见以下网址:
- https://docs.nvidia.com/cuda/cuda-c-best-practices-guide
针对最近的几个GPU架构进行优化的指南,这几个简短的文档可以帮助有经验的用户迅速了解一个新的架构。包括以下网址:
- https://docs.nvidia.com/cuda/kepler-tuning-guide
- https://docs.nvidia.com/cuda/maxwell-tuning-guide
- https://docs.nvidia.com/cuda/pascal-tuning-guide
- https://docs.nvidia.com/cuda/volta-tuning-guide
- https://docs.nvidia.com/cuda/turing-tuning-guide
CUDAAPI手册(CUDAAPIreferences):
– CUDA 运行时 API 的手册:
- https://docs.nvidia.com/cuda/cuda-runtime-api
– CUDA驱动API的手册:
- https://docs.nvidia.com/cuda/cuda-driver-api
– CUDA 数学函数库 API 的手册:
- https://docs.nvidia.com/cuda/cuda-math-api
参考的是与CUDA10.2对应的官方手册