除了运行无限循环之外,是否有任何技巧(比如可能是缓存未命中?)使CPU尽可能热?
这可能是特定于架构的。
答案 0 :(得分:6)
我通过针对Windows和Linux的[免费]可靠性/老化测试,制作了几份关于压力测试PC的报告。您可以通过Google搜索“Roy Longbottom老化”找到报告。
您需要的是各种高速运行的程序来测试CPU,缓存和RAM。它们应该以合理的短间隔记录和显示速度,并记录温度,或者最好还记录。在运行它们时,您可以找到哪些是最有效的。您可以通过Windows的BAT文件或Linux的shell脚本同时运行多个副本,而不是依赖于更复杂的多线程程序。您还需要检查正确计算结果的程序。对于系统测试,其中一个程序可以使用图形。在这里,对于nVidia,CUDA程序可用于产生高温。
以下显示了从散热器吹出灰尘之前和之后的CPU核心和外壳温度。
以下是笔记本电脑上的结果,使用L1缓存中的数据进行测试。这些显示出根据温度的速度变化。其他CPU可能受不同数据/指令/使用哪个缓存的影响更大。 过热Core 2 Duo笔记本电脑1.83 GHz
Words 5K 5K
Ops/wd 2 32
Core MFLOPS Core MFLOPS
Minute °C x2 °C x2
0.0 65 65
0.5 96 4716 91 10168
1.0 98 3362 94 4756
1.5 91 2076 87 4443
2.0 87 2054 86 4452
2.5 85 2054 85 4235
3.0 84 2036 84 4237
3.5 82 3098 83 4376
4.0 89 4773 83 4420
您可能也对我的Raspberry Pi测试(烹饪The Pi)感兴趣,其中RPI通过60W灯过热,在超频时崩溃并显示随温度变化的速度变化。在这里,CPU集成显卡是最苛刻的硬件。
http://www.roylongbottom.org.uk/Raspberry%20Pi%20Stress%20Tests.htm#anchor7
答案 1 :(得分:4)
由于现代CPU通常具有功耗意识,因此它们具有许多内置机制来关闭整个部件(多核系统上的核心,甚至内部单元)。 为了给CPU带来压力,您需要确保激活尽可能多的单元。
如果你有一些或者浮点数,那么通过重载载体执行单元可以很容易地实现这一点。在内存方面,尝试不断消耗尽可能多的带宽,以便对内存单元,高速缓存和内存总线施加压力。当然,在所有可用内核上运行代码(如果可以使用超线程,那么使用它也是个好主意)
此类基准测试通常称为电源病毒。网上有几个例子,你可以查看cpuburn,例如(它有一些副味道)
答案 2 :(得分:1)
有些应用程序和软件运行所谓的“压力测试”。 它将运行测试以强调CPU和任何其他硬件,以便查看它是否给出任何错误等。它们用于稳定性目的,正如您可以想象的那样,以确保CPU /设备/系统可以正常运行重处理。
只需查看压力测试软件,您就会找到一堆压力测试软件。