一种计算循环展开因子的算法.pdf

上传人:小小飞 文档编号:5034446 上传时间:2020-01-29 格式:PDF 页数:6 大小:272.09KB
返回 下载 相关 举报
一种计算循环展开因子的算法.pdf_第1页
第1页 / 共6页
一种计算循环展开因子的算法.pdf_第2页
第2页 / 共6页
一种计算循环展开因子的算法.pdf_第3页
第3页 / 共6页
一种计算循环展开因子的算法.pdf_第4页
第4页 / 共6页
一种计算循环展开因子的算法.pdf_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《一种计算循环展开因子的算法.pdf》由会员分享,可在线阅读,更多相关《一种计算循环展开因子的算法.pdf(6页珍藏版)》请在三一文库上搜索。

1、! ! ! ! 主垦生簦垫查全! ! 竺! :! ! ! 型一 一种计算循环展开因子的算法+ 李文龙。林隽民,汤志忠 清华大学计算机科学与技术系,北京清华大学,1 0 0 0 8 4 摘要: 软件流水一种有效的用于开发循环体阃指令级 并行性的优化技术,循环展开是另一种用于开发循环指令 级并行性的技术。研究表明,在软件流水前应用循环展开 可以进一步提高编译器的性能。如何确定一个合理的展开 因子,充分发挥循环展开和软件流水的优势,一直是循环 展开和软件流水结合所面临的问题。该文提出了一种新的 用于计算循环展开因子的算法,通过此算法能够得到一个 合理的展开因子。 关键词:软件流水;循环展开;展开因子

2、 A n A l g o r i t h m f o rD e t e r m i n i n gL o o p U n r o l l i n g F a c t o r L i W e n i o n g , I nJ u a n m i n T a n gZ h i z h o n g D e p a r t m e n to f C o m p u t e rS c i e n c ea n dT e c h n o l o g y , T s i n g h u a U n i v e r s i t y , B e i j i n g1 0 0 0 8 4 A b s t r a

3、c t :S o f t w a r ep i p e l i n i n gi s e f f e c t i v eo p t i m i z a t i o n t e c h n i q u ef o re 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 m o n g i t e r a t i o n so fl o o p L o 叩u n r o l l i n gi sa n o t h e ro p t i m i z a t i o n t e c h n i q u ef o r

4、l o o p s R e s e a r c hi n a r c ao fi n s t r u c t i o nl e v e l p a r a l l e l i s m s h o w st h a t a p p l y i n gl o o pu n r o l l i n g b e f o r e s o t ! | w a r ep i p e l i n i n gc a nf u r t h e ri m p r o v ep e r f o r m a n c eo f c o m p i l e r H o w t od e t e r m i n eaf e

5、a s i b l eu n r o l l i n gf a c t o ri ss t i l l ad i f f i c u l tq u e s t i o ni na p p l y i n gt h e s et w ol o o po p t i m i z a t i o n t e c h n i q u e sA n e wa l g o r i t h mf o rd e t e r m i n i n gu n r o l l i n gf a c t o r i sp r o p o s e di nt h i sp a p e r , K e yw o r d s

6、 :s o f t w a r ep i p e l i n i n g ;l o o pu n r o l l i n g ;u n r o l l i n g f a c t o r 1 引言 一般来说,程序的大部分执行时间花费在循 环上,有效开发循环中的指令级并行性将提高整 个程序的执行效率。软件流水通过重叠不同循 环体的执行来获得加速,在一个循环体未结束之 前,启动下一个循环体。循环展开”1 是另一种开 发循环指令级并行性的优化技术。在循环展开中, 通过将循环体复制多份增加了可供调度的指令 数量,降低了循环转移的开销。 循环展开和软件流水的关系紧密,通常在软 件流水之前,将循环适当的展

7、开,可以进一步提 高软件流水的调度结果,提高编译器的整体性能 本文提出了一种计算循环展开因子的算法, 通过合理的控制循环展开的次数,有效发挥循环 展开对软件流水的贡献,提高了编译器的性能。 2 相关概念和实验框架 2 1 软件流水 软件流水是一种开发循环体间并行性的优化 技术。在软件流水中,相邻循环体的启动距离称 为启动间距( I I ,I n i t i a t i o nI n t e r v a l ) 。启动间 距I I 由两个因素决定:循环体之间的数据相关 ( R e c M l l ) 和功能部件的资源相关( R e s M I I ) ,启动 间距的下限称为最小启动间距M I I

