OMAP3530 实现了一个 ARM 处理器和一个 C64x+ DSP。我有一个测试循环,我希望在 DSP 上比在 ARM 上运行得更快,但事实并非如此。
环形:
#define DIM 4
#define LIM 1000
#define MASK 3
int i, j;
uint32 arr[DIM][DIM] = {0};
uint32 rand[DIM][DIM] = {1, 5, 2, 7,
5, 4, 3, 8,
1, 2, 9, 3,
6, 6, 8, 4};
for (i = 0; i < LIM; i++)
for (j = 0; j < LIM; j++)
arr[i & MASK][j & MASK] += rand[i & MASK][j & MASK];
基准:
手臂:5毫秒
数字信号处理器:25 毫秒
DSP 的重点是处理像这样的简单算术运算,所以我预计它会更快。我没有对 DSP 做太多配置,因为我对它非常缺乏经验。我相信缓存没有配置,所以我正在调查,但欢迎任何其他建议。
有人可以就可能的解决方案提出建议吗?
编辑- 将LIM
值更改为 5000 以增加迭代次数。新基准:
手臂:120毫秒
数字信号处理器:530 毫秒