This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C6678优化函数的相关问题



各位专家好:

         需要对一个运算过程进行优化,由于之前没接触过跟优化有关的问题,只是在使用daplib的时候稍微接触过,有一些基础的问题想问大家:

一,我使用了dsplib中的fft函数,但是我发现如果将fft的源函数直接放入工程中用-o3编译运行速度回变得慢不少,而且我发现dsplib工程自带的cmd文件的如下语           句

        会警告找不到section:

         .kernel:{

         dsplib*<*.o*>(.text:optimized){SIZE(_kernel_size)}

         }

             我发现这对应一种优化方法确定的储存地址,这是不是意味着,只是用优化的语言写计算过程还不够,还需要对编译方法,储存方式进行编写?如果是的话         能否麻烦告诉我需要去学习哪些文件。

二,我发现每个dsplib的函数都有3中方法作对比,结合能找到的资料我发现除了原本c语言方法以外,有两种优化方法种分别是是用optimizing loops和.sa汇编语           言。我发现optimizing loops要比汇编慢,那它在实际应用中有价值吗?

                                                                                                                                                                                                                                                           谢谢!

  • 一、我做DSP优化做了5年了,CMD文件主要是内存分配,被处理的数据分配到越接近CPU速度就越快(一般用L2,分配到DDR3处理速度明显慢很多)

    二、每个dsplib的函数都有3种方法作对比,那它在实际应用中有价值吗?当然有,TI公司的文件不单单只照顾高手,还要关照着小白,.C文件完全没有优化,只是给用户看看基本的原理,所以如果你调用.C,没有任何的优化效果(当然TI的.C也会比你自己写的优一些),而.sa是最优化的写法,不需要看得懂,直接调用就是最优,结果和.C的结果完全一样,无需怀疑!

  • 十分感谢您的讲解!还有一点不太明白想请教一下。我将优化的文件加进工程中编译,发现运算速度变得很慢,.cmd文件中的代码警告找不到section:

             .kernel:{

             dsplib*<*.o*>(.text:optimized){SIZE(_kernel_size)}

             }

    能否请您说一下这句话是什么意思,还有比如

    .args    load > L2SRAM align = 0x4 ,fill = 0{_atgsize = 0x200}

    .sdc.meta load >>L2SRAM ,type = COPY

    这样的语句是优化必须的么,谢谢!