【问题标题】:MATLAB program simulation with the given processor requirements具有给定处理器要求的 MATLAB 程序仿真
【发布时间】: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


    【解决方案1】:

    TL:DR:否。 Broadwell 和 IvyBridge 之间的性能差异取决于许多复杂的细节。 (参见Agner Fog's microarch pdf for the low-level microarchitectural details,以及 标签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 的频率,从而进一步混淆任何猜测性能的尝试。

    【讨论】:

    • 好像挺复杂的。无论如何,感谢@Peter Cordes 的详细描述。美好的一天。
    • @sai:是的,完全正确:理论上可行,如果你喜欢微架构细节和性能分析,这很有趣。如果你不这样做,那么答案就是简单的“不”。
    • @sai:我添加了一些建议以获得非常粗略的估计。
    【解决方案2】:

    很难用不同的计算机来衡量实际效率。这就是为什么您通常使用 Big-O 的理论效率,查看 wiki 页面中的 algorithm efficiencyBig-O 表示法。

    如果您可以访问这两个代码(您的代码和其他人的代码),您可以使用建议的methods for measuring performance 在同一台计算机上测试它们通过mathworks,主要是实时时间和cpu时间的时间函数。

    最后,您可以看到here 一些可能值得考虑的关于基准测试的挑战。

    【讨论】:

    • 除非差异很大,否则您需要在同一硬件上运行这两个代码才能使基准测试有意义。
    • @silgon 是的,甚至在发布这个问题之前,我就已经通过了这些方法来衡量性能。我只有其他人代码的结果,但没有代码本身。这就是这里的问题。否则,我会在单个系统中检查两个代码的性能,以了解性能。谢谢大佬!
    • @sai,不客气。这是一个有趣的问题,主要是因为在一些科学文章中,您可以找到算法在特定计算机上运行的时间,因此很难与现有技术进行比较。祝你好运! =)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-15
    • 2012-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多