8、 , M I I = i a x ( R e c M I I 。R e s M I I ) 。 2 2 循环展开 循环展开是一种简单而有效的开发指令级并行 性的方法,它通过复制循环体多次,并调整循环出 口代码而得到一个新的循环体。循环展开已经被证 明是一种非常有效的提高编译器性能的方法,被广 泛地应用在不同的体系结构中,从超标量体系结构 到v L l w 、认6 4 这样静态调度的体系结构。 2 3 实验框架 测试程序来自S P E C 2 0 0 0B e n c h m a r k ,所有的 测试程序均用O R C ( O p e nR e s e a r c hC o m p iI e

9、r ) “。 进行编译。 O R C 编译生成的代码可在I A - 6 4 体系结构的 I t a n i u m l 处理器”1 上运行。I t a n i u m l 是 I P F ( I t a n i u mP r o c e s s o rF a m i l y ) 的第一代产品。 它的流水线级数为1 0 级,有9 个功能部件,每周 期最多可发射6 条指令,支持条件执行 ( P r e d i c a t i o n ) 。实验所用的机器配置如表I 所 示。 3 循环展开的动机和问题 通过循环展开,消除了大量的分支指令,去 除了不必要的递增和递减操作,减少了总发射的 指令数量。另外

10、展开复制循环体多次,增大了基 本块的规模。展开后的循环体包含更多的指令 处理器 高速缓存 内存 总线频率 1I t a n i u m 7 3 3 埘z 1 6 KL 1D C a c h e 1 6 KL lI C a c h e 9 6 KL 2C a c h e 2 ML 3C a c h e ( o f fd i e ) l GS D R A M 1 3 3 删z 表lH Pw o r k s t a t i o ni 2 0 0 0 的配置 有利于把不相关的指令调度到一起并行执 行,得到更好的调度结果。 3 1 软件流水前应用循环展开的动机 在软件流水之前应用循环展开的动机主要有 以

11、下几点: 1软件流水的I I 必须是整数,利用循环展 开可以避免分数I I 向上取整所造成的 性能降低; 2未经展开的循环软件流水之后每个时钟 周期至多能执行一个循环体。对于那些 操作个数很少、资源、相关限制也很小 的循环而言,展开后软件流水可以实现 每个时钟周期执行多个循环体: 3 相对于无环列表调度而言,在某些时候, 单独软件流水的性能不如展开列表调度 后的结果: 循环展开的主要且的是为了使软件流水能 够生成一个尽可能接近M I I 的调度。通过对循 环展开一定的次数K ,使原循环体的平均I I 达到最小值,平均I I 计算公式为: v g = I M I I * K l ,K 。因为M

12、I I 是由资源限制的 R e s M I l 和相关限制的R e c M I I 共同决定的,因 此在计算展开因子时主要考虑下面这2 个因 素: lR e s M I I 决定M I I 当R e s M l l R e c M l I 时,M I I 由R e s M l I 决定。 如果R e s M l I :P N 是分数,那么展开因子 K = 州g c 嘏帅,其中g c d 是求最大公约数。展开K 次后,关键资源的利用率可以提高到1 0 0 ,平 均I I 可以为分数。以图l 中的循环为例进行说 明,假设目标处理机中整数、浮点、m e m o r y 功能部 件数目都是2 ,操作的

13、延迟都为1 。 从图1 可以看出,该循环的R e c M l I = l , R e s M l I 为3 2 = 1 5 ,其中m e m o r y 是关键资源。 如果不进行循环展开,I I = J3 2 】= 2 。关键资源 利用率只有1 5 2 = 7 5 。如果将循环展开2 次, 则新循环体包含6 个m e m o r y 操作,I I n e w = 3 , 平均I I 达到3 2 = 1 5 ,m e m o r y 资源利用率达 到1 0 0 。从图1 ( b ) ( c ) 模调度资源表( M R T ) 在 展开前后的变化可以看出循环展开提高了资 源利用率,实现了分数的启动

14、间距。 L 1 l d f d 凸= 【r 8 】8 l d f d f 5 霉【f 2 】g , 鲥璐= t 3 巧: s f f d 【州琊8 h r c l o o pL 1 : ( a ) 循环程序 ( c ) 展开后的脚 图I 循环程序及W R T 表 2R e e R I I 决定M I I 如果R e c M I l R e s M l l ,那么循环以相关限 制为主,M I I 由R e c M l I 决定。如果R e c M l I 是 分数,记R e e M l l = 8 d ,分母是相关限制最严重 的回路上所有相关距离( 体差) 之和,分子则是 该回路上所有相关延迟之

15、和。取展开因子 K = d g c d ( 8 ,d ) 后。新循环体的R e c M l I 为整数。 倚 札f 毋 I 嚣 展开酊D D G 删I - 2 屉弃3 骺D D G R e c M l I - 4 ,平均I I - 4 3 图2 展开前后的相关性图( D D G ) 图2 是一个相关回路的例子,其中相关边用 ( d ,m ) 标注,d 是相关时延,m 是相关体差。 R e c M I I = zd ,Z 。= ( 2 + l + 1 ) ( 0 + O + 3 ) = 4 3 ,如果 不展开,只能以I I = | 4 3 2 启动:如果选择K = 2 进行循环展开,则平均I I

16、 = 3 2 = 1 5 ;如果选择 K = 3 ,则平均I I = 4 3 = 1 3 3 ,即每4 个周期可以 完成3 个循环体,从这两个例子可以看出,展开 可以降低平均I I 的值。 3 2 循环展开的问题 循环展开优化也有一定的缺点。首先,它复 蜃 n 蜃 一一一一型! ! 里生兰垫查叁! 型曼! :! ! 塑! 一 _ _ _ _ _ _ _ _ _ _ _ - - _ - - 。_ - _ 。- - _ 。_ _ 。- 。_ 。- 。- - 。- - - _ _ _ H _ _ _ - _ _ _ _ - - 。- 。P 。_ 。 制循环体多次,代码膨胀使得指令c a c h e

17、的缺失 率变大,导致c a c h e 的性能变差。其次,循环展 开增大了寄存器的压力,当软件流水后的调度结 果所需的寄存器超过目标处理机所能提供的数量 时,或者增大I I ,降低并行度。或者放弃软件流 水,转而使用无环的列表调度,放弃软件流水也 就意味失去了软件流水优化所能带来的好处。另 外在列表调度中,如果寄存器压力过大,需要使 用s p i l l 机制保存和恢复寄存器的内容,s p i l l 会引入一定的开销,这些开销会降低循环展开和 软件流水优化所能带来的性能提高。另外循环展 开增多了循环体中的操作个数,使软件流水的 调度变得复杂,增大了编译时的开销,调度的 复杂不利于找到较优的调

18、度。 循环展开中最基本的问题就是确定一个合理 的展开因子,在展开的获益和开销之间做出最佳 或者近似最佳的平衡。展开因子的选取既要考虑 后面软件流水的调度,还要考虑循环展开所带来 的问题。 4 计算循环展开因子的算法 循环展开因子的确定是由很多因素所决定, 如果能预先确定这些因素,分析其对展开因子的 限制这样就可以得到一个合理的值。 4 1 限制循环晨开的因素 在软件流水优化中,其所能实现的I I 受下面 这些因素的影响: 1 执行资源( 如寄存器、流水段数、c a c h e 、 m e m o r y 、功能部件) ; 2 循环体中指令的类型、相关性类型、指 令的延迟、所需的寄存器数量; 3

19、 软件流水算法和寄存器分配算法的性 能; 第一点与目标处理机有关,第3 点跟算法的 性能有关,这两个因素在该文的研究中都是预先 确定好的。第2 点跟优化的循环程序有关,不同 的循环需要根据其自身的特点计算出相应的展开 因子。因为循环展开影响软件流水的结果,所以 在计算展开因子时,不能单纯的从循环展开所能 带来的好处出发,而要综合考虑循环展开和软件 流水对性能的影响。在提出展开算法之前,需要 预先分析出下面这些因素: 1分析循环对资源的占用情况判断出哪 种资源是关键资源( 资源利用率最高 的) : 2判断原始循环中是否包含分支: 3计算未经展开的循环在应用软件流水后 能够实现的R e s M l

20、 I 和R e c M I I ; 在算法中,我们将根据下面这些因素来确定 一个合适的展开因子: 1如果R e c M I I R e s M I I ,且R e c W I I 为分数, 则展开次数取R e c M I I 的分母,避免I I 向上取整造成的性能降低: 2在R e s W l l R e c M l l ,并且任何资源的利 用率都没有达到1 0 0 时,对循环进行展 开,使得某种关键资源得到充分利用, 即资源利用率达到1 0 0 或者接近1 0 0 ; 3考虑循环展开对寄存器压力的影响,如 果循环对寄存器的需求比较大,应尽量 减小展开的次数: 4 如果循环体中的操作很少、相关

