有两个问题,希望专家予以回答:
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执行效率低的问题提出后还没有得到解决,专家可否帮助指导问题出在哪方面。
相关的问题描述在本帖中已有说明
谢谢专家!