lab4性能优化实验分析.ppt_第1页
lab4性能优化实验分析.ppt_第2页
lab4性能优化实验分析.ppt_第3页
lab4性能优化实验分析.ppt_第4页
lab4性能优化实验分析.ppt_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

性能优化实验分析,施爱春2009/12/7,代码优化,“不成熟的优化乃万恶之源”-TonyHoare前期着重精良的算法设计,后期找出性能瓶颈,注重传统的优化措施以底层语言思考,用高级语言编程,手工优化的若干级别,最抽象层:选择合适的算法优化程序(与编译器和语言均无关)低一层:基于所用的高级语言优化代码(不依赖语言的特定实现)再低一层:考虑代码的组织,优化针对特定的编译器和函数库(VC,GCC,ICC)最低一层:考虑编译器生成的机器码,调整指令序列,常见代码优化方法,减少函数调用提前计算循环展开并行运算提高cache利用率,ImageRotate,naive_rotate缺点:程序局部性不好,循环次数过多,FirstTrying:分块,尝试分成4*4的小块,提高空间局部性测试CPE改进为1.8,SecondTrying:循环展开,采用32*32分块,4*4路循环展开,注意循环内部语句执行顺序测试CPE改进2.7,ThirdTrying?,假设分块为4*4的矩阵,采用不同的巡回路线srcdest,LastTrying,考虑矩形分块32*1,32路循环展开,并使dest地址连续,以减少存储器写次数测得CPE改进为3.5,ImageSmooth,naive_smooth,FirstTrying:减少函数调用,函数avg,accumulate_sum在smooth内实现函数assign_sum_to_pixel,min,max用宏定义实现得到的CPE改进为1.6,SecondTrying:使用局部变量,让所有的函数调用均集成在smooth内,然后确定求平均值时涉及到的元素,它们的位置用4个局部变量记录下来,求和的像素个数用另外一个局部变量确定,最后做加法和除法得到的CPE改进为5.0,SecondTrying:使用局部变量,ThirdTrying:使用完全循环展开,分析不同的avg情况共有9种,4个角点位置,4个边带位置,1个中央块,因此只需对这9种情况分别讨论比如左上角点,ThirdTrying:使用完全循环展开,中央位置最终测得CPE改进为8.6,LastTrying?,减少冗余计算预先确定操作数的地址,使用指针变量s0=src+rows1=src+row-dims2=src+row+dim变常数除法为乘法/4等效成2/6等效*0 x2AAB16/9等效成*0 x1C7216,代码优化推荐书籍,WriteGreatCodeVolume2:ThinkingLow-level,WritingHigh-level-RandallHydeSoftwareOptimizationforHigh-PerformanceComputing:Creat

温馨提示

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

评论

0/150

提交评论