对于我的研究,我需要CPU基准测试来在我的Ubuntu笔记本电脑上进行一些实验(Ubuntu 15.10,内存7.7 GiB,Intel Core i7-4500U CPU @ 1.80HGz x 4,64bit)。在一个理想的世界里,我希望有一个满足以下条件的基准:
尤其是第2点和第3点对我的研究来说非常关键。但是,到目前为止我找不到合适的基准。到目前为止我发现的基准测试包括:sysbench,CPU Fibonacci,CPU Blowfish,CPU Cryptofish,CPU N-Queens。但是,所有这些都需要几秒钟才能完成,我的笔记本电脑的使用率不断提高到100%。
问题:有谁知道我的合适基准?我也很高兴听到您的任何其他意见/问题。谢谢!
答案 0 :(得分:0)
要选择基准,您需要准确了解您要测量的内容。你的问题不包括那个问题,所以没有人会在没有疯狂猜测的情况下告诉你。
如果您正在尝试测量Turbo时钟速度如何有效地制作功率受限的CPU,就像您的笔记本电脑运行速度更快以满足突发性工作负载(例如,将Haswell与Skylake的新功能和改进的电源管理进行比较),您可以运行一些东西微不足道的,开启1秒,关闭2秒,并计算它管理的循环迭代次数。
占空比和周期长度应该是基准参数,因此您可以制作图表。例如在非常快速的开/关周期中,Skylake's faster-reacting Turbo将更快地上升并更快地下降到最小功率(在下一次突发中留下更多的净空)。
该演讲的演讲者(英特尔CPU上电源管理的首席架构师)表示,Javascript基准测试实际上足以让Skylake的电源管理能够提供可测量的加速,而不像大多数其他基准测试只需将CPU固定在100%全程。 如果您想使用众所周知的现成基准测试,那么可以查看Javascript基准测试。
如果自己滚动,请在循环中放置一个循环传递的依赖关系链,最好是在微架构的延迟方面没有太多变化。一长串整数加法可行,Fibonacci是阻止编译器优化它的好方法。选择一个适合当前CPU速度的固定迭代计数,或者每10M迭代检查一次。
或者设置一个会在一段时间后触发的计时器,并让它设置一个你在循环中检查的标志。 (例如来自信号处理程序)。具体来说,alarm(2)
可能是一个不错的选择。记录您在这项工作中所做的迭代次数。