正在加载图片...
第1期 丁科,等:GPU通用计算及其在计算智能领域的应用 ·3 与CPU相比,GPU具有更加强大的计算能力。 在下面的章节详细介绍。 在相同时期,GPU的浮点计算的理论峰值能力相比 CPU要高出一个数量级[6]」 2GPU通用计算编程平台 强大的计算能力使GPU在高性能计算领域获得 最初的GPU功能固定,只能执行图形流水线中 了广泛的应用。在全球最快的超级计算机之中,中国 的特定任务,缺乏可编程性。此时,为了利用GPU 国家超级计算天津中心的天河1A号超级计算机和美 进行通用计算,必须将计算任务封装成图形处理任 国橡树岭实验室的TTAN号超级计算机,都是依靠 务,然后交由GPU完成。这可以通过底层的汇编命 装配GPU来提升性能,并提供大部分运算能力。 令(低级着色语言)编程实现。更为高效的,通常我 GPU为高性能计算提供了新的巨大的发展潜能。 们可以通过诸如OpenGL、Cg等图形编程接口,利用 控制 计算计算 高级着色语言(shading language,SL)进行编程。 计算计算 但即使利用高级着色语言,这种方式也还存在 缓存 诸多不便。首先,开发者需要熟悉图形处理的流程, 内存 掌握一系列图形处理接口,并且需要以与任务完成 内存 CPU GPU 完全无关的一套图形处理思路来考虑问题的编程求 图2GPU的晶体管更多的用于计算单元 解。其次,图形接口是专用的程序接口,缺乏通用计 Fig.2 GPUs devote more transistors to data processing 算所需要的灵活性,开发者必须面临如何将问题重 2)廉价易得 新表述成图形处理问题的挑战。 相比与基于CPU的计算机系统,GPU更加廉 为了简化GPU编程,具有更高层硬件层次的编 价,也更容易为个人和小型机构所利用。 程模式被相继提出。GPU的统一着色器被抽象为 以NVIDIA的旗舰版GPU TITAN为例。TTAN 与具体硬件无关的、能够以特定方式并行执行线程 GPU价格不足一万元人民币,共有2688个计算核 的流处理器单元。GPU的内存、纹理缓存等存储单 心,双精度浮点运算理论峰值计算能力达到1500 元,被抽象为具有层级结构的存储体系。经过抽象 GFLP/s,额定功耗约为250W。作为对比,北京大 后,可以在流处理模式下,利用高级语言为GPU编 学理论与应用地球物理研究所的集群,由1个服务 写程序,完成通用的计算任务。 器(Dell PowerEdge R710)、46个计算结点(Dell 本节首先介绍与GPU通用计算密切相关的流 PowerEdge M6l0)、3个刀片机箱(Dell PowerEdge 处理模式。之后,转向介绍基于流行的GPU编程语 MI000)组成。每个计算结点有2颗四核Intel Xeon 言和工具。 E5520(2.26GHz,Nehalem-EP架构)处理器,共368 2.1 流处理模式 个计算核心,理论计算峰值3327GFLP/s,满载功耗 流处理模式(stream programming model)是一种 约为12kW。 类似于单指令多数据(SIMD)的编程模式。 可以看到,在提供相同数量级的计算能力的情 通过将数据组织成数据流,将计算表达成作用 况下,GPU非常的廉价,也易于装配(只需要一台能 于数据流的核函数的方式,流处理能够暴露程序中 够支持独立显卡的PC),个人和小型实验室都有条 内在的并行性。通过流处理模式,程序开发者能够 件利用。而集群等传统高性能计算设备,不但价格 更容易地利用GPU、FGPA等计算硬件的并行能力 昂贵,对场地、供电和维护等有较高的要求。可以 而不用显式地处理空间分配、同步和计算单元间的 说,GPU为PC提供了小型集群的计算能力[)。 通信等问题。对于数据并行性良好的应用,流处理 3)开发灵活 能够取得良好的性能[8] 现代的GPU都采用统一渲染架构,具有很强的 如图3所示,流处理与SMD最大的不同之处 可编程性。GPU编程的软件开发平台也趋于成熟, 在于,SMD是以指令为操作单位的,而流处理模式 CUDA、OpenCL等工具的推出,使开发者能够使用 则是以指令序列(核函数)为操作单元。数据流(输 高级编程语言为GPU开发通用计算程序。现在主 入流)与核函数一同进入流处理器,流中每个数据 流的GPU也对单精度和双精度浮点运算提供了满 元素同时被核函数执行,从而完成指定的操作,得到 足EEE标准的完全支持。对于GPU编程,我们会 输出数据(输出流)。与 悦孕哉 相比袁郧孕哉 具有更加强大的计算能力遥 在相同时期袁郧孕哉 的浮点计算的理论峰值能力相比 悦孕哉 要高出一个数量级咱远暂 遥 强大的计算能力使 郧孕哉 在高性能计算领域获得 了广泛的应用遥 在全球最快的超级计算机之中袁中国 国家超级计算天津中心的天河员粤 号超级计算机和美 国橡树岭实验室的 栽陨栽粤晕 号超级计算机袁都是依靠 装配 郧孕哉 来提升性能袁并提供大部分运算能力遥 郧孕哉 为高性能计算提供了新的巨大的发展潜能遥 图 圆摇 郧孕哉 的晶体管更多的用于计算单元 云蚤早援圆摇 郧孕哉泽 凿藻增燥贼藻 皂燥则藻 贼则葬灶泽蚤泽贼燥则泽 贼燥 凿葬贼葬 责则燥糟藻泽泽蚤灶早 圆冤廉价易得 相比与基于 悦孕哉 的计算机系统袁郧孕哉 更加廉 价袁也更容易为个人和小型机构所利用遥 以 晕灾陨阅陨粤 的旗舰版 郧孕哉 栽陨栽粤晕 为例遥 栽陨栽粤晕 郧孕哉 价格不足一万元人民币袁共有 圆 远愿愿 个计算核 心袁双精度浮点运算理论峰值计算能力达到 员 缘园园 郧云蕴孕 辕 泽袁额定功耗约为 圆缘园 宰遥 作为对比袁北京大 学理论与应用地球物理研究所的集群袁由 员 个服务 器渊 阅藻造造 孕燥憎藻则耘凿早藻 砸苑员园 冤 尧 源远 个计算结点 渊 阅藻造造 孕燥憎藻则耘凿早藻 酝远员园冤 尧 猿 个刀片机箱渊 阅藻造造 孕燥憎藻则耘凿早藻 酝员园园园冤组成遥 每个计算结点有 圆 颗四核 陨灶贼藻造 载藻燥灶 耘缘缘圆园渊圆援圆远 郧匀扎袁 晕藻澡葬造藻皂鄄耘孕 架构冤处理器袁共 猿远愿 个计算核心袁理论计算峰值 猿 猿圆苑 郧云蕴孕 辕 泽袁满载功耗 约为 员圆 噪宰遥 可以看到袁在提供相同数量级的计算能力的情 况下袁郧孕哉 非常的廉价袁也易于装配渊只需要一台能 够支持独立显卡的 孕悦冤袁个人和小型实验室都有条 件利用遥 而集群等传统高性能计算设备袁不但价格 昂贵袁对场地尧供电和维护等有较高的要求遥 可以 说袁郧孕哉 为 孕悦 提供了小型集群的计算能力咱苑暂 遥 猿冤开发灵活 现代的 郧孕哉 都采用统一渲染架构袁具有很强的 可编程性遥 郧孕哉 编程的软件开发平台也趋于成熟袁 悦哉阅粤尧韵责藻灶悦蕴 等工具的推出袁使开发者能够使用 高级编程语言为 郧孕哉 开发通用计算程序遥 现在主 流的 郧孕哉 也对单精度和双精度浮点运算提供了满 足 陨耘耘耘 标准的完全支持遥 对于 郧孕哉 编程袁我们会 在下面的章节详细介绍遥 圆摇 郧孕哉 通用计算编程平台 摇 摇 最初的 郧孕哉 功能固定袁只能执行图形流水线中 的特定任务袁缺乏可编程性遥 此时袁为了利用 郧孕哉 进行通用计算袁必须将计算任务封装成图形处理任 务袁然后交由 郧孕哉 完成遥 这可以通过底层的汇编命 令渊低级着色语言冤编程实现遥 更为高效的袁通常我 们可以通过诸如 韵责藻灶郧蕴尧悦早 等图形编程接口袁利用 高级着色语言渊 泽澡葬凿蚤灶早 造葬灶早怎葬早藻袁 杂蕴冤进行编程遥 但即使利用高级着色语言袁这种方式也还存在 诸多不便遥 首先袁开发者需要熟悉图形处理的流程袁 掌握一系列图形处理接口袁并且需要以与任务完成 完全无关的一套图形处理思路来考虑问题的编程求 解遥 其次袁图形接口是专用的程序接口袁缺乏通用计 算所需要的灵活性袁开发者必须面临如何将问题重 新表述成图形处理问题的挑战遥 为了简化 郧孕哉 编程袁具有更高层硬件层次的编 程模式被相继提出遥 郧孕哉 的统一着色器被抽象为 与具体硬件无关的尧能够以特定方式并行执行线程 的流处理器单元遥 郧孕哉 的内存尧纹理缓存等存储单 元袁被抽象为具有层级结构的存储体系遥 经过抽象 后袁可以在流处理模式下袁利用高级语言为 郧孕哉 编 写程序袁完成通用的计算任务遥 本节首先介绍与 郧孕哉 通用计算密切相关的流 处理模式遥 之后袁转向介绍基于流行的 郧孕哉 编程语 言和工具遥 圆援员摇 流处理模式 流处理模式渊 泽贼则藻葬皂 责则燥早则葬皂皂蚤灶早 皂燥凿藻造冤是一种 类似于单指令多数据渊 杂陨酝阅冤的编程模式遥 通过将数据组织成数据流袁将计算表达成作用 于数据流的核函数的方式袁流处理能够暴露程序中 内在的并行性遥 通过流处理模式袁程序开发者能够 更容易地利用 郧孕哉尧云郧孕粤 等计算硬件的并行能力 而不用显式地处理空间分配尧同步和计算单元间的 通信等问题遥 对于数据并行性良好的应用袁流处理 能够取得良好的性能咱愿暂 遥 如图 猿 所示袁流处理与 杂陨酝阅 最大的不同之处 在于袁杂陨酝阅 是以指令为操作单位的袁而流处理模式 则是以指令序列渊核函数冤为操作单元遥 数据流渊输 入流冤与核函数一同进入流处理器袁流中每个数据 元素同时被核函数执行袁从而完成指定的操作袁得到 输出数据渊输出流冤 遥 第 员 期摇摇摇摇摇摇摇摇摇摇摇摇摇摇 丁科袁等院郧孕哉 通用计算及其在计算智能领域的应用 窑猿窑
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有