CUDA(一)


一、什么是CUDA?

CUDA是建立在NVIDIA的CPUs上的一个通用并行计算平台和编程模型,基于CUDA编程可以利用GPUs的并行计算引擎来更加高效地解决比较复杂地计算难题。

二、什么是GPU计算

GPU并不是一个独立运行的计算平台,而需要与CPU协同工作,可以看成是CPU的协处理器,因此当我们在说GPU并行计算时,其实是指的基于CPU+GPU的异构计算架构。在异构计算架构中,CPU和GPU通过PCle总线连接在一起。

CPU所在位置称为主机端(host),而GPU所在位置称为设备端(device)。


三、CPU与GPU协同工作

GPU包括更多的运算核心,其特别适合数据并行的计算密集型任务,如大型矩阵计算;CPU的运算核心较少,但是其可以实现复杂的逻辑运算,因此适合控制密集型任务。基于CPU+GPU的异构计算平台可以优势互补,CPU负责处理逻辑复杂的串行程序,而GPU重点处理数据密集型的并行计算程序。


四、CUDA程序执行流程

  1. 分配host内存,进行数据初始化;
  2. 分配device内存,从host将数据拷贝到device上;
  3. 调用CUDA的核函数在device上完成指定的运算;
  4. 将device上的运算结果拷贝到host上;
  5. 释放device和host上分配的内存。

猜你喜欢

转载自blog.csdn.net/Fredzj/article/details/127220061