我如何估计DSP算法在特定架构上的指令数/性能



我被要求为使用160 MHz ARM处理器的音频接口硬件提供混响算法。这是一个用C编写的相当轻的混响效果。然而,当涉及到低级别架构、性能测试和测量时,我的知识有点缺乏。

我需要至少提供一些关于它将如何在设备的CPU上执行的估计,因为他们希望将其保持在3-5%以内。到目前为止,我已经遵循了这些步骤,所以请让我知道我是否至少走在了正确的轨道上。

我分解了包含Xcode中混响的所有处理的.c文件,并统计了在处理音频的回调函数中调用的汇编指令的数量。每个块256个样本,我正在查看大约400000个组装说明。

有什么方法可以粗略估计这种算法在160 MHz ARM处理器上的表现吗?我用于I/O的音频库有一个CPU负载的测量值,我在Mac Pro上的回调例程得到了2-3%。

我这样做对吗?有什么建议可以对此进行评估吗
谢谢

您需要更多关于ARM ISA的处理器特定实现的信息,而不仅仅是MHz。影响性能的因素包括多周期指令的使用、超标量调度/引退功能、管道互锁、缓存大小和影响命中率的策略、内存延迟等。此外,您使用的编译器在多大程度上优化了您选择的ARM实现。

桌面PC和嵌入式RISC CPU之间的机器代码执行差异很容易超过10倍的CPI(每条指令的周期),而且实际的机器代码也非常不同。

对代码进行基准测试通常更容易。

相关内容

  • 没有找到相关文章

最新更新