1 / 8
文档名称:

代码优化-之-优化条 件分支.doc

格式:doc   页数:8页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

代码优化-之-优化条 件分支.doc

上传人:企业资源 2012/1/4 文件大小:0 KB

下载得到文件列表

代码优化-之-优化条 件分支.doc

文档介绍

文档介绍:代码优化-之-优化条件分支
                   HouSisong@  
tag:代码优化,条件分支,饱和,MMX,CMOV,掩码
摘要: 条件分支是编程中经常使用的基本操作,然而在某些时候它确可能带来严重的性能问题.
当前的CPU都能对条件分支做预测(动用了庞大的晶体管资源),如果分支预测正确,那么条件
指令一般只需要花费一个CPU周期,而如果预测错误,那么将可能花费几十个CPU周期!
  本文将讨论条件分支的一些有效优化方法.
正文:
  文章为收集加经验编辑而成的文章,对优化条件分支做了较全面的阐述. 
文章假定的CPU为x86,示例代码为C/C++.
?
  分支是编程语言中的常见结构;分支可以分为条件分支和非条件分支;
  条件分支举例:
    条件判断: if (a>255) a=255; else if (a<0) a=0;
    循环: for (i=0;i<1000;++i) { ...; }
          while(!bOk) { bOk=...;  } 
          ...
    对应汇编指令的jnz,jg等等
  非条件分支举例:
    函数调用(call),函数返回(return/ret),软件中断(int 3),直接跳转(jmp),...
  

  为了加快CPU的处理频率,现代CPU都设计了多级流水线,有的甚至有20级以上;
当CPU遇到跳转指令的时候,会做一个预测,把预测的分支代码载入流水线,当
发现预测错误的时候,需要清空流水线,重新载入正确的分支到流水线;那么预
测错误的代价周期数至少应该和流水线长度相当;然而考虑到各级的缓存失效、指
令解码等等,实际损失的周期数有可能是流水线长度的几倍!
   对于非条件分支,一般来说CPU都能得到相当高的预测准确率;我们主要来讨论
一下条件分支的预测;
 (有人可能会说,当CPU遇到条件分支时不做预测不就没有预测错误的惩罚了吗? 
这种流水线空着的惩罚实质和每次都预测错误然后清空流水线的代价相当,退一步
说就算每次随机选择一个分支来执行也有50%的收益)
C:需要优化的条件分支
  当前的CPU对各种简单的条件分支模式都能做出很的预测,比如奇偶模式:
  for (int i=0;i<1000;++i)
  {
     if (a%2==0) do0();
     else do1();
  }
  而对于随机的分支模式,再好的预测器也不可能做出好的预测;
  我们要优化条件分支,这些分支代码应该满足:该分支处于时间热点上,并且
分支预测错误率较高;这样我们才能得到优化的收益;
   (intel的VTune工具可以采样分支预测错误率)

  比如前面的那个奇偶循环模式,假设CPU不能正确预测,那么可以尝试改写为两个
for循环,一个处理偶数,一个处理奇数;
  一些图像处理算法里(比如模板运算/卷积运算/形态学运算等),经常需要判断边
界像素点,进行特殊处理;可以考略的优化方案是把边界区域和内部区域分开处理;
或者条件允许的话,可以扩大原图像

最近更新

矿井通风系统设计 50页

2025年货车-安全文明考试56 真题-无答案 7页

2025年课程思政课题存在的问题和下一步计划 8页

2025年设计合同书范本6篇 18页

备战2022年高考语文易错考点专练:语言表达之.. 16页

2025年论天基综合信息网络的发展 3页

人教课标版四年级第二学期数学期末测试题及答.. 4页

2025年解除劳动合同协议书模板(11篇) 21页

2025年视神经炎疾病研究报告 3页

2023学年统编版高中语文选择性必修下册第二单.. 8页

2025年西安高新科技职业学院单招职业技能测试.. 64页

文员工作内容岗位职责七篇大全最新 3页

感恩父亲节主题主题演讲讲话发言稿参考范文(精.. 13页

重阳节主持词(优秀范文20篇) 31页

2021-2022学年河南(上)语文期中试卷汇编:名著.. 4页

2025年襄阳科技职业学院单招职业倾向性测试题.. 63页

2025年衢州职业技术学院单招职业倾向性测试题.. 62页

小班健康活动优质公开课获奖教案教学设计《安.. 2页

2025年蚌埠经济技术职业学院单招职业倾向性考.. 63页

(完整word版)首件标识卡 2页

美甲师专属劳动协议范本2024年版版 11页

初中数学跨学科项目式学习区域实践探索 10页

国家质量监测小学美术四年级测试题题库1 9页

2024年安全三类人员模拟考试题与详细解答 14页

销售技巧素转非PPT教案 56页

教育信息化领导力发展与提升v1.0 102页

端午节经典诵读--课件(PPT演示稿) 16页

图们江区域国际合作示范区发展5精要 12页

北美农业工程学科的发展给我们的启示 41页