如何创建一个简单的 cpu 基准?
How to create a simple cpu benchmark?
对于一个与我们的 A-Levels 高度相关的学校项目,我们想要超频 Raspberry Pi 的 CPU 并评估 CPU 的性能,先并 post 使用自己编写的基准对其进行超频。
这个基准应该尽可能简单,因为它只代表我们演示文稿的一小部分。
我们认为使用 c++ 作为语言可能是个好主意,因为它使用的资源更少(?)。
对于基准测试本身,我们考虑过使用某种算法来计算 Pi 或素数到特定点并查看需要多长时间。
如何使用多个 cores/a 单核?
是否有 better/simpler 替代我们的想法?
提前致谢。
基准测试可以随心所欲。如果您只想要随时钟速度线性缩放的东西,以下是一个简单的微基准测试:
for(uint64_t i = 0; i< MAX_COUNT ; i++) {}
它只是相对意义上的意思,或者如果您查看编译器生成的 asm。
你必须避免让它优化到什么都没有,例如使用 gcc -O1
或更低编译。
您可以 运行 单线程可执行文件的多个实例,例如在 bash:
for i in {1..4};do ./benchmark & done
启动 4 个后台作业。
– Peter Cordes 的回答。
对于一个与我们的 A-Levels 高度相关的学校项目,我们想要超频 Raspberry Pi 的 CPU 并评估 CPU 的性能,先并 post 使用自己编写的基准对其进行超频。
这个基准应该尽可能简单,因为它只代表我们演示文稿的一小部分。
我们认为使用 c++ 作为语言可能是个好主意,因为它使用的资源更少(?)。 对于基准测试本身,我们考虑过使用某种算法来计算 Pi 或素数到特定点并查看需要多长时间。
如何使用多个 cores/a 单核?
是否有 better/simpler 替代我们的想法?
提前致谢。
基准测试可以随心所欲。如果您只想要随时钟速度线性缩放的东西,以下是一个简单的微基准测试:
for(uint64_t i = 0; i< MAX_COUNT ; i++) {}
它只是相对意义上的意思,或者如果您查看编译器生成的 asm。
你必须避免让它优化到什么都没有,例如使用 gcc -O1
或更低编译。
您可以 运行 单线程可执行文件的多个实例,例如在 bash:
for i in {1..4};do ./benchmark & done
启动 4 个后台作业。
– Peter Cordes 的回答。