大家好,又见面了,我是你们的朋友全栈君。
忙完项目的事情,对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。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/150759.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...