CUDA C 编程权威指南 学习笔记:第一章 基于CUDA的异构并行计算
并行性
这个主要分为任务并行和数据并行,CPU适应任务并行,GPU更假适合数据并行,虽然CPU和GPU结构类似,但是其实很不一样,
- CPU的核心比较重,用来处理非常复杂的控制逻辑,已优化串行程序执行
- GPU的核心比较轻,用于优化具有简单控制逻辑的数据并行任务,注重并行程序的吞吐量
CUDA
CUDA提供两层API来管理GPU设备和组织线程
- CUDA驱动API
- CUDA运行时API
驱动API是更低级的API,相对来说较难编程,运行API是更加高级的DPI,它在驱动API上层实现,需要注意的是运行API和驱动API在性能上没有太大的差异。在设备端,内核如何使用内存和如何组织线程对性能有着更大的影响,这两种API是互斥的,必须使用两者之一,不可以混合使用,一般都是使用运行API
NVCC编译器
NVIDIA的CUDA nvcc编译器在编译过程中讲设备代码从主机代码中分离出来,主机代码是标准的C代码,有C编译器做编译,设备代码由CUDA C编写,使用nvcc编译。在链接阶段,在内核程序调用和显示GPU设备操作中添加CUDA运行时库。
cudaDeviceReset()函数用来想的释放和清空当前进程中与当前设备相关的所有的资源
还没有评论,来说两句吧...