比较信号处理算法所需的计算资源的正确方法是什么?
我说的是有错误界限的信号处理算法,资源和响应延迟折衷。
在通过算法实现实现了错误限制和响应延迟之后,我试图比较它的效率。
目前,我正在对不同的算法进行基准测试,向它们提供相同的信号,并使用perf获取任务--用于amd64的时钟/ mseg,但这并不是与体系结构无关的。
工业界使用MFLOPS/Hz来比较处理器,但是我如何包括特定实现的内存(可能是线程)开销?
正确的学术测量标准是什么?
算法X是Y算法的N倍,可以实现具有Q界的P。
编辑:用于上下文的(我正在处理的信号处理算法)是迭代算法,其步长函数可以被O(1)绑定。所以BigO在这里似乎没有用。
发布于 2016-04-28 19:52:35
准确的性能度量并不与体系结构或实现无关。不同的DSP计算平台不仅具有不同的绝对性能数字(MHz/GHz),而且具有不同的MAC或触发器延迟与调度比、内存延迟与带宽比的比值,以及许多其他性能危害(缓存替换与流策略等)。和效率(SMP或矢量调度等)
在古代(VAX,FP系统,56000或更早),原始乘数或MAC计数占所有其他性能限制的主导地位,因此这成为事实上的成本度量。这已不再是现代流水线短矢量FPU多处理器的主导因素,现在甚至在玩具中也很常见。
一种可能是猜测您的算法最可能针对的平台,并在其上进行测量(更可能类似于基于ARM的移动电话或Raspberry系统,而不是AMD桌面IMHO,甚至可能是OpenCL GPU)。
另一种可能是在学术CPU模拟器上运行(RISC V?)您可以打开详细的性能计数器(每种类型的分配操作、内存流量、注册重用危害等等)。这将比任何AMD桌面要精确得多,操作系统任务切换、TLB/MMU错过,缓存初始化和通信量的变化都可能导致任何性能测量中的各种未知变化。
发布于 2016-04-28 17:46:29
对此有多种正确的答案。你至少应该考虑这两点:
原则上,平台只应是一个不变的因素。但在实践中,不变的因素可能是相关的。
https://stackoverflow.com/questions/36921832
复制相似问题