GPU编程的学习之路(1)

       这是我写的第一篇博客,可能文字都比较生硬,但任然希望自己在写博客的过程中能够学习到更多的知识,也由衷的希望得到同道中人的指点,我也会虚心学习的。

       下面正式开始吧:

       多核的CPU和众核的GPU已经成为目前大多数计算机中最重要的两种处理器。传统上,GPU只用于处理3D图形渲染任务,而其他大多数的任务都交给了CPU。作为一种通用处理器,CPU的设计必须兼容各种任务的需要。因此,CPU中大多数的晶体管都被用于制造庞大的缓存和复杂的控制逻辑,而运算单元占用的面积并不多近年来。 ,一块高端GPU的单精度浮点处理性能可以达到一块同时期高端桌面CPU的10倍,其显存带宽也达到同时期桌面平台的5倍左右。并且,优GPU提供相同的计算能力,所需要的成本和功耗都要小于基本的CPU系统。

      传统的CPU + GPU异构并行处理的典型任务是图形实时渲染。在这类应用中,CPU负贵根据用户的输入和一定的规则(如游戏的AI)确定在下一帧需要显示哪些物休,以及这些物体的位置,再将这些信息传递给GPU,由GPU绘制这些物体并进行显示两者的计算是并行的:在GPU绘制当前帧的时候,CPU可以计算下一帧需要绘制的内容。

      在这些处理中,CPU负责的是逻辑性较强的事务计算,GPU则负责计算密集度高的图形渲染。为了满足事务计算的需要,CPU的设计目标是使执行单元能够以很低的延迟获得数据和指令,因此采用了复杂的控制逻辑和分支预测,以及大量的缓存来提高执行效率;而GPU必须在有限的面积上实现很强的计算能力和很高的存储器带宽,因此需要大量执行单元来运行更多相对简单的线程,在当前线程等待数据时就切换到另一个处理就绪状态等待计算的线程。简而言之,CPU对延迟将更敏感,而GPU则侧重于提高整体的数据吞吐量.CPU和GPU的设计月标的不同决定了两者在架构和性能上的巨大差异。

猜你喜欢

转载自blog.csdn.net/qq_41687571/article/details/80779565