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.

6678定点浮点FFT问题



各位专家好:

最近基于CCS中的例程(DSPF_sp+FFTSPXSP等)做了一些时钟测试,但是测试结果让我很困惑。

比如定点FFT,N=1K,12418cycle

然而浮点FFT,N=1K,571209cycle,几组数据下来定点的时钟周期均是浮点的50倍,觉得这个差异不正常,浮点的运行时间偏长。同样的在矢量相乘的例程(DSPF_vecmul)中复乘的时间开销也很大,N=1K,37570cycle。

请问各位专家问题出在哪儿呢?还有TI有没有关于6678这些运算的基本参考值呢,测完后心里没谱儿。

谢谢各位专家!!!

  • MCSDK包含了DSPLIB,在这个lib有定浮点的FFT计算函数且都经过优化,你可以参考这些函数。

  • Allen Yin 您好:

    我用DSPF_sp_fftSPXSP例程测出的时钟周期非常大,N = 4K时将近600微秒,而且是例程中汇编情况下的运行结果,相较于AD的201慢了很多,但是6678的浮点运算性能应该更强啊?TI有关于FFT、矢量相乘、矩阵相乘等基本运算的参考值吗? 这些对于项目验证非常关键,希望能够提供建议以作参考!

    谢谢专家!!

  • 专家们好:

    我测出的时间之所以这么长会是Cache方面的原因吗?如果是请教专家该如何去解决呢?

    (还是希望哪位专家能够提供关于浮点FFT以及矢量相乘运算时钟周期的参考值)

    谢谢各位专家!

  • 你可以在C:\Program Files\Texas Instruments\dsplib_c66x_3_1_0_0\docs目录下找到test_report, 测试下你的代码里128和256点FFT与测试报告里进行比较。786 (N=128) 1453 (N=256)。

  • Allen Yin 您好:

    这个报告我看过 但是我直接运行例程得到的结果跟报告上差别太大,所以才发帖询问自身有可能在哪方面出现了错误。

    不知报告中的结果是如何测得(vecmul的结果也跟报告中差太多)

    Cycles:  12618 (N=128) 26452 (N=256) 例程运行后使这个结果,差了将近20倍!

    谢谢专家!

  • Allen Yin 您好:

    问题已经解决,确实是Cache的问题,自己对于cache的相关内容还需学习。

    谢谢!

  • 楼主您好!能否提供下你解决的方案!我们这边已经把L1P和L1D全设为Cache了,L2全作为SRAM,但是时间测试的周期和test_result差别很大,而且用Cycle Approximate Smilutator和Functional Smilutator仿真的结果差距很大,开发板跑的结果和Cycle Smilu更为接近,但是所需周期却多的多!希望楼主能帮忙指导下!!万分感谢~~~~

  • 你好:

     不好意思,回复晚了

     你在主函数中加入下面语句试试

     CACHE_setL1PSize (CACHE_L1_MAXIM3);

       CACHE_setL1DSize (CACHE_L1_MAXIM3);

       CACHE_setL2Size (CACHE_256KCACHE);

  • 谢谢~~~我现在是将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结果接近吗??再次谢谢~

  • 我测出来的相差不到两倍 差别还不算很大