21、性很弱、 并且资源使用均衡时,适当的增大展开 次数,为后面的软件流水调度提供更多 的操作; 5 考虑循环的结构,如果循环中有分支, 展开次数要稍大一些; 6在循环以m e m o r y 操作为主( M e m 资源受 限) 并有p r e f e t c h 操作的情况下,适当 增大展开次数,可以提高p r e f e t c h 的利 用率,减小p r e f e t c h 的开销: 7 考虑循环展开所增加的开销: 第1 、2 点前面已经叙述,这里不再描述。 对于第3 点寄存器压力的判断,利用启发式 实现。我们对循环展开前后所需的寄存器个数进 行了统计,如图3 、图4 所示。 1 0 0

22、 兰8 0 杂 霉6 0 餐 兰4 0 旨 l 2 0 0 048L 2 1 6如2 4掉3 2黯 整缸奇稃暑十敦 “) g E c I n t 棚h 帅c h 融r k 1 0 0 姜8 0 至6 帆 蓝 翌4 吨 至粥 0 筮 彘 也 旬 餐 懿 旨 妊 一展开前的I s D 一展开后的1 s r 一展开前的I R 一展开后的I R 048 1 21 62 02 4 2 83 2 3 64 04 44 85 25 6 整数寄存器个数 ( b ) S P E C f p 2 0 0 0b e n c h m a r k 图3 循环展开前后整数寄存器需求的对比 ”一“4 淳善南滗斗W ”2 (

23、 S P E C f p 2 0 0 0b e n c h m a r k ) 圈4 循环展开前后浮点寄存器需求的对比 寄存器需求情况用累积折线图表示,横轴是 寄存器需求个数,纵轴是循环个数所占百分比, 折线上的点( n a ) 表示寄存器需求小于等于n 的循环个数占全部循环的a 。统计对象包括整数 ( 通用) 寄存器和浮点寄存器,每一类寄存器又可 分为静态和旋转2 部分,整数静态、整数旋转、 浮点静态、浮点旋转寄存器分别用I S 、I R 、F S 、 F R 表示。因为C I N T 2 0 0 0 的浮点寄存器需求很小, 在这里我们不再列出。从图3 、图4 可以看出, 展开使整数旋转寄存

24、器和浮点旋转寄存器的需求 大幅增加,另外展开后,整数静态寄存器压力增 大。在展开时,因为尚未进行调度,此时无法准 确的得到循环所需的寄存器个数。评估寄存器压 力只能从现有的信息中挖掘。我们利用R e s M I I 进行寄存器压力的估算,所用的启发式如下: 对于R e s M I I R e c M I I 的循环而言,如果 R e s M I I T 时,则假定寄存器压力很小,此时展 开因子不受寄存器压力的影响;当L T z 时则认为寄存器压力非常大,此时循 环不适合展开,允许最大展开因子为1 ,即不展 开,通过实验发现T l 和T 2 分别取】0 和1 5 比较 合适。 第4 点主要是针对

25、小循环,展开使得软件流 水可以实现每个时钟周期执行多个循环体。 w i n n e r = O : f o r ( t i = s p o t ;t i Y w i r m e r Y ) w i n n e r - - t i ; 图5 带分支的循环 在第5 点中,对于带分支的循环,由于循 环结构自身的特点,在软件流水预处理时,为 了保证旋转寄存器能够读到正确的值,引入了 寄存器拷贝操作加大了关键路径的长度。利 用循环展开可以避免软件流水对拷贝操作的 依赖,减小相关回路的长度。对于图5 中的例 子,如果不展开,软件流水所能实现的I I 为 1 6 ,如果展开,平均I I 可以减小到1 5 。

26、 i m D e t e r m i n e _ S w P _ - U n r o l l _ F a c t o r ( ) 1 根据资源利用率计算展开因子u n r o l l j a c t o r : 2 将u n r o l l _ f a c t o r 化为2 的幂方; 3 计算R e c 砌和R e s M I I ; 4 I F 循环为小循环T H E N R E T U R N u l l r o n f a c t o r ; E N D m 5 I FR e s M I I :S R e c M I IT H E N u n r o l l j a c t o r =

