【发布时间】:2017-12-11 22:35:53
【问题描述】:
对于与我们的 A-Level 高度相关的学校项目,我们希望对 Raspberry Pi 的 CPU 进行超频,并在超频之前和之后评估 CPU 的性能,并使用自己编写的基准测试。
这个基准应该尽可能简单,因为它只代表我们演示的一小部分。
我们认为使用 c++ 作为语言可能是个好主意,因为它使用的资源更少(?)。 对于基准测试本身,我们考虑使用某种算法,例如计算 Pi 或素数到特定点并查看需要多长时间。
我们如何使用多核/单核?
我们的想法有更好/更简单的替代方案吗?
提前致谢。
【问题讨论】:
-
是 Pi(数字),而不是 Pie(烤好的糕点)。
-
基准测试可以随心所欲。如果您只想要与时钟速度线性扩展的东西,
for(uint64_t i = 0; i< MAX_COUNT ; i++) {}是一个简单的微基准,仅表示相对意义上的任何东西,或者如果您查看编译器生成的 asm。 (你必须避免让它优化到一无所有。例如,使用gcc -O1或更低版本编译。godbolt.org/g/aejRPt) -
您可以运行单线程可执行文件的多个实例,例如在 bash
for i in {1..4};do ./benchmark & done中启动 4 个后台作业。 -
@PeterCordes 抱歉,已修复
-
顺便说一句,不随时钟时钟速度线性扩展的基准测试可能更有趣。例如部分取决于内存带宽/延迟。 CPU 越快,缓存未命中所需的 CPU 时钟就越多。 Eratosthenes 的素数筛可能很好,并且易于实施。或快速排序或合并排序。 (合并排序很容易并行化。)
标签: c++ cpu benchmarking multicore