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

TMS320C6748: DSPLIB点乘效率波动——关于加载数据

Part Number:TMS320C6748

点乘优化时使用了LDDW保证加载数据的效率,但存在如下现象:

1.若点乘的两路输入都32字节对齐,则点乘效率较最优时下降一半,此时,若两者同步后移8/16/24字节,工作效率均恢复正常。

2.若其中第一组数据的起始地址对齐方式往后偏移16字节,则两者同步后移8/16/24/32字节,都可以保证效率正常。


CPU指令集手册(sprufe8b)中,介绍LDDW指令时,未提及两个.D单元LDDW并行load数据时存在限制。考虑到1/2两种情况下,数据都始终保持8字节对齐,故不能用mem_bank冲突来解释。

我的疑问是,这一现象产生的原因是什么?

Nancy Wang:

我已将您的帖子转给相关专家,请等待回复。

,

jiuchao yin:

using namespace std;
#pragma DATA_ALIGN(32)
unsigned short index[4096+4];#pragma DATA_ALIGN(32)
unsigned short index2[1024];//#pragma DATA_SECTION(".far:optimized");
#pragma DATA_ALIGN(32)
float	x1[1024+16+4];//#pragma DATA_SECTION(".far:optimized");
#pragma DATA_ALIGN(32)
float	x2[1024+16+4];#pragma DATA_ALIGN(32)
float	x3[1024+16+4];void CPerformanceTester::test()
{for(int offset=0;offset<8;offset+=2){mTC.StartTimer(1);//启动1号计时器for(int i=0; i<1000000; i++){DSPF_sp_dotprod(x1+offset, x2, 1024);//DSPF_sp_dotprod_lib_n2a8(x1+offset, x2, 1024);}mTC.StopTimer(1);mTC.PrintResult(1);}
}

 这是测试代码和结果

赞(0)
未经允许不得转载:TI中文支持网 » TMS320C6748: DSPLIB点乘效率波动——关于加载数据
分享到: 更多 (0)