各位专家好:
最近基于CCS中的例程(DSPF_sp+FFTSPXSP等)做了一些时钟测试,但是测试结果让我很困惑。
比如定点FFT,N=1K,12418cycle
然而浮点FFT,N=1K,571209cycle,几组数据下来定点的时钟周期均是浮点的50倍,觉得这个差异不正常,浮点的运行时间偏长。同样的在矢量相乘的例程(DSPF_vecmul)中复乘的时间开销也很大,N=1K,37570cycle。
请问各位专家问题出在哪儿呢?还有TI有没有关于6678这些运算的基本参考值呢,测完后心里没谱儿。
谢谢各位专家!!!
Allen35065:
MCSDK包含了DSPLIB,在这个lib有定浮点的FFT计算函数且都经过优化,你可以参考这些函数。
Ryan KU:
回复 Allen35065:
Allen Yin 您好:
我用DSPF_sp_fftSPXSP例程测出的时钟周期非常大,N = 4K时将近600微秒,而且是例程中汇编情况下的运行结果,相较于AD的201慢了很多,但是6678的浮点运算性能应该更强啊?TI有关于FFT、矢量相乘、矩阵相乘等基本运算的参考值吗? 这些对于项目验证非常关键,希望能够提供建议以作参考!
谢谢专家!!
Ryan KU:
回复 Allen35065:
专家们好:
我测出的时间之所以这么长会是Cache方面的原因吗?如果是请教专家该如何去解决呢?
(还是希望哪位专家能够提供关于浮点FFT以及矢量相乘运算时钟周期的参考值)
谢谢各位专家!
Ryan KU:
回复 Allen35065:
Allen Yin 您好:
这个报告我看过 但是我直接运行例程得到的结果跟报告上差别太大,所以才发帖询问自身有可能在哪方面出现了错误。
不知报告中的结果是如何测得(vecmul的结果也跟报告中差太多)
Cycles: 12618 (N=128) 26452 (N=256) 例程运行后使这个结果,差了将近20倍!
谢谢专家!
hobo Q:
回复 Ryan KU:
楼主您好!能否提供下你解决的方案!我们这边已经把L1P和L1D全设为Cache了,L2全作为SRAM,但是时间测试的周期和test_result差别很大,而且用Cycle Approximate Smilutator和Functional Smilutator仿真的结果差距很大,开发板跑的结果和Cycle Smilu更为接近,但是所需周期却多的多!希望楼主能帮忙指导下!!万分感谢~~~~
Ryan KU:
回复 hobo Q:
你好:
不好意思,回复晚了
你在主函数中加入下面语句试试
CACHE_setL1PSize (CACHE_L1_MAXIM3);
CACHE_setL1DSize (CACHE_L1_MAXIM3);
CACHE_setL2Size (CACHE_256KCACHE);
hobo Q:
回复 Ryan KU:
谢谢~~~我现在是将L1D和L1P全设置为Cache,把L2全设为SRAM,我试试把L2设置为256K Cache试试!不过我看了下那个Texas Instruments\dsplib_c66x_3_1_0_0\docs路径下的test_report是在functional simulator的仿真情况下得出来的,如果改用Cycle Approximate Simulator或者实际上板子跑还是有蛮大的差别的好像!你加了这些设置Cache的语句后,上板子跑的结果能和test_report结果接近吗??再次谢谢~
Ryan KU:
回复 hobo Q:
我测出来的相差不到两倍 差别还不算很大