1 CUDA简介
- GPU为图形处理器, 也是显卡的“大脑”
- 显卡集成了GPU, 显存和其他电路的硬件
- GPU: 计算密集型
- CPU: 逻辑流控制
- GPU性能指标:
- GPU不能单独计算, CPU+GPU组成异构计算架构
- CPU起到控制作用, 一般成为主机(Host), GPU可以看作CPU的协处理器, 一般称为设备(Device); 主机和设备之间内存访问一般通过PCle总线链接(速度不快)
- 简言之:CUDA是英伟达写给GPU的“软件语言”, 让GPU变成超级计算机, 那么CUDA怎么工作呢?
- 硬件基础: CUDA只在英伟达的GPU上跑
- 软件部分: C/C++加上CUDA语法写代码
- 并行计算: GPU有几千个小核心, 每个核心干一小块活
- 2006年, NVIDIA(英伟达)公司发布CUDA(Compute Unified Device Architecture, 统一计算设备架构, 也就是说CUDA是NVIDIA开发的一种“超级工具”,让GPU可以做更多的事情, 比如跑复杂的计算任务, AI训练等), CUDA建立在NVIDIA的CPU上的一个通用并行计算平台和编程模型
- CUDA旨在支持各种语言和应用编程接口,最初基于C语言,目前支持C++,python等语言(本篇笔记使用C++)
- CUDA提供两层API接口,CUDA驱动(driver)API和CUDA运行时(runtime)API, 两种API调用性能几乎无差异