已阅读5页,还剩69页未读, 继续免费阅读
(电子科学与技术专业论文)gpgpu体系结构关键技术论证及模拟器研究与扩展.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国防科技大学研究生院硕士学位论文 a b s t r a c t n l ei i l i c r o p r o c e s s o ri n d u s t r yh a sh a dt os w i t c hf r o md e v e l o p i n ge v e rm o r e c o m p l e xa n dm o r ed e e p l yp i p e l i n e ds i n g l e - c o r ep r o c e s s o r st om u l t i c o r ep r o c e s s o r sd u e t or u n n i n gi n t op o w e r t h e r m a la n dc o m p l e x i t yl i m i t s t h ed e s i g no fc m p sh a sb e e na l l a c t i v er e s e a r c ht o p i c a sg p ui sat y p i c a lc m p 、) i ,i t l lm a n ys i m p l ec o r e ,t h er e s e a r c h a b o u tg p u sa r c h i t e c t u r ei sv e r ys i g n i f i c a t i v et ot h ef u t u r ep r o c e s s o r s a r c h i t e c t u r e a n d s i m u l a t o ri st h em o s te f f e c t i v ew a yt od ot h er e s e a r c h t 1 1 i st h e s i sf i r s tg i v e sad e p i c t i o na b o u ts o m eh a r d w a r ef e a t u r e s ,t h et h r e a d s e x e c u t i n gm o d e lo fu n i f i e dd e v i c ea r c h i t e c t u r eg p u sa n dt h ec u d ap r o g r a m m i n g m o d e l w es i m p l yi n t r o d u c et h r e eg p us i m u l a t o r sw h i c ha r en a m e da t i l a q s i l v e ra n d b a r r a t h e nw ee x p o u n dt h eh a r d w a r ep i p e l i n ew h i c hg p g p u s i mt a r g e ta ta n dt h e s o f t w a r es t r u c t u r eo fg p g p u s i ms i m u l a t o ri nd e t a i l w et h e nu s et h i sa r c h i t e c t u r e s i m u l a t o rt od os o m er e s e a r c ha b o u tg p u sm e m o r yh i b e r a r c h ya sf o l l o w s f i r s tw e s t u d yh o wt h er a t i oo fs t r e a m i n gm u l t i p r o c e s s o r s n u m b e ra n dm e m o r yc o n t r o l l e r s n u m b e re f f e c t ss y s t e m sp e r f o r m a n c e w ef i g u r eo u tab e s tr a t i oo ft h e mt og e tt h eb e s t s y s t e mp e r f o r m a n c e w h i l ek e e p i n gc h i pa r e am i n i m a l t h e nw ec o m p a r et h e a p p l i c a t i o n s p e r f o r m a n c ew h e ni n c l u d ead a t ac a c h ei n t ot h eg p ua n ds u m m a r i z et h e r e a s o n sw h yc u r r e n tg p u sd o n tu s et h ed a t ac a c h ew h i l em o s to t h e rc p u su s e dt o i m p r o v et h em e m o r ys u b s y s t e m sb a n d w i d t h t h e nw eu s eg p g p u s i mt oa n a l y s e h o wt h er a t i ob e t w e e nc o m p u t ei n s t r u c t i o nn u m b e ra n dm e m o r yi n s t r u c t i o nn u m b e ri na p r o g r a mi n f l u e n c e st h ep r o g r a m sp e r f o r m a n c ea n dp u r p o s ea ni n t e r - c o r ec o a l e s c i n g m e c h a n i s mt or e d u c et h en u m b e ro fr e q u e s t st og p u sg l o b a lm e m o r y i nt h ee n d ,w e i n t e g r a t eap o w e rm o d e lb a s eo nw a t t c h i n t og p g p u - s i ma n du s et h i sp o w e rm o d e l t oa n a l y s et h ep e r f o r m a n c ed i f f e r e n c eb e t w e e nu s i n gs h a r e dm e m o r ya n dn o tu s i n gi t w ep r o v et h a tt h eu s a g eo fg p u ss h a d e rm e m o r yi sp o w e r e f f e c t i v et ot h ew h o l e s y s t e m n l i ss u b j e c ti sp a r to ft h en a t i o n a l8 6 3p r o je c t ”r e s e a r c ho nk e y t e c h n o l o g i e so f g e n e r a l p u r p o s es t r e a mp r o c e s s o ra r c h i t e c t u r e ”r e s e a r c ho nr e c o n f i g u r a b l e h e t e r o g e n e o u ss t r e a m i n gp r o c e s s o ra r c h i t e c t u r et e c h n o l o g i e s ”a n dn a t i o n a ln a t u r a l s c i e n c ef o u n dp r o je c t ”r e s e a r c ho nk e yt e c h n o l o g i e so fm u l t i s t r e a ma r c h i t e c t u r ef o r s c i e n c ec o m p u t i n g ” k e yw o r d s :g p u ,a r c h i t e c t u r es i m u l a t o r ,m e m o r yh i b e r a r c h y ,p o w e rm o d e l 第i i 页 国防科技大学研究生院硕士学位论文 表目录 表2 1 三代n v i d i ag p u 计算核配置差别。1 0 表3 1b a r r a 已实现和未实现的c u d a 属性2 3 表4 1实验中g p g p u s i r e 的基本配置信息3 3 表4 28 8 0 0 g 1 x 与2 8 0 g t x 处理器的性能对比3 4 表4 3 测试程序说明3 5 表4 4 对齐访问协议中数据与传输块的大小对应关系3 9 表4 5 矩阵乘法三种不同实现对比4 5 表5 1在各个层次进行进行功耗优化的方法及所能达到的效果【5 1 1 5 1 表5 2w a t t c h 模型中典型电容求解公式【8 1 - 5 3 表5 3w a t t c h 模型中接口函数示例说明5 4 表5 4 处理器中一般硬件结构及在w a t t c h 中的分类5 6 表5 5 利用g p g p u s i m 进行功耗评估的一般流程5 7 表5 6g p u 各部件能耗占总能耗的比值5 9 第1 i i 页 国防科技大学研究生院硕士学位论文 图2 1 图2 2 图2 - 3 图2 4 图3 1 图3 2 图3 3 图3 4 图3 5 图3 6 图3 7 图3 8 图3 9 图3 1 0 图3 1 1 图4 1 图4 2 图4 3 图4 4 图4 5 图4 6 图4 7 图4 8 图4 9 图4 1 0 图4 1 1 图4 1 2 图4 1 3 图5 1 图5 2 图5 3 图5 4 图目录 n v i d i ag 8 0 体系结构模型【1 4 1 8 f e r m i 架构中的s m 组成结构【3 1 1 9 c u d a 软件结构层次模型【l 】1 0 c u d a 层次化的线程模型1 1 a t i l a 所模拟的流水线结构【4 1 1 6 a t i l a 模拟器结构框架图。1 8 q s i l v e r 所模拟的流水线结构【5 】2 0 q s i l v e r 模拟流程2 0 b a r r a 模拟流程2 3 g p g p u s i m 模拟的基本g p u 体系结构2 5 g p g p u s i m 模拟流水线2 5 g p g p u s i m 的存储器模型2 8 d r a m 组织结构概况图和b a n k 状态转换图2 9 g p g p u s i m 模拟流程3 0 g p g p u s i r e 的源代码组成31 g 8 0 与g t 2 0 0 体系结构对比3 4 矩阵乘法性能在不同配置下的变化趋势3 5 其它测试程序在不同配置关系下的加速比3 6 g 8 0 与g t 2 0 0 架构中流多处理器( s m ) 的基本结构图3 7 加入c a c h e 之后程序性能变化曲线3 8 增加l 1 l 2 数据c a c h e 对程序性能的影响【3 1 4 0 原始矩阵乘法( m u l l ) 实现示意图4 2 基本分块矩阵乘法( m u l 2 ) 实现示意图4 3 扩展分块矩阵乘法( m u l 3 ) 实现示意图4 4 三种矩阵乘法实现的性能加速比4 5 程序性能与计算访存比之间的关系4 5 核间对齐访问机制原理4 7 核间对齐访问部件的结构组成4 7 c m o s 反相器动态功耗示意图5 2 g p g p u s i m 功耗模拟流程5 5 共享内存功耗计数器的实现5 6 m u l l 与m u l 2 程序的能耗对比一5 9 第1 v 页 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得 的研究成果尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示谢意。 学位论文题目:鱼堕心体丕结控差筵拉盔i 金逛及搓拯墨砑究曼芷星 学位论文作者签名: 日期:之矸年f 月勰日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留、使用学位论文的规定。本人授权 国防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子 文档,允许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文 ( 保密学位论文在解密后适用本授权书。) 学位论文作者签名:蕴叁 作者指导教师签名:掣壅蚴坠 1 日期:叫 嘶1 年t 2 - 月以日 年7 月呀日 国防科技大学研究生院硕士学位论文 第一章绪论 在微电子技术领域,工艺尺寸和晶体管密度直以来遵循“摩尔定律”向前 发展,而如何提升处理器的实际效能,一直是计算机体系结构研究领域的重要目 标。然而单纯依靠提高核心频率来提升处理器性能的方法受“能量墙 等问题的 影响已无法继续采用,处理器必须通过开发利用并行性来提升性能。 在单处理器结构中,开发利用并行性的主要方法是开发单一线程的指令级并 行度( i n s t r u c t i o nl e v e lp a r a l l e l i s m ,i l p ) ,一般通过加长流水线、增加c a c h e 、分 支预测、寄存器重命名、乱序执行机制等方法来进行。这些方法往往需要在芯片 上引入更多的调度逻辑电路从而进一步增加芯片的功耗,同时,程序的指令级并 行度是有限的。在单线程应用程序的性能提升陷入停滞状态时,挖掘程序中的线 程级并行度( t h r e a dl e v e lp a r a l l e l i s m ,t l p ) 遂成为了新的研究热点。与主要通过 复杂的硬件调度逻辑来开发i l p 相比,t l p 主要从软件的层面上定义多个线程来 进行开发,硬件只需要提供多线程的并发执行环境的支持。实现这一支持的最简 单方式为在同一个芯片上集成多个处理器核心,即通常所说的多核处理器( c h i p m u l t i p r o c e s s i n g ,c m p ) 。相比于单核处理器,c m p 具有控制逻辑简单、功耗低、 设计周期短及可扩展性强等优点,因此迅速成为了处理器的主要发展趋势。 图形处理器( g r a p h i c sp r o c e s s i n gu n i t ,g p u ) 作为一种典型的c m p 被广泛的 应用在个人计算机系统中。早先版本的g p u 由一些功能固定的专用集成电路组成, 而在g p u 的进化过程中,其片上的固定功能部件也在慢慢的向可编程的方向进化。 随着可编程的顶点渲染器( v e r t e xs h a d e r ) 和像素渲染器( p i x e ls h a d e r ) 的出现, 使得一些通用计算任务能够在o p e n g l 等图像语言的协助下映射到g p u 上实现, 并获得了较好的加速效果【2 6 1 。由此产生了g e n e r a l p u r p o s eg p u ( g p g p u ) 的概念, 即利用g p u 进行通用计算。在统一架构g p u 出现之后,由于其体系结构的重大 革新以及对应的并行编程模型如c u d a t l 】和b r o o k + 【4 6 j 的发布,g p u 变得更加适 于且更易于进行通用计算,更多c p u 上的通用应用程序被映射到g p u 实现【2 7 ,2 8 ,3 2 1 , g p g p u 也成为当前的研究热点,课题组也在这个方面做了一些工作。尽管如此, 目前大部分的研究主要集中在算法映射方面,即将更多c p u 上的应用程序映射到 g p u 上实现加速,而鲜有针对g p u 底层硬件结构的研究。而为了更好的利用g p u , 提高应用程序在g p u 上的运行速度,就必须对其体系结构进行研究,了解它的底 层硬件结构特征。 模拟器技术使用软件的方式来模拟处理器在体系结构级的功能和性能特征。 在现代处理器的设计和制造过程中,使用模拟器技术来对体系结构设计进行评估 和验证已称为一个不可缺少的环节。同时,模拟器技术也成为研究处理器体系结 第1 页 国防科技大学研究生院硕士学位论文 构的重要方法,以s i m p l e s c a l a r 2 j 为代表的c p u 模拟器已经发展得比较成熟,在这 些模拟器上的研究成果中的一部分成功的促进了c p u 体系结构的发展与进步。 g p u 作为多核处理器的典型代表,其体系结构特点对处理器的发展具有十分重要 的指导意义。但是由于g p u 的出现时间比较晚,针对其体系结构的模拟器发展还 不成熟,而且g p u 从传统图形流水线发展到g p g p u ,其体系结构在这一转变过 程中更是发生了较大的变化,针对统一架构g p u 的体系结构模拟器更是直到最近 一段时间才出现,因此对相关模拟器进行研究分析具有十分重要意义,是以后对 g p u 体系结构进行进一步研究的先决条件。本文以针对统一架构g p g p u 的模拟 器g p g p u s i m 3 】为主要研究对象,分析了其流水线和软件组成特点,并利用它来 对g p u 的硬件结构进行了一些探讨以及扩展了它的基本功能。 本章的余下部分描述了论文综述,论文的主要贡献以及全文的组织结构。 1 1 论文综述 处理器发展道路上遭遇到的一个重要问题为“存储墙”问题。g p u 一般包含 有多个计算核和存储器控制器,计算核负责计算任务而存储控制器则负责处理计 算核发出的访存请求。存储控制器的数目不够,会使计算核发出的访存请求得不 到及时的处理,从而使片上计算单元大部分时间处于等待操作数的状态上,导致 系统的性能下降。而集成更多的存储控制器虽然可以提高存储系统的数据供应能 力,但会造成芯片面积的增大,同时引起更高的功耗。因此g p u 中计算核和存储 控制器的数目之间应该维持一个最佳配置关系使得在尽可能的减少“存储墙 问 题带来的影响的同时控制芯片的面积和功耗。借助于模拟器g p g p u s i m ,论文试 图找出二者的最佳配置关系。 数据c a c h e 是现代处理器中十分重要的组成部分,它的存在使得处理器可以利 用数据的时空局部性来降低对片外存储器的平均访存延迟并提高存储器的带宽, 数据c a c h e 大小和性能是一款处理器整体性能的重要指标。然而在目前的g p u 产 品中却不包含有数据c a c h e ,尽管如此,g p u 在面对数据并行度较高的计算密集型 任务时仍然能够获得很高的性能。当前g p u 系统为何不引入数据c a c h e ? 在g p u 中加入数据c a c h e 能否提升系统性能? 通过适当的理论分析并且利用g p g p u - s i m 进行针对性的实验,论文试图回答这些问题。 g p u 的存储器分为片外和片内两部分,程序的操作数一般存储于片外存储器 中。由于访问片外存储器需要较高的延迟,访存操作一直是影响g p u 性能的瓶颈 所在,因此最大限度的利用这些高代价取回的操作数是提高程序性能的好的途径, 即,提高程序的计算访存比。借助于g p g p u s i m ,我们可以得到程序运行过程中 的访存指令和计算指令的数目,进而得到程序性能随计算访存比变化的情况。 第2 页 国防科技大学研究生院硕士学位论文 受“能量墙”问题的影响,功耗已成为处理器设计过程中的主要性能参数, 一款成功的处理器设计过程中必须要利用低功耗元素。目前自顶向下的功耗设计 流程依次可分为算法级、体系结构级、寄存器传输级、门级和晶体管级五个层次【7 】, 一般而言,抽象层次越高,设计者有就有更大的自由度来选择合适的低功耗技术, 功耗优化所能取得效果越好。相对而言,设计层次越低,功耗的减小及功耗优化 的效果都将变差,但其优化的精确性却将增大。在体系结构模拟器中加入功耗模 型可以分析不同结构的体系结构下的功耗大小,以及不同的算法实现的功耗对比, 可以从体系结构级和算法级分析处理器的功耗问题。 在着手对g p u 体系结构进行研究之前,需要选择一个合适的模拟器作为工具。 目前存在有四种针对g p u 的模拟器,分别为面向传统g p u 图形流水线的a t i l a 4 j 和q s i l v e r 5 1 ,以及面向统一架构的b a r r a 6 j 和g p g p u s i m t 3 1 。前两者适用于对g p u 的图像领域应用进行性能分析,而后两者适用于对g p u 通用计算领域的应用进行 性能分析。相比于其他三个模拟器,g p g p u s i m 具有更好的灵活性与更高的可扩 展性,且功能也最为强大,因此本文选择它作为主要的研究工具。尽管如此,还 是有必要对其它三种模拟器进行简略的介绍,这对于课题组今后设计自己提出的 流体系结构模拟器时具有一定的指导意义。 1 2 本文所做的贡献 本篇论文做出了如下几点贡献: 1 列举了当前的四种针对g p u 的模拟器a t i l a 、q s i l v e r 、b a r r a 和g p g p u s i m , 简单分析了前三者的基本特点并着重分析了g p g p u s i m 的流水线和软件 组成结构; 2 通过实验分析总结了g p u 上计算核数目与存储控制器数目之间的最佳配 置关系; 3 利用模拟器分析了数据c a c h e 对g p u 性能的影响,并总结了当前g p u 产 品中不引入数据c a c h e 的基本原因; 4 分析了g p u 上计算访存比对程序性能的影响; 5 在g p g p u s i r e 中加入了一个基于w a t t c h 8 】的功耗模型。 特别的,由于计算访存比对程序性能具有重要影响,并从g p u 对片外全局内 存的对齐访问方式得到启发,我们提出一种g p u 核间对齐访问机制并描述了简单 的硬件结构实现。当来自不同计算核的访存请求的地址位于存储器的同一段中时, 则该机制可以将这些访存合并成一次访存事务来实现,因此减少访问片外存储器 的次数,提升程序的计算访存比。 第3 页 国防科技大学研究生院硕士学位论文 1 3 论文组织结构 论文的余下部分的组织方式为: 第二章:介绍了多核处理器的发展趋势以及论文的基础准备知识,包括g p u 的体系结构模型特征和c u d a 编程平台的基本概念; 第三章:简单分析总结a t i l a 、q s i l v e r 和b a r r a 这三种模拟器的流水线结构以 及它们各自侧重的用途,详细分析模拟器g p g p u s i m 的模拟体系结构和软件结构 组成,以及相对于其它三种模拟器的优势所在。g p g p u s i m 是本文的实验工具; 第四章:在g p g p u s i m 上进行了若干实验,分析g p u 中计算核与存储控制 器之间的配置关系、总结数据c a c h e 在但前g p u 体系结构中的意义,分析计算访 存比对程序性能的影响,并提出一种核间对齐访问机制; 第五章:介绍在模拟器中集成的基于w a t t c h 的功耗模型,并利用该功耗模 型分析了使用g p u 片上共享内存的编程模式对系统整体能耗的影响。本章与第四 章的内容是论文的主要研究内容; 第六章:对全文进行总结并展望将来的工作。 第4 页 国防科技大学研究生院硕士学位论文 第二章课题背景 2 1 多核处理器的发展趋势 随着集成电路工艺尺寸的缩小及芯片单位面积上集成的晶体管数目的增多, 处理器的核心频率和运算速度也越来越快,而芯片散热技术的发展速度大大滞后 于处理器自身的发展速度。为追求更高的性能而单纯的提高单个核的工作频率会 导致芯片单位面积的发热量变得难以接受,从而带来严重的能量墙问题,使得处 理器的工作频率提高带来的效能越来越低,处理器转而朝着多核的方向发展。所 谓多核,是指在一枚处理器芯片中集成两个以上的完整计算内核,这些计算内核 通过一定的控制逻辑联系在一起,甚至共享多级数据c a c h e 。 多核处理器是体系结构发展道路上的重要方向。超标量( s u p e r s c a l a r ) 结构和 超长指令字( v l i w ) 结构在目前的高性能微处理器中被广泛采用 4 0 】,超标量结构 使用多个功能部件同时执行多条指令,超长指令字结构将多条指令组织成一个固 定的指令包进行发射。二者在发展过程中遇到了各自的问题,前者的控制逻辑比 较复杂,难以实现,后者在很大程度上受编译技术支持和二进制兼容的影响。同 时,这两种技术所利用的主要是指令级并行( i l p ) ,但是一个程序的指令级并行 度往往是十分有限的,单纯的依靠提高指令级并行度对整个程序的性能提升在到 达一定的程度之后便显得很不突出,即使是经过特别优化的复杂硬件设计往往也 只能得到十分有限的性能提升。而主流的商业应用,如数据库事务处理和w e b 服 务等,一般都具有较高的线程级并行度( t l p ) 。线程级并行是指应用程序可以被 划分为多个相互之间独立的线程并发的执行,每个线程都有自己独立的寄存器文 件空间。线程级并行可以起到隐藏访存延迟的作用,可以通过向系统中添加处理 器核的数目来使多个核上并行执行线程。 多核处理器通过在不同的处理核上执行相对独立的线程,利用线程并行性来 提高程序的性能。到目前为止,无论是在服务器领域还是在桌面电脑领域,多核 处理器都已经全面代替了单核处理器。相比单核处理器而言,多核处理器具有控 制逻辑相对简单、低功耗高主频、设计周期短和可扩展性强等优势。 目前多核处理器可以分为异构多核和同构多核这两类。顾名思义,这是根据 构成处理器的核的结构是否相同来进行分类的。由s o n y ,t o s h i b a 和i b m 三家公 司联合研制的被用作为p s 3 处理芯片的c e l l t 9 】处理器是异构多核的典型代表。这 是一个9 核心的处理器,其中的主处理器为一个是基于p o w e r p c 结构的双核处理 器,作为控制器的核心,负责向其余8 个处理器( s y n e r g i s t i cp r o c e s s i n gu n i t ,s p e ) 分配任务,不参与真正的数据运算。c e l l 处理器的每个s p e 都包含有一个高性 第5 页 国防科技大学研究生院硕士学位论文 能的向量处理器和各自的高速存储器( 包括本地内存和寄存器文件) 。s p e 可以 单独工作也可以链接起来处理流式数据,每一个s p e 都可以达到3 2 g f l o p s 的峰值 性能,数据运算主要在这8 个s p e 上进行。而典型的同构多核处理器则有l a r r a b e e 芯片【l o 】和g p u ,前者是是i n t e l 公司的图形芯片的开发代号,它基于若干个顺序的 x 8 6 核和固定功能模块实现,目前尚未正式发布。后者为本文的研究对象,将在后 文中详细描述。 2 2g p g p u 的缘起和发展 g p u 是g r a p h i c sp r o c e s s i n gu n i t 的首字母缩写,在计算机系统中被用来进行 图像处理方面的工作。g p u 在一开始并不是以一个整体芯片出现的,在上世纪8 0 年代,它只是一些具有不同功能的3 g 图形加速器,随着集成电路技术的发展,直 到上世纪9 0 年代中期才使得能够将所有必须元素整合到一个芯片上形成真正意义 上的g p u 。与d i r e c tx 系列标准定义的图形流水线处理过程相对应,传统g p u 由 一些专用集成电路模块组成,不同的模块部分完成图像流水线中的不同操作。其 中较为重要的为顶点处理模块( v e r t e xs h a d e r ) 和像素处理模块( p i x e ls h a d e r ) 2 1 】, 它们分别负责完成成像过程中的图形边框和图形细节的渲染过程,在一个g p u 芯 片中,二者的数量是一定的。由于各自任务的不同,二者只能对不同形式的输入 数据进行特定的操作,因此在工作过程中很容易导致资源分配不均的问题。一副 几何信息较多而细节不丰富的图像的成像过程会使得g p u 中的v e r t e xs h a d e r 大多 处于繁忙状态而p i x e ls h a d e r 大多处于空闲状态,同样的,一些几何信息较少而细 节丰富的图像的成像过程则会使v e r t e xs h a d e r 大多处于空闲状态而使得p i x e l s h a d e r 大多处于繁忙状态。这两种情况显然都会造成明显的资源浪费。由于产生 了硬件的空闲,使得芯片无论是在功耗方面还是在面积方面都产生了不利影响。 解决这一可能出现的硬件资源分配不均问题的最好方法就是将v e r t e xs h a d e r 和 p i x e ls h a d e r 整合成一种通用的u n i f i e ds h a d e r ,这一类型的s h a d e r 既可以进行顶点 处理又可以进行像素处理。这一通用化的s h a d e r 结构使得g p u 无论在面对上述两 种图像中的任何一种时,可以根据顶点计算任务量和像素计算任务量合理分配 s h a d e r 资源,不再造成硬件资源的浪费。这便是统一架构g p u 出现的初衷。 g p u 上蕴含有十分丰富的计算资源。在2 0 0 1 年n v i d i a 公司发布的g e f o r c e 3 系列芯片中,第一次引入了可编程的像素处理模块( p i x e ls h a d e r ) 。这一系列芯 片的可编程能力是十分有限的,但是后来的g p u 产品在可编程方面上变得越来越 灵活和快速,电路技术的进步使得芯片中的顶点和几何处理单元( v e r t e xa n d g e o m e t r ys h a d i n g ) 也具备了可编程性,这一进展在g e f o r c e 7 8 0 0 系列g p u 中达 到顶峰。所谓的g p g p u ( g e n e r a l p u r p o s eg p u ) 是指在g p u 芯片上执行非图形 第6 页 国防科技大学研究生院硕士学位论文 处理任务。早在统一架构g p u 出现之前,依靠通用的d i r e c t3 d 和o p e n g l 图形 接口标准程序集,研究人员可以将一些通用计算任务转化为图形成像中的某些过 程映射到g p u 中的可编程s h a d e r 上进行,并取得了相对于在c p u 上运行时的良 好性能加速比【1 1 , 4 2 。2 0 0 7 年,n v i d i a 公司发布了统一架构的g e f o r c e8 8 0 0 芯片 并推出了在其g p u 产品上进行通用程序设计的c u d a 编程环境,使得程序员可以 利用c 语言直接在g p u 上进行程序设计,而不再需要依托和掌握d i r e c t3 d 或 o p e n g l 等语言,大大的简化了利用g p u 进行通用计算的难度。 目前,两大显卡制造商n v i d i a 和a m da t i 都建立了各自针对高性能计算领 域的产品线以适应这一飞速发展的趋势。其中,n v i d i a 公司的产品线代号为 t e s l a ,而a m da t i 的代号为f i r e s t r e a m 。与其他的产品相比,这些面对高性能计 算领域的g p u 去掉了芯片上为了图像显示的部分,其优化目标是为了更高效地进 行科学计算而不是为了3 d 图像绘制。相对于价格十分昂贵的大型计算机系统来 说,这些g p u 产品在提供了强大的浮点运算能力的同时价格相对低廉,例如, n v i d i a 针对高性能计算市场的入门级产品t e s l ac 1 0 6 0 的售价要低于i n t e l 高端服 务器处理器x e o nw 5 5 9 0 的售价,而峰值性能却是后者的8 倍。由c p u 和g p u 组成的异构系统迅速的被利用到分子动力学、地震模拟、物理仿真等诸多工程应 用领域【1 2 1 3 ,4 6 1 。 2 3 统一架构g p u 的体系结构特点 目前n v i d a 公司和a m da t i 公司最新g p u 产品的芯片架构代号分别为 g t 2 0 0 和r v 7 7 0 ,这两种架构下g p u 都具有十分强大的处理性能,不过两款产品 在架构上存在着一定的差异,这点从产品的设计思想上可以看到。简单的说,g t 2 0 0 是以通用处理性能为目标进行优化,同时也带来了很高的图形处理性能;而在另 一方面,r v 7 7 0 是以图形处理性能进行最优化,同时其通用处理性能也达到了一 定的水平。由于g t 2 0 0 着重于通用处理的性能,因此控制单元核心尺寸增加了。 而r v 7 7 0 的控制单元核心部分更为紧凑,但是其在通用程序处理效率上有欠缺。 而鉴于n v i d i a 公司的g p u 在市场上的广泛占有率以及c u d a 在学术界的普及度 要远远高于a m da t i 公司的同类产品,特别是n v i d i a 公司的g p u 广泛应用于 g p g p u 领域中,因此论文主要针对的是n v l d i a 公司的系列g p u 和c u d a 编程 环境。 g 8 0 系列是n v i d i a 公司最早推出的统一架构g p u ,其硬件结构如图2 1 所 示。n v i d i a 将统一结构中的基本计算单元称为流多处理器( s t r e a m i n g m u l t i p r o c e s s o r s ,s m ) 。每个s m 可以看做成一个单流出多线程的处理器,是g p u 最底层的独立硬件结构,是g p u 计算能力的来源。每个s m 包含有8 个标量处理 第7 页 国防科技大学研究生院硕士学位论文 器( s c a l a rp r o c e s s o r ,s p ) 和两个用于求解超越方程的特殊函数单元( s p e c i a l f u n c t i o nu n i t ,s f u ) ,它们共用一个指令前端l l5 。同时,每个s m 中还含有一块 大小为1 6 k b 的共享高速内存( s h a r e dm e m o r y ) ,这一存储区域为s m 内部所有 的s p 都可见,具有与一级c a c h e 相当的访问延迟,并且是可控的。程序员可以显 式地声明存储于该地址空间的数据变量,因此这一内存通常被用来在s p 之间进行 数据交换和线程同步。s m 上还包含有数目较大的寄存器文件( 8 1 9 2 3 2 一b t ) , 这些寄存器文件在执行时并划分到单个的线程。在g 8 0 架构中,每两个s m 组成 一个线程处理簇( t h r e a dp r o c e s s i n gc l u s t e r , t p c ) ,组成t p c 的两个s m 共用一 级常量c a c h e 和纹理c a c h e ,且由若干个t p c 共用相同的二级常量和纹理c a c h e 。 g t 2 0 0 是n v i d i a 公司继g 8 0 之后发布的另一个系列的g p u 芯片架构代号,是目 前t e s l a 产品中所使用的芯片架构。g t 2 0 0 系列芯片与g 8 0 系列芯片中的标量处 理器( s p ) 的结构基本相同,二者的主要不同点在于: 每个t p c 所包含的s m 数目由原来的2 个变成了3 个; 单个s m 中的寄存器文件数目由原来的8 1 9 2 个增加到了1 6 3 8 4 个; 增加了对双精度浮点运算的支持,每个s m 中增加了一个双精度浮点运算 单元。 d e v i c e t p c8 t p c2 t p cl 早早早早甲早割8 争 南南南南 自自l i 童s p 唐i s p s ms m 上l c o n s t a n t c a c h e f t e x t u r e c a c h e 1 1 d e v i c em e m o r y 图2 1n v i d i ag 8 0 体系结构模型1 1 4 1 与c p u 不同的是,g p u 是一个完整的系统,除去片上的运算单元和高速缓存 之外,还包含有一个经过特殊设计的片外存储子系统。g p u 的片外存储器部分 第8 页 国防科技大学研究生院硕士学位论文 ( d e v i c em e m o r y ) 可以分为常量内存( c o n s t a n tm e m o r y ) ,本地内存( l o c a l m e m o r y ) ,全局内存( g l o b a lm e m o r y ) 以及纹理内存( t e x t u r em e m o r y ) 。常量 内存在片上具有c a c h e ,被用来存储程序中的常量如内核函数的配置信息等。本地 内存用于当g p u 片上的寄存器文件不够时,存储多出来的那部分程序变量以及缓 存c p u 和g p u 之间传递的数据。全局内存是存储程序般数据的地方,具有较 大的空间和较高的访存延迟,在片上不具备c a c h e 。纹理内存实际上与全局内存隶 属于统一的地址空间,当使用纹理a p i 对全局内存中的数据进行封装之后,该数 据所位于的内存区域即变成纹理内存,纹理内存在片上具有两级只读的c a c h e 。g p u 支持两种对片外数据进行访问的方式【婚】,一种是通过普通的l o a d s t o r e 单元访问片 外全局内存,另一种是通过片上的纹理单元访问经过封装的纹理类型的数据。与 c p u 系统相比,一个g p u 的存储器系统在它出厂时就被固定了,其存储器系统不 具备可配置和可扩展性,但是这样可以使得在设计阶段对该存储器系统进行充分 的优化,充分的提升存储器的性能。g p u 的片外内存通过p c i - eg e n2 数据总线连 接到主机c p u 的内存空间,单方向最高支持约8 g s 的传输带宽,而片外存储器 向g p u 片上运算单元传送数据的速度达到了约1 4 0 g s ,保证了主机与g p u 、设 备片外与片上的高速数据传递要求。 n v i d a 公司的下一代g p u 的体系结构代号称为f e r m i ,在2 0 0 9 年9 月3 0 号 的g p u 会议上,n v i d i a 公司展示了第一块f e r m i 显卡的工程样品,而正式产品 要等到2 0 0 9 年年底才会发布。相比于n v i d i a 前面的g 8 0 和g t 2 0 0 架构,f e r m i 从最底层的计算核心,各级存储层次到全芯片框架结构上都进行了全新的设计。 图2 2 展示了f e r m i 架构中的一个s m 组成。 第9 页 曰圉曰圉围困圈圈回圈曰曰圈曰回回 回回回围困圈圉团回团曰圈圉回圉圈 国防科技大学研究生院硕士学位论文 f e r m i 架构中s m 集成的标量处理器( s p ) 的数目上升到了3 2 个,特殊函数 单元( s f u ) 增加到了4 个,使得g p u 的计算能力获得了极大地提升,表2 1 列 出了g 8 0 ,g t 2 0 0 和f e r m i 三代g p u 在计算核配置上的区别。另外,f e r m i 架构 添加了对完整i e e e7 5 4 2 0 0 8 的标准硬件实现,每个标量核中都具备有双精度浮点 计算a l u 部件,而非在g t 2 0 0 架构中由s m 中8 个s p 共享一个。与s m 中计算 单元的数目增多相适应,f e r m i 架构中单s m 中的寄存器文件数目也有了相应的 增加,从g t 2 0 0 中的1 6 3 8 4 个增加到了3 2 7 6 8 个。由于c u d a 编译器通常为每个 线程分配1 0 2 0 个寄存器【l 刀,因而更多的寄存器通常意味着s m 上可同时运行更多 的线程,硬件的利用率也就更加充分。 表2 1 三代n v i d i ag p u 计算核配置
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC/TS 81001-2-2:2025 EN Health software and health IT systems safety,effectiveness and security - Part 2-2: Guidance for the implementation,disclosure and communication o
- 2025-2026学年北京版(新教材)二年级上册数学第七单元(数学百花园)提高试卷(附参考答案)
- 北京市朝阳区2024届高三年级上册期中质量检测化学试题(解析版)
- XX省传染病监测预警与应急指挥信息平台项目监测预警信息平台采购需求
- 湖北省华大新高考联盟2026届高三上学期11月教学质量测评生物试题
- 医学生作业考试题及答案
- 2025年纹样设计面试真题及答案
- 神户大学全部试题及答案
- 口腔科护理考试题及答案
- 招聘必杀技考试题及答案
- 2025广东东莞市樟木头镇招聘编外聘用人员14人笔试考试参考题库及答案解析
- 2025年及未来5年中国猴头菇深加工行业市场调研分析及投资前景预测报告
- 2025年某气调库建设项目可行性研究报告
- 辽宁省鞍山市海城市2025-2026学年七年级上学期道德与法治11月期中
- 施工管理人员年度培训考核试卷及答案
- 2025宁夏交通建设投资集团有限公司校园招聘和社会招聘230人(1号)考试笔试备考题库及答案解析
- 消防学员心理测试题及答案
- GB/T 9116.1-2000平面、突面带颈平焊钢制管法兰
- GB/T 4622.2-2008缠绕式垫片管法兰用垫片尺寸
- GB/T 13577-2006开放式炼胶机炼塑机
- 工艺安全检查表
评论
0/150
提交评论