(计算机科学与技术专业论文)面向大规模科学计算的cpugpu异构并行技术研究.pdf_第1页
(计算机科学与技术专业论文)面向大规模科学计算的cpugpu异构并行技术研究.pdf_第2页
(计算机科学与技术专业论文)面向大规模科学计算的cpugpu异构并行技术研究.pdf_第3页
(计算机科学与技术专业论文)面向大规模科学计算的cpugpu异构并行技术研究.pdf_第4页
(计算机科学与技术专业论文)面向大规模科学计算的cpugpu异构并行技术研究.pdf_第5页
已阅读5页,还剩73页未读 继续免费阅读

(计算机科学与技术专业论文)面向大规模科学计算的cpugpu异构并行技术研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

国防科学技术大学研究生院硕士学位论文 摘要 大规模科学计算对科学研究具有及其重要的意义,是计算机学科面临的重大 任务。近年来,随着g p u 硬件及其编程模型的快速发展,使用g p u 来加速大规 模科学计算应用己成为必然趋势。g p u 擅长进行计算密集型操作,而且具有极高 的性价比,非常适合高性能科学计算。然而,如何有效地把科学计算应用移植到 g p u 上运行仍是一个很大的挑战。在由c p u 和g p u 构建的异构系统中,c p u 负 责进行复杂的逻辑运算和事务管理等不适合数据并行的计算,g p u 负责进行计算 密集度高、逻辑分支简单的大规模数据计算。本文从两个层面研究了面向大规模 科学计算的c p u g p u 异构并行技术。首先,根据c p u g p u 异构平台的特性,本 文提出了c p u g p u 任务划分和c p u g p u 间通信优化两种优化策略。在讨论任务 划分时,本文给出了比例划分法、曲线拟合法和搜索法三种任务划分模型,各自 适用用于不同的情况;在研究c p u g p u 间数据通信时,本文提出了中间结果复用 和长流分段两种方法,从不同角度优化c p u g p u 的通信过程。其次,针对a m d g p u 硬件及其编程模型b r o o k + 的特性,本文提出了四种面向g p u 的并行优化策 略,包括平衡线程并行性和局部性、分支消除、开发指令级并行和提高访存带宽 利用率。本文选取了矩阵乘、l u 分解和m g r i d 三个重要的科学计算程序,把它们 移植到a m dg p u 上运行,并使用本文提出的优化策略对各个程序进行了优化。 经测试后发现,这三个程序的性能都得到了很大提升,说明本文提出的异构并行 优化技术是非常有效的。本文的工作对在c p u g p u 异构平台上开发和优化科学计 算应用具有一定的指导意义。 主题词:g p u ,b r o o k + ,流编程模型,科学计算,异构并行 第i 页 国防科学技术大学研究生院硕士学位论文 a b s t r a c t l a r g es c a l es c i e n t i f i cc o m p u t i n gi so fc r u c i a li m p o r t a n c et os c i e n t i f i cr e s e a r c ha n d i sa l s ot h em a j o rt a s kf a c i n gt h ec o m p u t e rd i s c i p l i n e r e c e n t l y ,w i t hf a s td e v e l o p m e n to f g p uh a r d w a r ea n ds o r w a r e ,u s i n gg p u st oa c c e l e r a t en o n g r a p h i c sc p ua p p l i c a t i o n s i sb e c o m i n ga ni n e v i t a b l et r e n d g p u sa r eg o o da tp e r f o r m i n ga l u - i n t e n s i v e c o m p u t a t i o na n df e a t u r eh i g hp e a kp e r f o r m a n c e ;h o w e v e r ,h o wt oh a r n e s sg p u s p o w e r f u lc o m p u t i n gc a p a c i t yt oa c c e l e r a t et h ea p p l i c a t i o n si nt h ef i e l d o fs c i e n t i f i c c o m p u t i n gs t i l lr e m a i n sab i gc h a l l e n g e i nt h ec p u - g p uh e t e r o g e n e o u ss y s t e m ,c p u i si nc h a r g eo fc o m p l i c a t ec o m p u t u a t i o nc o n c e m i n gl o g i cc o n t r o la n dt r a n s a c t i o n m a n a g e m e n t ,w h i l eg p u i su t i l i z e df o rh e a v ya r i t h m e t i cc o m p u t a t i o nw i t hs i m p l el o g i c c o n t r 0 1 t k s p a p e rd o e s r e s e a r c h e so n p a r a l l e lt e c h n i q u e so f t h ec p u - g p u h e t e r o g e n e o u sa r c h i t e c t u r eo r i e n t e d f o rl a r g es c a l es c i e n t i f i cc o m p u t i n gf r o mt w o a s p e c t s f i r s t l y ,b a s e do nt h ec p u - g p uh e t e r o g e n e o u ss y s t e m ,t h i sp a p e rp r o p o s e s o p t i m i z a t i o ns t r a t e g i e st oe x p e d i t es c i e n t i f i ca p p l i c a t i o n so r i e n t i e df o rs u c hp l a t f o r m , i n c l u d i n gc p u g p uc o m m u n i c a t i o no p t i m i z a t i o na n dc p u - g p ut a s kd i s t i l b u t i o n w h e nd i s c u s s i n gt a s kd i s t r i b u t i o n , t h i sp a p e rg i v e st h r e em o d e l s ,i n g c l u d i n ga p r o p o r t i o n a ld i v i s i o nm o d e l ,ac u r v ef i t t i n gm o d e la n das e a r c h i n ga l g o r i t h m ,e a c h 谢t l l d i f f e r e n tf e a t u r e s ;a sf o rc p u - g p uc o m m u n i c a t i o no p t i m i z a t i o n , t h i sp a p e rb r i n g s f o r w a r dt w om e t h o d s ,i n c l u d i n ga ni n t e r m e d i a t er e s u l t sr e u s em e t h o da n dal o n gs t r e a m s e g m e n t a t i o nm e t h o d s e c o n d l y ,t h i sp a p e rp r o p o s e so p t i m i z a t i o ns t r a t e g i e sa c c o r d i n g t ot h ec h a r a c t e r i s t i c so fa m dg p u sh a r d w a r ea n dp r o g r a m m i n gl a n g u a g eb r o o k + , i n c l u d i n gb a l a n c i n g i n t r a - t h r e a d p a r a l l e l i s m a n di n n e r - t h r e a dl o c a l i t y ,b r a n c h e l i m i n a t i o n ,e x p l o i t i n gi n s t r u c t i o nl e v e lp a r a l l e l i s ma n di m p r o v i n gm e m o r yb a n d w i d t h u t i l i z a t i o n 砌sp a p e rt r a n s p l a n t st h r e ei m p o r t a n ta p p l i c a t i o n s ,i n c l u d i n gm a t r i c m u l t i p l i c a t i o n ,l ud e c o m p o s i t i o na n dm g r i df r o ms p e c2 0 0 0 ,t ot h ea m d r a d e o n h d 4 8 7 0g p u ,a n da p p l y sa l lt h eo p t i m i z a t i o ns t r a t e g i e st ot h e m e s p e c i a l l y ,t h i sp a p e r d o e ss p e c i a lo p t i m i z a t i o n st oe a c ha p p l i c a t i o na c c o r d i n gt h e i rf e a t u r e s 1 1 1 et e s tr e s u l t s s h o wt h a ta f t e ro p t i m i z a t i o nt h ep e r f o r m a n c e o ft h e s ea p p l i c a t i o n si m p r o v e s s i g n i f i c a n t l y ,w h i c hm e a n st h eo p t i m i z a t i o ns t r a t e g i e sp r o p o s e di nt h i sp a p a ri sv e r y e f f e c t i v e t m sw o r kc a ns e r v ea sar e f e r e n c ef o rd e v e l o p i n ga n do p t i m i z i o n g a p p l i c a t i o n so n t h ec p u - g p u h e t e r o g e n e o u ss y s t e m k e yw o r d s :g p u ,b r o o k + ,s t r e a mp r o g r a m m i n gm o d e l ,s c i e n t i f i cc o m p u t i n g , h e t e r o g e n e o u sp a r a l l e l i s m 第i i 页 国防科学技术大学研究生院硕+ 学位论文 表 表 表 表 1 2 3 4 表5 5 表5 6 表5 7 表5 8 表5 9 表5 1 0 表5 11 表5 1 2 表5 1 3 表目录 a m dh d 4 8 7 0 性能参数1 4 简单的矩阵乘流化算法性能加速比。5 2 不同线程粒度下矩阵乘流化算法性能加速比5 2 比例划分模型数据表5 3 曲线拟合模型数据表5 4 采用隐藏通信延迟的矩阵乘流化算法性能加速比。5 6 l u 分解在c p u 上的执行时间5 6 l u 分解算法简单流化实现性能加速比5 7 采用流轮换的l u 分解算法性能加速比5 7 限制执行域的l u 分解算法性能加速比。5 8 k e r n e l 拆分后的l u 分解算法性能加速比5 8 使用f l o a t 4 数据类型后的l u 分解算法性能加速比。5 9 选偏主元的l u 分解算法性能加速比5 9 第1 i i 页 国防科学技术大学研究生院硕士学位论文 图目录 图1 1n v i d i ag p u 与通用c p u 峰值性能2 图1 2c p u 与g p u 体系结构特征示意图3 图1 3c p u g p u 异构体系结构4 图1 4 r a d e o nh d 4 0 0 0 体系结构框图5 图1 5 g e f o r c e9 8 0 0 体系结构框图6 图1 6 i n t e ll a r r a b e e 体系结构框图6 图1 7c u d a 软件系统结构8 图1 8c u d a 计算实体对应关系9 图1 9 o p e n c l 的平台模型。9 图2 1 r a d e o nh d 4 0 0 0 体系结构图1 3 图2 2r a d e o nh d 4 8 7 0 线程处理器阵列结构1 4 图2 3 流编程模型【3 5 】1 6 图2 4a m db r o o k + 线程执行模型16 图2 5 矩阵加的c p u 和g p u 代码示例1 7 图2 6a m db r o o k + 软件系统框架1 7 图3 1c p u g p u 任务划分示意图1 9 图3 2 任务划分模型二曲线拟合示意图2 0 图3 3 二分法搜索最佳任务划分的算法和流程图。2 1 图3 4 二分查找最佳任务划分示意图。2 1 图3 5c p u g p u 异构系统存储空间图2 2 图3 6k e r n e l 执行时的数据传输2 3 图3 8 长流分段示意图2 4 图3 9 线程并行执行示意图j 2 6 图3 1 0w a v e f r o n t 执行分支示意图。2 6 图3 1 1k e r n e l 拆分示意图2 7 图3 1 2 分支路径消除和表达式化简示意图2 7 图3 1 3 线程处理器结构2 8 图4 1 矩阵乘核心代码3 0 图4 2 矩阵乘简单流化算法3 1 图4 3 矩阵切分为八条流的示意图,3 2 图4 4 优化矩阵乘算法的k e r n e l 函数头3 2 图4 5 优化矩阵乘算法示意图3 3 第1 v 页 国防科学技术大学研究生院硕士学位论文 图4 6 图4 7 图4 8 图4 9 图4 1 0 图4 11 图4 1 2 图4 1 3 图4 1 4 图4 1 5 图4 1 6 图4 1 7 图4 1 8 图4 1 9 图4 2 0 图4 2 1 图4 2 2 图4 2 3 图5 1 图5 2 图5 3 图5 4 图5 5 图5 6 图5 7 图5 卫 优化矩阵乘算法k e r n e l 中的数据密集计算3 3 矩阵任务划分示意图3 4 三种l u 分解算法及它们的数据访问模式3 7 r i g h t 1 0 0 k i n g 算法的数据更新顺序3 8 前两次迭代的数据示意图3 9 偏主元和全主元初等变换示意图4 0 l u 分解的简单流化算法4 0 消除流拷贝的l u 算法的m a i n 0 函数4 1 轮换模式下分解结果分布图4 2 限制执行的l u 分解算法4 2 取消条件分支的l u 分解算法的m a i n ( ) 函数4 3 取消条件分支的l u 分解算法的k e r n e l 函数4 4 使用f l o a t 4 类型造成结果缺失示意图4 4 m g r i d 程序结构图4 6 采用坐标偏移访问模板操作周边点示意图4 7 初始i n t e r pk e r n e l 代码4 9 消除分支后的i n t e r pk e r n e l 代码4 9 三维流重组为二维流示意图5 0 曲线拟合模型数据拟合图5 4 r e s i d 在不同问题规模下的加速比6 0 r p r j 3 在不同规模不同线程粒度下的加速比6 l i n t e r p 在不同规模不同线程粒度下的加速比6 2 m g r i d 的总体加速比6 3 最大规模下i n t e r p 取消分支前后加速比6 3 流重组对r e s i d 的优化效果6 4 m g r i d 最终优化效果6 5 第v 页 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得 的研究成果尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他入已经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示谢意 学位论文作者签名:拂 魄叼钏月枷 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留使用学位论文的规定本人授权 国防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子 文档,允许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文 ( 保密学位论文在解密后适用本授权书) 学位论文作者签名: 作者指导教师签名: 魄砷年二月矽日 日期:p 尸年l 醐咖 国防科学技术大学研究生院硕十学位论文 第一章绪论 1 1 课题研究背景 2 1 世纪人类所面临的重要科技问题都需要超强的计算能力。大规模科学计算 在科学研究领域具有非常重要的地位,比如卫星成像数据处理、基因工程、全球 气候精确预报、核爆炸模拟等应用的数据规模已经达到t b 甚至p b 量级。与此同 时,我们日常生活应用如游戏、高清视频播放等也要求越来越强大的计算能力【l 吲。 如何应对越来越高的计算能力需求,是计算机学科面临的重大挑战。 自从计算机诞生以来,它的应用范围日益广泛,性能不断跃升。而传统意义 上计算机的性能一般是指计算机处理器的性能。处理器的发展包括通用化和专用 化两个方向:通用c p u 作为现代计算机的核心部件,不仅能够完成各种算术逻辑 运算外,还负责协调计算机各个部分的运行。经过几代的发展,c p u 上芯片的集 成度越来越高,c p u 已由单核发展到多核:另一方面,专用处理器在特定应用领 域下的专用化程度也越来越高。在一些需要强大计算能力的诸如图形图像,数字 信号处理等领域,都出现了大量的专用的算法加速处理器,图形处理器( g p u , g r a p h i c sp r o c e s su n i t ) 和数字信号处理器( d s p ,d i g i t a ls i g n a lp r o c e s s o r ) 就是典型 代表。 计算机图形处理器( g p u ) 的概念首先由n v i d i a 公司于1 9 9 9 年提出【3 j 。随 着半导体技术的飞跃发展,芯片上集成的晶体管数目不断增加,g p u 一直以超过 摩尔定律的速度高速发展,使得其计算性能不断提高。如今,g p u 在集成度、计 算密集型问题的处理能力等方面已远远超过了通用处理器,特别是随着g p u 在可 编程能力、并行处理能力和应用范围方面得到不断提升和扩展,g p u 已成为当前 计算机系统中具备高性能处理能力的部件。此外g p u 还具有很高的性能功耗比和 性价比。以上优势为人们利用g p u 进行图形处理以外的通用计算提供了良好的平 台,越来越多的研究人员和商业组织开始把g p u 应用到科学计算领域,如代数计 算、流体模拟、数据库应用、频谱分析等应用 4 1 。一个新的研究领域由此诞生,即 基于g p u 的通用计算( g p g p u ,g e n e r a lp u r p o s ec o m p u t a t i o no ng p u ) ,其主要内 容是研究如何利用g p u 在图形处理之外的其它领域进行更为广阔的科学计算1 5 1 。 目前利用g p u 进行通用计算还存在很多问题,最主要的问题就是c p u g p u 异构 结构下的编程问题。本文重点研究了c p u g p u 异构平台的特性,以及在该平台上 对大规模科学计算进行移植的并行优化技术。本文选取了一些科学计算应用,把 它们移植到g p u 上运行,并根据所提的优化策略对g p u 程序进行了优化。以下 第1 页 国防科学技术大学研究生院硕士学位论文 小节分别介绍g p u 的历史和发展现状、c p u g p u 构成的异构体系结构的特点、 三种主流g p u 体系结构以及对应的编程模型。 1 1 1g p u 的历史和发展现状 在g p u 诞生之前,计算机中处理图像输入的芯片很少被看作是独立的运算单 元。1 9 9 9 年,n v i d i a 发布了第一款g p u ( g e f o r c e2 5 6 ) ,第一次在图形芯片上 实现了3 d 几何变换和光照变换,自此宣布了g p u 的诞生【3 】。 受游戏市场和视景仿真需求的牵引,g p u 发展速度很快。近几年来,g p u 以 大大超过摩尔定律( 每1 8 2 4 个月性能翻倍) 的速度高速发展,平均每6 个月性 能即可翻倍,是通用c p u 的3 倍,极大地提高了计算机处理图形图像的速度和质 量。为了实现更逼真的图形效果,g p u 以可以支持越来越复杂的运算,其可编程 性已大大增加。 图1 1 是n v i d i ag p u 与通用c p u 峰值性能的比较情况,可以看出到2 0 0 8 年六月,g p u 的性能已经超过c p u 两个数量级。目前,图形处理器已经历经了五 代发展,平均每半年就有新一代g p u 问世。2 0 0 9 年第一季度,a m d a t i 推出的 f i r e s t r e a m9 2 5 0 流处理图形加速芯片的峰值运算速度已经突破1 t f l o p s ,双精度运 算性能也达到了2 0 0 g f l o p s t 6 l 。相比较而言,传统的通用c p u ,如i n t e lp e n t i u m 4 3 7 g h z 的峰值性能仅为1 4 8g f l o p s 。 a g t 2 , l a r tj u a a p r j u nm a r rm a yj u n 2 3 铷岫t 枷82 0 0 72 0 0 8 图1 1 n v i d i ag p u 与通用c p u 峰值性能比较【3 】 g p u 在处理能力和存储带宽上相对于c p u 有明显优势,原因在于两者设计的 目标不同。c p u 的设计目标是使执行单元能够以很低的延迟获得数据和指令,因 此采用了复杂的控制和分支预测以及大量的缓存来提高执行效率。如图1 2 所示, c p u 中用于计算的a l u 只占很小一部分。而g p u 更专注于计算,致力于在有限 的面积上实现很强的计算能力和很高的存储带宽,故g p u 设置了大量的执行单元 第2 页 国防科学技术大学研究生院硕士学位论文 来运行更多轻量级线程。从如图1 2 右边町以看出,g p u 的体系结构中有大量的 并行计算核心。在图形应用领域,程序大多是在规整的数据上进行大量密集的并 行计算,并且访存的延迟可以通过线程切换来隐藏,从而成就了g p u 的高性能。 回回 回回 日卫工卫匝口工 日口工工卫工皿 日卫卫口工皿 日卫工工匝卫工皿 日卫工卫匝口卫田 日卫工工匝口卫田 日旺卫工卫匝口卫田 日卫工工匝卫工皿 c p u g p u 图1 2c p u 与g p u 体系结构特征示意副习 具体来说,g p u 对高性能计算领域的加速效果主要来自以下几点: 1 ) 线程切换开销小 c p u 的多线程机制由操作系统提供的a p i 实现,是软件实现的粗粒度多线程。 这种多线程的切换开销较大,一般需要数百个时钟周期。而g p u 采用由硬件管理 的轻量级线程,可以实现零开销切换。快速低开销线程切换带来的优点是可以有 效地实现延迟隐藏。当一个线程因访问片外存储器或者同步而等待时,线程处理 器可以立即切换到另一个就绪的线程运行,从而避免了暂停。一般来说,线程数 量越多,访存延迟隐藏效果就越好。 2 ) 大量的并行核心 由于c p u 要处理分支预测、乱序执行、超标量流水线等机制,且需集成大容 量的缓存,因而c p u 芯片上能够集成的核心的数量十分有限。当前主流c p u 一般 只能集成2 到8 个核心。而g p u 控制逻辑相对简单,可以将芯片资源充分用于计 算,因此可以拥有大量并行计算的核心。如a m d a t ir a d e o nh d 4 8 7 0 ( r v 7 7 0 核 心) 拥有8 0 0 个独立计算的核心,组织成为8 个独立的s i m d 引擎,各引擎间相 互独立,可以并行执行,从而可以发挥出巨大的并行计算的潜力。 3 ) 高存储带宽 舢d a t ir a d e o nh d 4 8 7 0 使用p c i e 2 接口,双向带宽可达到8 g b s ,并具有 2 5 6 位的存储器位宽,存储带宽可达11 5 g b s ,大大超过了c p u 的存储带宽。造 成g p u 与c p u 存储带宽差异的主要原因,一是显存直接固化在g p u 的p c b 板上 的,而c p u 内存为了兼顾可扩展性的需要,通过插槽与主板相连,从而造成了性 能差异,二是g p u 一般有数个存储器控制单元,使得其具有较宽的总存储器位宽, 而c p u 一般只有一个基于双通道或者三通道技术的存储控制器,所以其位宽比 g p u 窄。 第3 页 国防科学技术大学研究生院硕士学位论文 4 ) 只读式缓存 c p u 的缓存主要用来减小访存延迟和节省带宽。在多线程的环境下每次线程 切换都需重建缓存上下文,而缓存失效的开销非常大,一般是几百到几千个时钟 周期。在多核的情况下,不同级别的缓存之间以及缓存和主存之间的数据必须维 持一致性,这需要繁琐的替换机制,从而引入了复杂的控制逻辑。而g p u 中没有 复杂的缓存体系和替换机制。g p u 的缓存是只读的,因此不用考虑缓存一致性问 题。g p u 上缓存的主要作用不是减小访存延迟,而是节约显存带宽【3 j 。 研究人员已开始利用g p u 强大的计算能力进行算法加速,将g p u 应用到传 统的非图形计算上,即使用g p u 处理图形领域之外的通用计算1 7 。随着g p u 的加 速发展,其在可编程能力、计算性能、存储性能、性价比、计算功耗比等方面远 远超过了通用c p u ,在高性能计算领域正发挥着越来越重要的作用。使用通用c p u 和g p u 构建混合的高性能计算系统已成为当前高性能计算领域的热点研究方向。 1 1 2c p o g p u 异构系统体系结构 从上文对于c p u 和g p u 特性的分析可以看出,c p u 有复杂的控制逻辑和大 容量的缓存,擅长复杂的逻辑运算和事务管理等任务;而g p u 用大量线程实现大 规模数据并行计算,具有极高的吞吐量的,适合进行计算密集度高、逻辑分支简 单的大规模数据计算,同时g p u 具有功耗低,性价比高的特点。在c p u g p u 异 构体系结构下,用c p u 进行复杂逻辑和事务处理等串行计算,用g p u 完成大规 模并行计算,即可以各尽其能,充分发挥计算系统的处理能力。 g p g p u 通常采用c p u + g p u 的异构模式。c p u + g p u 构建的混合系统可以在 较小系统规模,较小的功耗下取得很高的性能,从而实现桌面上的超级计算【3 】。使 用c p u + g p u 的方式搭建大型计算系统,不仅能迅速提高系统的峰值运算速度, 同时也能大大降低系统的功耗。此外,成本和性价比也是该类系统的显著优势。 p c i e 图1 3c p u g p u 异构体系结构 典型的c p u g p u 异构系统如图1 3 所示。在现有c p u g p u 异构系统中,c p u 和g p u 都具有各自独立的存储空问,因此c p u 在调用g p u 执行计算操作之前, 第4 页 国防科学技术大学研究生院硕十学位论文 必须先将数据载入到g p u 的存储空i 、h j 中;在g p u 完成计算任务后,c p u 再将数 据回存到本地存储空间中,进行下一步处理。所以c p u 和g p u 之间存在数据通 信开销。数据通信开销是指计算前数据从c p u 加载到g p u 的开销和计算后结果 从g p u 加载到c p u 的开销。要使g p u 能够有效加速c p u 程序,从g p u 上获得 的计算加速收益必须大于引入g p u 作为加速部件所附带的开销。 1 1 3 主流g p u 体系结构 国际上主要的显示芯片生产商为n v i d i a 、a m d a t i 和i n t e l 三家,它们都推 出了面向通用计算的g p u 产品。下面分别给以简略介绍: 1 1 3 1a m d a t ig p u 体系结构 图1 4r a d e o nh d 4 0 0 0 体系结构框图 图1 4 所示为a m d a t i 公司推出的r v 7 7 0g p u 核心,r a d e o nh d 4 0 0 0 系列 g p u 使用的就是该核心。这是一款典型的基于流处理模型的显示芯片,从图中可 以看出,r 7 7 0 主要包含四大部件:流处理器阵列、命令处理器、存储控制器、指 令和数据缓存。流处理器阵列被组织成s i m d 引擎集合,各个引擎相互独立,从 而可以在数据流上进行并行计算。s i m d 流水线可以从g p u 内存读取数据,计算 完后将数据写回g p u 内存。命令处理器读入和初始化从c p u 发送到流处理器的 命令,当计算完成时,由命令处理器通知c p u 计算已经执行完毕。存储控制器可 以直接访问g p u 的所有存储部件,并且可以访问c p u 端指定的系统内存区域。 同时,存储控制器控制执行g p u 内存和c p u 内存之间数据的d m a 传输。在存储 控制器和流处理器阵列之间,存在大量数据和指令缓存。该g p u 的峰值单精度性 能为1 2t f l o p s ,双精度性能为2 4 0g f l o p s 。从图1 4 可以看出,r a d e o nh d 4 0 0 0 系列g p u 的存储层次可以分为两级,一级为片外l o c a lm e m o r y ,一级为片内 c a c h e 。寄存器文件的大小和c a c h e 的层次结构等信息a m d 公司目前尚未公布i s 】。 第5 页 国防科学技术大学研究生院硕士学位论文 1 1 3 2n v i d i ag p u 体系结构 d e v i c e f m u t t i 呻c c s 。o r n ,1 mu h t p r o c e s s o r2 mu l t l p r o c e s s o r1 s h a r e dm e m o r y f。!:?悄一?!;:!:!,nsu n “l j+ 十一 千千一订广 i c 。n s t a n tc a c h e l t e x t u r cc a c n e l 【d e v i c e m e m o r y 图1 5g e f o r c e9 8 0 0 体系结构框图 图1 5 为n v i d i ag e f o r c e9 8 0 0 系列g p u 的体系结构。从图1 5 中可以看出 该g p u 由1 6 个多处理器( m u l t i p r o c e s s o r ) 组成。在每个多处理器内有8 个标量 处理器( s c a l a rp r o c e s s o r ) 和2 个超越函数单元( s f u ) 组成,其中每个标量处理 器有一个乘加单元构成,并都有各自的私有寄存器。在1 8 g h z 频率下,其单精度 峰值性能可以达到4 6 0 g f l o p s 。从图1 5 中可以看出,g f 9 8g p u 具有三级存储层 次:片外全局存储、片上共享存储、缓存和寄存器文件。其中对全局存储的访问 延迟约为4 0 0 6 0 0 周期。在片上存储层次中,尤为重要的是软件管理的共享存储, 共享存储由8 个标量处理器共享,是片上支持标量处理间通信的唯一媒介。因此 提高共享存储的利用率,增大共享存储数据的重用度,是优化访存密集型应用的 重点1 3 1 。 1 1 3 3i n t e lg p u 体系结构 i n o r d e r i n o r d e ri n o r d e ri n o r d e r 蔓 c p uc o r ec p uc o r ec p uc o r ec p uc o r e 墨 。 瓷 i n t e r p r o c e s s o rr i n g n e t w o r k 暑 。 昌 c o h e r e n tc o h e r e n tc o h e r e n tc o h e r e n t 逻 善 l 2c a c h el 2c a c h e l 2c a c h e l 2c a c h e 奔 营 c o h e r e n tc o h e r e n tc o h e r e n tc o h e r e n t古 暑 l 2c a c h el 2c a c h e l 2c a c h e l 2c a c h e 占 逞 i n t e r p r o c e s s o rr i n gn e t w o r k 。 i n o r d e ri n o r d e ri n o r d e ri n o r d e r 雩 c p uc o r ec p uc o r e c p uc o r ec p uc o r e 2 图1 6i n t o ll a r r a b e e 体系结构框图 i n t e l 在集成显卡市场中占有很大份额,但很少推出独立显卡。集成显卡没有 自己的片上存储,系统在主存中为其开辟一片存储空间。随着g p u 在高性能计算 第6 页 国防科学技术大学研究生院硕士学位论文 领域变得越来越重要,i n t e l 也在0 8 年推出第一款高性能独立显示芯片l a r r a b e e , 体系结构如图1 6 所示。l a r r a b e e 基于传统的x 8 6 架构设计,使用顺序执行的c p u 核心,没有乱序执行功能,故可以集成数量众多的处理核心。多个x 8 6 核心通过 互联网络连接,可以执行标量指令和宽向量指令。l a r r a b e e 的二级缓存被划分成块, 由每个核心独占访问,从而提高了二级c a c h e 的访问效率,简化了数据的同步和共 享。由于使用了x 8 6 的核心,使得l a r r a b e e 比一般的g p u 拥有更强的灵活性,比 如它支持子函数调用以及页故障的处理等功能。l a r r a b e e 主要面向高端通用的计算 平台,主要性能参数为1 g b 2 g b 的g d d r 5 显存、1 2 8 g b s 带宽、多于1 6 个计 算核心、1 7 g h z - 2 5 g h z 主频、1 5 0 w 以上功耗,以及每个核心1 4 - - 4 0 g f l o p s 的双 精度峰值计算性f l 皂t 9 1 。 1 1 4g p u 编程模型 随着g p u 的硬件的不断发展,其上的编程模型也在不断改进。早期的g p u 只能执行固定的几类操作,还没有形成可编程g p u 的概念。虽然可以用d i m c t x 和o p e n g l 等图形a p i 进行程序映射,但效率十分低下。在g p u 硬件得到进一 步发展之后,出现了比图形a p i 高级的着色语言( s h a d e rl a n g u a g e ) ,如基于d i r e c t x 的h l s l 和o p e n g l 后端的g l s l ,以及同时支持h l s l 和o p e n g l 的c g 。这些 语言的优点是它们都是对c 语言作了一定的扩充,从而提高了g p u 的可编程性。 但是用这些语言编程需要了解g p u 的硬件细节,不适合通用计算。自从g p g p u 的概念提出后,各显卡厂商纷纷推出了适合通用计算的g p u 以及相应的编程模型。 这些编程模型的最主要特点是它们向程序员提供了较高层的语言抽象,使程序员 可以专注于提高程序的并行性能,而不是纠缠于图形硬件的底层细节。a m d 的 b r o o k + 、n v i d i a 的c u d a 以及业界正在制定的统一编程标准o p e n c l 是目前主 要的三种g p u 编程模型,以下分别介绍。 1 1 4 1b r o o k + b r o o k + 从b r o o k 演化而来。b r o o k 是一种流编程语言,最初由斯坦福大学为其 流处理m e r r i m a c 而开剔l i j 。b r o o k 对c 语言进行了扩充,并把数据并行计算和计 算密集性的概念融入其中。b r o o k 的抽象级别比较高,不指定后端运行的平台,它 提出了流( s t r e a m ) 和核( k e m e l ) 的概念用以支持流编程。一条流是指一组数据 类型相同并且可以并行操作的数据的集合。一个核函数是指在流上进行并行计算 操作的函数。b r o o k 进一步演化为b r o o k g p u ,即为b r o o k 的g p u 版本,从而把 流计算模型引入g p u 。a m d 在b r o o k g p u 基础上提出了b r o o k + ,进一步完善了 g p u 上的流编程模型,更好地支持了g p u 的通用计算。 b r o o k + 将g p u 抽象成为一个流处理器。使用b r o o k + 编程模型,程序员可以在 第7 页 国防科学技术大学研究生院硕士学位论文 两个抽象层次上进行编程,高层为b r o o k + 语言,低层计算抽象层c a l ( c o m p m e a b s t r a c tl a y e r ) 。b r o o k + 语言和c 语言十分类似,程序员很容易使用。而c a l 为 程序员提供了更多的优化机会,但要求了解更多的硬件细节。一个b r o o k + 程序可 分为流级程序和核级程序两部分。流级程序在c p u 上执行,核级程序在g p u 上 运行。 本文的工作在a m d 流处理上采用b r o o k + 编程模型完成,第二章将详细介绍 a m d 流处理器的体系结构和b r o o k + 流编程模型,此处不展开阐述。 1 1 4 2c u d a c u d a ( c o m p u t eu n i f i e dd e v i c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论