大家好,又见面了,我是你们的朋友全栈君。
忙完项目的事情,对DSP的学习又近了一步。 在此介绍一下C6000代码优化的问题: 1.手动汇编优化 软件流水 1.1.更短的执行时间 1.2.更小的代码空间 两部分需要权衡 线性汇编比汇编更加简单 编译器把高级语言编译成汇编,汇编器是吧汇编编译成.obj的二进制代码,连接器把所有文件连接到一起生成可执行文件
1.31.先指令 后-O(n)选项,还不行就线性汇编,很少到手动汇编
2. 项目经验 首先得评估 代码运行时间,这个在DSP DEBUG -TOOL -clock,利用该工具可以很好的评估到代码的运行时间,双击
即可重新计数,非常方便
其次考虑DSP的内联指令,在DSP的运算中,复数的加减乘除采用内联指令来做能够大大减少运行时间(感兴趣的我后需上传相关资料),其次就是循环拆分(这里有个C语言优化代码的资料(感兴趣的我后需上传相关资料)),由于本项目采用的是多核处理,这里并没有采用openMP多核架构,建议多核开发多采用openMP多核架构,这里采用标志位开发多核DSP,人工需要对算法进行拆分到多个核心进行运算,最后常见就是开工程优化,优化分多个等级,o(2)和o(3)是最为常见的,在两者没有多大区别下,采用等级较低的优化级别,o(3)优化等级高,调试过程中出现问题难以解决。
项目中能够实现DSP代码从1500us的运行时间优化到500us。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/150759.html原文链接:https://javaforall.cn