欢迎来到天天文库
浏览记录
ID:70571131
大小:1.01 MB
页数:78页
时间:2021-11-23
《最新十章依赖于机器的优化PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、十章依赖于机器的优化第十章依赖于机器的优化本章内容使用指令级并行的基础问题提取并行的数据相关性分析代码调度的基本概念基本块调度的技术、发现通用程序中的高度数据相关控制流的方法、调度数值程序的软件流水线技术在多处理器系统上,使用数组的计算密集型程序的并行化和数据局部性优化的概念和方法10.2代码调度的约束10.2.1数据相关真相关如果对同一个单元先写后读,那么读依赖于所写的值反相关如果对同一个单元先读后写。可以通过把值存在不同的单元来删除反相关输出相关如果对同一个单元先后写两次。也可删除数据相关概念可同时用于内存访
2、问和寄存器访问10.2代码调度的约束10.2.2发现内存访问中的相关性例(1)a=1(2)p=2(3)x=a语句(1)和(2)可能构成输出相关语句(1)和(3)可能构成真相关语句(2)和(3)可能构成真相关除非编译器知道p不可能指向a,否则3个操作必须串行执行10.2代码调度的约束10.2.2发现内存访问中的相关性发现数据相关需要不同形式的分析数组元素间的别名分析A[i]和A[j]是否互为别名指针别名分析若p和q相等,则p和q、p->next和q->next、p->
3、data和q->data等都分别互为别名过程间分析引用调用场合:形参和形参之间、形参和全局变量之间因实参而引起互为别名10.2代码调度的约束10.2.3寄存器使用和并行执行之间的折衷例:(a+b)+c+(d+e)LDR1,aLDR2,bADDR1,R1,R2LDR2,cADDR1,R1,R2LDR2,dLDR3,eADDR2,R2,R3ADDR1,R1,R2+e+c+ab+d若瞄准极小化寄存器的使用个数,则只需使用3个寄存器10.2代码调度的约束10.2.3寄存器使用和并行执行之间的折衷例:(a+b
4、)+c+(d+e)LDR1,aLDR2,bADDR1,R1,R2LDR2,cADDR1,R1,R2LDR2,dLDR3,eADDR2,R2,R3ADDR1,R1,R2+e+c+ab+d完成整个计算需要7步10.2代码调度的约束10.2.3寄存器使用和并行执行之间的折衷例:(a+b)+c+(d+e)+e+c+ab+d如果对每个中间结果使用不同寄存器,则完成计算只需要4步R1=aR6=R1+R2R8=R6+R3R9=R8+R7R2=bR7=R4+R5R3=cR4=dR5=e10.2代码调度的约束10.2.4寄存器分配
5、和代码调度的次序安排先寄存器分配结果代码中会有很多存储相关非数值应用本质上没有多少并行,采用这种方式先代码调度导致寄存器溢出,抵消指令级并行的优点适用于有许多大表达式的数值应用在假定伪寄存器就是物理寄存器情况下,先调度指令,然后寄存器分配,把处理寄存器溢出的代码附加在必要的地方,并再次进行代码调度10.2代码调度的约束10.2.5控制相关在非数值计算中,基本块非常小,其中的操作通常高度相关,几乎不能并行调查跨基本块的并行是至关重要的若一条指令很可能被执
此文档下载收益归作者所有