GPU编程--宏观理解篇(1)

时间:2024-01-21 09:20:33

GPU编程与CPU编程最大的不同可以概括为以下两点:

  1. “The same program is executed on many data elements in parallel”
  2. “Data-parallel processing maps data elements to parallel processing threads”

也就是

  1. 同一份程序在很多“数据单位”上并行执行
  2. “数据单位”被影射到并行线程上执行

例如,我们可以将一幅图像的每个像素都影射到一个线程,该线程完成的功能是减去图像均值,可以想象“一瞬间,整幅图像就完成了减均值操作”。而CPU通常是,逐像素进行减均值操作。

CUDA是英伟达公司推出通用并行计算架构。在此架构下,可以简单理解我们的编程任务为,“准备好数据单位,影射到线程执行,获取期望的速度”。

我个人体会是,记住上述两条原则,对于我们理解GPU编程有很大的帮助!