技术开发 频道

CUDA 2.1 简介

  【IT168 文档CUDA简介

  1.1 从图形处理到通用并行处理

  如图1-1所示,受到来自实时、高分辨率3D图形的市场的永不满足需求的推动,可编程的图像处理单元(Graphic Processor Unit, GPU)演化为具备强大计算能力以及高内存带宽的高度的并行性,多线程性,多核处理器 。

图 1-1 CPU 和 GPU 的每秒浮点运算次数和存储器带宽

  CPU 和 GPU 之间浮点功能之所以存在这样的差异,原因就在于 GPU 专为计算密集型、高度并行化的计算而设计,上图显示的正是这种情况,因而,GPU 的设计能使更多晶体管用于数据处理,而非数据缓存和流控制,如图 1-2 所示。

图 1-2 GPU 中的更多晶体管用于数据处理

  更具体地说,GPU 专用于解决可表示为数据并行计算的问题——在许多数据元素上并行执行的程序,具有极高的计算密度(数学运算与存储器运算的比率)。由于所有数据元素都执行相同的程序,因此对精密流控制的要求不高;由于在许多数据元素上运行,且具有较高的计算密度,因而可通过计算隐藏存储器访问延迟,而不必使用较大的数据缓存。

  数据并行处理会将数据元素映射到并行处理线程。许多处理大型数据集的应用程序都可使用数据并行编程模型来加速计算。在 3D 渲染中,大量的像素和顶点集将映射到并行线程。类似地,图像和媒体护理应用程序(如渲染图像的后期处理、视频编码和解码、图像缩放、立体视觉和模式识别等)可将图像块和像素映射到并行处理线程。实际上,在图像渲染和处理领域之外的许多算法也都是通过数据并行处理加速的——从普通信号处理或物理仿真一直到数理金融或数理生物学。

0
相关文章