27、 l : D 囝I F 6 I F 循环包含分支T H E N u n r o l l _ f a c t o r 2 M a x ( u n r o ,伽c t o r ,2 ) ; E N D 7 mT l g t e s M I I T 2T H E N u n r o l l _ f a c t o r = 2 ; E L S I FT 2 :5 ;R e s M I I u n r o l l _ f a c t o r = l : E N D I F ( 其中T I = I O ,T 2 = 1 5 ) R E T U R N u n t o H f n c t o r ; ) 图

28、6 计算展开因子的算法 对于第6 点,在展开之后,p r e f e t c h 指令 只需保留一份,为展开的多个循环体所共用。 在M e m o r y 资源受限的情况下,展开可以降低 p r e f e t c h 指令所占的比例,提高了M e m o r y 功 2 0 0 3 中国计算机火会( C N C C 2 0 0 3 ) -_-H_-_一。一一一。 能部件的有效利用率。对于第7 点,循环在展 开的同时增大了初始化部分另外如果循环次数 在编译时未知,展开后需要插入除法或者移位指 令来计算新循环的执行次数。执行初始化指令和 这些除法或者移位指令都需要一定的开销。当循 环嵌套层次较深

29、时,开销更加明显。 在算法中,我们充分考虑了资源的利用率、 寄存器的压力、循环的结构等因素,同时结合前 面所给出的启发式,在展开的益处和开销之间 进行平衡,排除不必要的展开,并在开销过大 的情况下限制展开因子,从而得到一个合理的 展开因子。 5 实验结果 在O R C 上实现T 上面的展开因子算法,在 I t a n i u m l 上对S p e c 2 0 0 0b e n c h m a r k 进行了测试。 图7 ( a ) 、( b ) 给出了在展开时,考虑开销和不 考虑开销这两种情况下对性能的提高。 当计算展开因子时考虑开销,循环展开对整 数和浮点分别能带来0 4 和0 4 的加速

30、比。如果 不考虑开销整数只有0 1 的性能提高,而浮点 的性能降低了0 4 。实验数据表明,合理的展开 能够提高编译器的性能,但是展开也带来一定的 开销,在展开时,必须考虑这部分开销。 1 1 1 0 5 丑 删1 星 O9 5 o 9 p 锵拶 12 I I 墨 辑 g O9 i ;jj llj il ;黑善5 ! 言耋;ll 羔量l ; ( b ) S P E C f p 2 0 0 0b e n c h m a r k s 8 ;三兰曼! i = i :8 重量i 禹 图7 循环展开对性能的影响 筹嚣菇每毒蚶E 1 2 1 1 丑 捌 i 星 0 9 O 8 寸麓澎 图8 改进展开因子前

31、后性能的对比 图8 ( a ) 、( b ) 是应用展开因子算法前后性能的 比较。可以发现,使用该文所提出的展开因子算 法编译器的性能进一步得到了提高,整数 B e n c h m a r k 平均有0 6 的提高,而浮点b e n c h m a r k 平均有1 1 的提高。相对于不展开而言,循环展 开使得编译器性能在整数和浮点方面分别提高了 1 和1 5 。 图9 ( a ) 、( b ) 给出了应用展开因子算法前后展 开次数变化的统计图。从图上可以看出,相对于 原来的展开因子计算方法而言,新的算法所确定 的展开因子的值小于或者等于原来的值,大部分 循环程序只要展开4 次就足够了,但这并

32、不表明 展开次数越小越好。我们对图8 ( b ) 中编号为1 6 8 的程序进行了分析,发现那些做软件流水的循环, 展开次数都比较小,如果适当增大展开次数,性 能反而会进一步提高。我们会进一步分析这个程 序,完善展开因子计算算法。 1 5 l 5 9 L 蔓剖景旧 m 二登盐墨堡! 垦墅里三塑簦鲨 u6 0 隶5 0 ! 譬4 0 薹:嚣 塞姗 魄 0248 展开次数 ( a ) S P E C i n t 2 0 0 0b e n c h m a r k s o 最开次数 48 ( b ) S P E C f p 2 0 0 0b e n c h m a r k s 凰9 应用新算法前后的循

