我被要求为使用160 MHz ARM处理器的音频接口硬件提供混响算法。这是用C编写的一个相当轻量级的混响效果,但是,在低层次架构以及性能测试和度量方面,我的知识有点不足。
我需要至少提供一些估计,它将如何在设备的CPU上运行,因为他们希望将它保持在3-5%。到目前为止,我一直遵循这些步骤,所以请告诉我,如果我至少在正确的轨道上。
我分解了包含Xcode中混响的所有处理的.c文件,并计算了在处理音频的回调函数中调用的汇编指令的数量。每块256个样本,我看了大约400,000个装配说明。
有没有办法粗略估计这个算法在160个MHz ARM处理器上的性能?我为I/O使用的音频库有一个用于CPU负载的度量,我在我的Mac上获得了2%- 3%的回调例程。
我这样做对吗?有什么建议可以对此作出估计吗?
谢谢。
发布于 2013-07-26 05:19:34
您需要更多关于处理器的信息,尤其是ARM ISA的实现,而不仅仅是MHz。影响性能的因素包括使用多周期指令、超级定义器调度/退役功能、流水线联锁、缓存大小和影响命中率的策略、内存延迟等。此外,您使用的编译器对所选ARM实现的优化程度也是如此。
在桌面PC和嵌入式RISC CPU之间,机器代码执行的差异很容易超过10倍CPI (每条指令周期),而实际的机器代码则非常不同。
通常比较容易对代码进行基准测试。
https://stackoverflow.com/questions/17872407
复制相似问题