虽然高清实时的3D图像/视频要求日益不能满足市场需求,但是可编程的图像处理单元(GPU)已经演变成具有巨大计算能力和超高存储带宽的高度并行、多线程的多核处理器,如下图,
CPU和GPU之间的浮点性能差异的原因是:GPU专门为密集型计算、高度并行计算设计(例如,图像渲染),因此此类设计需要更多的晶体三极管来进行数据处理而不是数据缓存和流程控制,其区别如下图所示,
更具体地说,GPU更适合处理数据并行计算,很多数据并行执行,计算强度高,即对内存操作的算术操作比率高。因为相同的程序用来执行每个数据元素,因此对复杂的流控制有较低的要求;因为它是编译在许多数据元素上的,拥有高的算术强度,因此内存访问延迟可以被并行计算掩盖而不需要大数据的缓存。
并行数据处理映射数据元素对应于并行处理线程。许多处理大数据的应用程序都可以使用并行编程模型来进行加速。在3D渲染中,大量的像素和顶点都可以映射为并行线程。相似地,图像和多媒体应用,例如渲染图像的后处理、视频编解码、图像缩放、立体视觉和模式识别,都可以把图像块和像素映射为并行线程。事实上,除