C++性能榨汁机之分支预测器(4)

前言在上篇文章中,我们通过分析一段典型程序的汇编级代码更加清楚的看到了分支预测对程序性能的影响,当数据对分支预测器预测不友好的时候,我们的程序性能下降巨大。那么,怎么才能避免分支预测频繁出错对我们程序运行的不利影响呢? 用条件传送替代条件控制转移分支预测对有规律的分支跳转可以实现非常高的预测正确率,比如在循环判断中,在循环终止之前,分支预测都可以基本保证完全的预测正确,预测错误只会出现在最后跳出循
Continue reading

C++性能榨汁机之分支预测器(3)

前言前面两篇文章,我们大体介绍了分支预测器的基本概念及经典实现方法:1. 分支预测器的概念与作用 2. 分支预测器的经典实现方法 ,我们又参与CPU架构相关的工作,那么我们了解到的分支预测器这些知识用处在哪里呢?或者换句话说,这些知识对我们写程序有什么指导意义吗? 条件判断与循环这些程序基本组成部分是我们写程序必须用到的结构,而条件判断与循环终止判断反映在机器指令上就是条件分支跳转与否,决定着C
Continue reading

C++性能榨汁机之分支预测器(2)

前言在上篇文章中,我们介绍了分支预测器在提高CPU流水线效率上的重要作用,上篇文章最后还提到,分支预测器的预测准确率对CPU执行命令效率有巨大影响,当预测错误时必须将流水线冲刷,然后重新从正确的地址取指,分支预测错误将会产生很大的代价,而且这种代价随着流水线的深度的增加而快速增长。 过去几十年,国内外科研界及工业界提出了多种分支预测模型以提高分支预测的准确率,本篇文章,我们主要挑选部分典型的分支预
Continue reading

C++性能榨汁机之分支预测器(1)

什么是分支预测器?我们首先看一下维基百科中对分支预测器的定义: 在电脑架构中,分支预测器(英语:Branch predictor)是一种数字电路,在分支指令执行结束之前猜测哪一路分支将会被运行,以提高处理器的指令流水线的性能。使用分支预测器的目的,在于改善指令管线化的流程。现代使用指令管线化处理器的性能能够提高,分支预测器对于现今的指令流水线微处理器获得高性能是非常关键的技术。 由定义可以看出
Continue reading

pywin32与多线程:pywintypes.com_error:CoInitialize

问题被pywin32和多线程之间的关系折磨了一上午,终于大体弄懂了,将一些经验记录一下,以备不时之需。在成像声纳幅相校正程序( https://github.com/Root-lee/hex2bin )中,软件2.0版本,在原来版本的基础上,通过COM接口调用Matlab程序,将幅相校正的第一步(使用Matlab计算幅相校正系数)也包含在软件之中,为操作人员又省去一个操作步骤。当前版本软件只需选择
Continue reading

python中遇到的Windows系统中换行符的一个坑

问题描述在项目hex2bin( https://github.com/Root-lee/hex2bin ) 中,需要实现将一个txt文本中的十六进制码转换成相应的ascii码符号并写入一个.dat文件中,以用于声纳项目中的幅相校正操作。为了实现功能先在Linux虚拟机中写了一个小的python程序用来测试可行性,代码如下:123456input = open('raw.txt'
Continue reading

  • Page 1 of 1

Root lee

沉默是金


Programmer


HangZhou