【发布时间】:2016-08-20 15:10:02
【问题描述】:
我的系统配置为 intel(R) core(TM) i3-5020U CPU @ 2.2 GHz,4GB RAM。但为了比较我的 MATLAB 程序在执行时间方面的性能,我需要在配置 Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz、16 GB RAM 的机器上执行它。有没有办法进行这种模拟?
【问题讨论】:
标签: matlab processor execution-time
我的系统配置为 intel(R) core(TM) i3-5020U CPU @ 2.2 GHz,4GB RAM。但为了比较我的 MATLAB 程序在执行时间方面的性能,我需要在配置 Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz、16 GB RAM 的机器上执行它。有没有办法进行这种模拟?
【问题讨论】:
标签: matlab processor execution-time
TL:DR:否。 Broadwell 和 IvyBridge 之间的性能差异取决于许多复杂的细节。 (参见Agner Fog's microarch pdf for the low-level microarchitectural details,以及x86 标签wiki 中的其他内容)
即使在不同的微架构之间,性能也可能会随时钟速度或内存速度在 10% 以内扩展,但可能不会。
使用您自己的系统,您可能会通过强制代码保持在最低频率以进行测试运行,从而弄清楚您的代码如何随 CPU 频率扩展。如果它远低于完美缩放,那么内存速度是一个重要因素。 (你的 CPU 越慢,等待内存的周期就越少。)
如果您不了解确切您的代码瓶颈所在的很多更多详细信息,则无法从 BDW 2.2GHz 性能推断 IvB i5 3.4GHz 性能。它可能会在两个 CPU 上的同一简单事情上出现瓶颈,在这种情况下,您可以推断。例如如果事实证明它是 FP 乘法延迟的瓶颈,那么 IvB 上的运行时间将是 Broadwell 上的运行时间的 5/3(乘以时钟频率比),因为 BDW 有 3 个周期 FP 乘法和加法,但 SnB/IvB /Haswell 有 5 个循环乘法。 (如果我没记错的话,FMA 在 BDW 上是 5 个周期。IvB 不支持 FMA,所以如果 Matlab 在 BDW 上利用这一点,它甚至不会运行相同的机器代码)。
更可能的是,它并不是那么简单,缓存/内存性能也涉及其中。 Haswell/Broadwell 没有 L1 缓存组冲突,但 SnB/IvB 有。
根据您在 i5 CPU 上运行工作负载的方式,它可能会或可能不会加速到高于其额定 3.4GHz 的频率,从而进一步混淆任何猜测性能的尝试。
【讨论】:
很难用不同的计算机来衡量实际效率。这就是为什么您通常使用 Big-O 的理论效率,查看 wiki 页面中的 algorithm efficiency 和 Big-O 表示法。
如果您可以访问这两个代码(您的代码和其他人的代码),您可以使用建议的methods for measuring performance 在同一台计算机上测试它们通过mathworks,主要是实时时间和cpu时间的时间函数。
最后,您可以看到here 一些可能值得考虑的关于基准测试的挑战。
【讨论】: