TI中文支持网
TI专业的中文技术问题搜集分享网站

DSPLIB中的FFT计算效率问题

有两个问题,希望专家予以回答:

1.在使用dsplib_c66x_3_1_0_0中的测试程序DSPF_sp_fftSPxSP_d.c测试fft效率时发现了很奇怪的现象。生成out文件下载到评估板上跑的时候读不出cpu执行周期,发现里面调用了clock函数,单不知道为什么读出的值一直是0.

2.由于读不出值,所以我改动测试源代码,把clock函数换成CSL里的一个读寄存器值的函数。又发现了很奇怪的现象,直接使用源代码和使用库函数测试出来的执行时间相差几十倍之多。

希望专家对以上两个现象予以回答,谢谢。

Richard Zhang:

回复 Allen35065:

请问您说的O3优化 是什么意思 在哪里加?

Andy Yin1:

回复 Richard Zhang:

您好,

右击工程在属性中可以找到优化选项,选择-o3可以对整个工程生效;也可以只针对一个文件右击属性修改其编译属性。

grady cheung:

回复 Allen35065:

不好意思,这两天比较忙,回复晚了。

clock问题解决了,如您所说。

那个FFT计算时间相差过大问题是编译模式的问题,使用Debug模式所花时间为Release模式的几十倍。另外使用simulator和emulator所花时间也差了两倍。

谢谢专家答复。

grady cheung:

回复 grady cheung:

使用-o3优化效果不是很明显,编译器默认使用-o2优化。

Andy Yin1:

回复 grady cheung:

您好,

simulator与Emulator下时间差异是正常的,但是Debug与Release模式下差异那么大,完全取决于代码,release编译时会将很多调试信息去掉,但是时间差异那么大还没遇到过。能否给出以下你的分析呢,谢谢

Ryan KU:

回复 Allen35065:

Allen Yin 您好:

看了这个帖子后有两个问题想向您请教

1.CCS中Enable clock具体怎么操作呢?可否给出相应的代码或截图

2.我基于论坛上一位网友帖中提供的工程将cache加入到CCS中的例程中,但是按他的方法修改运行工程后还是显示未加cache的结果,可否指导下如何对CCS中的FFT、矢量相乘等工程加入cache语句。相关帖子链接如下

www.deyisupport.com/…/6190.aspx

我修改后的工程见附件,初学DSP还请多多帮助。

谢谢专家!!

Richard Zhang:

回复 Ryan KU:

1.Enable clock  就是给STCL寄存器赋个初值,我的工程里开始就有  STCL=0; 就是初始化

2.我的工程里面

    CACHE_setL1PSize (CACHE_L1_MAXIM3);

   CACHE_setL1DSize (CACHE_L1_MAXIM3);

   CACHE_setL2Size (CACHE_256KCACHE);

   就是设置L1,L2 MEMORY的一部分内存为CACHE,你可以更改形参的值,可以看出来明显的周期数差异

Ryan KU:

回复 Richard Zhang:

Richard Zhang 您好:

1. 是STCL寄存器,不是TSCL寄存器吧

2. 我就是照着你的工程改的,但是加入相关cache语句后结果并没有改变还是CCS例程运行的结果,时钟周期数很大(见我传的例程),不知您是怎么修改工程文件的,工程修改过程中除了要加

CACHE_setL1PSize (CACHE_L1_MAXIM3);

CACHE_setL1DSize (CACHE_L1_MAXIM3);

CACHE_setL2Size (CACHE_256KCACHE);

相关语句外还要做哪些配置工作呢?

谢谢!

Ryan KU:

回复 Andy Yin1:

Andy Yin 您好:

关于例程中FFT以及vecmul执行效率低的问题提出后还没有得到解决,专家可否帮助指导问题出在哪方面。

相关的问题描述在本帖中已有说明

谢谢专家!

赞(0)
未经允许不得转载:TI中文支持网 » DSPLIB中的FFT计算效率问题
分享到: 更多 (0)