33、环展开次数的变化 6 相关工作和结论 6 I 相关工作 通常,循环展开是在软件流水调度之前进行 的,即根据最优的启动间距I I 来确定展开因子K , 如果在软件流水时无法得到启动间距为I I 的调 度,则增加I I 继续调度,这样,原来计算的展开 因子K 可能就不是最优的了。S a n c h e z 等提出了 一种在二维空间( I I K K ) 搜索展开因子的方法 1 ,即不同的I I K 可能对应不同的K ,它首先将 二元组( I I K ,K ) 按照吞吐率的降序排列,然后依 次进行调度。实验表明,他们的方法可以比传统 方法提高5 、1 2 5 。但该方法需要重复进行循环 展开和模调度

34、,计算复杂度较高。 V i v e k 在中提出了针对完美多重循环展开 因子的选择算法。在这个算法中,借助于代价模 型,采用枚举方法选出每一层循环的展开因子。 代价模型主要考虑了循环展开对寄存器压力、所 能实现的指令级并行性以及对指令c a c h e 的影 响。此算法并没有考虑循环展开对软件流水的影 响,只是单纯的从循环展开的角度来计算展开因 子。 U I U C 的I M P A C T ”。编译器根据资源的利用率和 I I 的数值来确定展开因子。在O R C ”1 编译器中, 除了考虑资源利用率和I I 的值,还考虑了展开所 引入的开销。 而本文所提出的计算展开因子算法综合考虑 了循环展

35、开和软件流水对性能的影响,加入了开 销、寄存器压力等方面的限制因素。 6 2 结论 该文分析了那些影响循环展开性能的因素, 提出了一个用于计算循环展开因子的算法,在 O R C 中实现并且测试了大量的b e n c h m a r k 程序, 通过分析和实验结果,我们可以得出下面这些结 论: 1在软件流水前应用循环展开可以提茼编 译器的性能; 2 展开因子是影响循环展开优化对性能贡 献的关键因素; 本文的结果还表明,新的展开因子算法并没 有完全开发出循环展开所带来的性能提高。因此 加入新的展开因子限制因素,改进当前的展开因 子算法仍是将来的工作重点。 参考文献 【l 】L a r n MS ,

36、S o f t w a r e P i p e l i n e r i g :A n E f f e c t i v e S c h c d u | i n gT e c h n i c L i e f o r V L I WM a c h i n e s , P r o c e e d i n g so f t h eA C MS i g p l n1 9 8 8C o n f e r e n c eo n P m g r u n a r m n gL a n g u a g eD e s i g na n dI m p l e m e n t a t i o n , 1 9 8 8 2 】

37、 W e i s ss ,S m i t hJE ,AS t u d yo fS c a l a rC o m p i l a t i o n 砸h n i q u f o rP i p e l i n e dS u p c r c o m p u t e r s ,A C M T r a n s a c t i o n so l lM a t h c m a t i c a lS o f t w a r e ,1 9 9 0 3 】L a v e r y D M ,H w u W w ,U n r o l l i n g b a s e d O p t i m i z a t i o nf

38、o rM o d u l oS c h e d u l i n g ,P r o c e e d i n g so f t h e2 8 t hA n n u a lI n t e r n a t i o n a l S y m p o s i u m o n M i c r o a r c h i t e c t u r e ,1 9 9 5 【4 】R o yJ ,S u nC ,W uC Y ,O p e nR e s e a r c hC o m p i l e rf o r I t a n i u mP r o c e s s o rF a t - n i l y ( I P F )

39、 ,M I C R O - 3 4 ,2 0 0 1 r 5 】 I o t e lc o 玎) 0 眦i o n JI n t e l1 A - 6 4A r c h i m c t u r cS o f t w a r e D e v e l o p e r s M a n u a lV o l u m e1 :I A - 6 4A p p l i c a t i o n A r c h i t e c t u r e 2 0 0 0 【6 】6 S a n c h e zF ,C o r t u d e l l aJ ,a n dB a d i aRM ,O p t i m a l E

40、x p l o r a t i o n o ft h eU n r o l l i n gD e g r e ef o rS o f t w a r e P i p e l i n i n g ,J o u r n a lo f S y s t e m sA r c h i t e c t u r e ,1 9 9 9 7 】V i v e kS a r k a r , O p t i m i z e dU n r o l l i n go f N e s t e d L o o p s ,I n t e m a t i o n a l J o u r n a lo fP a r a l l e l P r o g r a m m i n g ,2 0 0 1 啡懈枷姗僻薹霍笔慨 羞隶般七龌糕牛薛姆

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1