- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
异构计算(Heterogeneous computing)
摘要
异构计算(Heterogeneous computing)技术从80年代中期产生,由于它能经济有效地获取高性能计算能力、可扩展性好、计算资源利用率高、发展潜力巨大,目前已成为并行/分布计算领域中的研究热点之一。本文主要介绍了CPU+GPU基础知识及其异构系统体系结构(CUDA)和基于OpenCL的异构系统,并且总结了两种结构的特点,从而对异构计算有了更深的理解。
关键词:异构计算 CUDA OpenCL
1、引言
异构计算主要是指使用不同类型指令集和体系架构的计算单元组成系统的计算方式。常见的计算单元类别包括CPU、GPU等协处理器、DSP、ASIC、FPGA等。我们常说的并行计算正是异构计算中的重要组成部分异构计算近年来得到更多关注,主要是因为通过提升CPU时钟频率和内核数量而提高计算能力的传统方式遇到了散热和能耗瓶颈。而与此同时,GPU等专用计算单元虽然工作频率较低,具有更多的内核数和并行计算能力,总体性能/芯片面积的比和性能/功耗比都很高,却远远没有得到充分利用。CPU的设计让其比较擅长于处理不规则数据结构和不可预测的存取模式,以及递归算法、分支密集型代码和单线程程序。这类程序任务拥有复杂的指令调度、循环、分支、逻辑判断以及执行等步骤。而GPU擅于处理规则数据结构和可预测存取模式。而APU的设计理念则正是让CPU和GPU完美合作,集合两者的长处,用异构计算来达到整体性能的最佳化。
目前,已经有50款领先的应用能够利用AMD APU进行加速,而后续的应用也将陆续到来——异构计算普及的一刻应该是近在咫尺了。
1.1 CPU和GPU的本质区别
(1) CPU特点
a) CPU的目标是快速执行单一指令流;
b) CPU将其用于乱序执行、寄存器重命名、分支预测以及巨大的cache上,这些设计都是为了加速单一线程的执行速度
c) CPU利用cache来降低内存访问延迟
d) CPU通过大量的cache和分支预测来降低延迟,这些机制消耗了大量的晶体管的电能;
e) CPU每个核心支持1~2个线程;
f) CPU切换线程的代价是数百个时钟周期;
g) CPU通过SIMD(单指令多数据)来处理矢量数据;
h)Intel的CPU没有集成内存控制器
(2)GPU特点
a) GPU的目标是快速执行大量的并行指令流。
b)GPU将晶体管用于处理器阵列、多线程管理、共享内存、内存控制器,这些设计并不着眼于提高单一线程的执行速度,而是为了使GPU可以同时执行成千上万的线程,实现线程间通信,并提供极高的内存带宽。
c) GPU使用cache来放大内存带宽
d) GPU通过同时运行上千个线程来隐藏延迟,等待内存访问的线程会被切换掉,e) GPU切换线程不耗时间。
f)对于支持CUDA的GPU,每个流处理器可以同时处理1024个线程。
g) GPU切换线程的代价是0,事实上GPU通常每个时钟周期都切换线程。
h) GPU则使用SIMT(单指令多线程),SIMT的好处是无需开发者费力把数据凑成合适的矢量长度,并且SIMT允许每个线程有不同的分支。
j) 支持CUDA的GPU集成有8个内存控制器,GPU的内存带宽通常是CPU的十倍
1.2 GPU计算模型
内核是执行模型的核心,能在设备上执行。当一个内核执行之前,需要指定一个N-维的范围(NDRange)。一个NDRange是一个一维、二维或三维的索引空间。还需要指定全局工作节点的数目,工作组中节点的数目。如图NDRange所示,全局工作节点的范围为{12, 12},工作组的节点范围为{4, 4},总共有9个工作组。如果定义向量为1024维,特别地,我们可以定义全局工作节点为1024,工作组中节点为128,则总共有8个组。定义工作组主要是为有些仅需在组内交换数据的程序提供方便。当然工作节点数目的多少要受到设备的限制。如果一个设备有1024个处理节点,则1024维的向量,每个节点计算一次就能完成。而如果一个设备仅有128个处理节点,那么每个节点需要计算8次。合理设置节点数目,工作组数目能提高程序的并行度。
图1.GPU计算模型
CPU的长项是整数计算,GPU的优势则是浮点计算。对于整机性能而言,CPU和GPU都是性能的保障,合理的搭配才是重中之重,才能给用户带来最强的综合性能。
1.3异构计算分类及发展方向
目前的趋势,增加并行的性能,而不是时钟频率。我们的重点是在一个节点,几乎是充分利用指令级并行性。这意味着,提高性能,必须来自多芯片,多核或多上下文并行。Flynn的分类法在硬件定义了四个级别的并行:(1)单指令单数据(SISD)(2)单指令多数据流(SIMD)(3)多指令单数据(MISD)(4)多指令多数据(MIMD)
此外,两个细分MIM
文档评论(0)