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

dsplib库函数运行效率

1、CCS5.1,库函数版本为dsplib_c66x_3_1_0_0,测试4096个32位浮点数的乘法(函数名好像是DSPF_sp_vecmul(const float *x1,const float *x2,int nx,const float *y))

帮助里有个测试报告显示该库函数运行效率为 3/4*Nx+22 个时钟周期,这样计算的话,运行时间应该是3/4*4096+22=3094ns=3.094us(1G主频),而我实测时间远大于这个值,在10us以上,输入输出数据放在L2和L3影响不是很大,L2 Cache开了128KB

请问是我分析的理论时间有问题还是我测试的时间有问题??

2、编写库函数时,输入参数const 和 restrict 关键字都是不相关的意思吧,请问有什么异同??

 

望给予答复,谢谢!

Andy Yin1:

1 你是在板卡上测试的么?使用读取寄存器TSC来计时么?在测试时最好循环测试多次查看相应的耗时,第一次测试时由于cold cache,效率会低,后面都是warm cache效率会高,所以可以循环测试多次求平均比较看看;

2 const表示的是只读,restrict是两个指针指向的地址不会有重叠,编译器可以做自由的优化,具体可以百度一下。

ZQ:

回复 Andy Yin1:

1、是在开发板上测试的,通过读取寄存器来计时的,也是多次查看的耗时。那你的意思是应该能跑到标称的时间而是我程序的问题么?

     另外,我尝试使用dsplib库中自带的测试例程,但是clock()(time.h中的函数)读取的周期数都是0,请问是否要做其它设置,因为我看它的测试代码的CCS版本是4.x,而我是5.1

2、好的,多谢!

赞(0)
未经允许不得转载:TI中文支持网 » dsplib库函数运行效率
分享到: 更多 (0)