7.3. CPU性能测试

Overview

本示例展示了CPU性能指标的测试

7.3.1. DEMO

使用工程:示例代码见 apps/common/example/system/BenchMark/main.c ,测试时需要在 apps/demo/demo_DevKitBoard/include/demo_config.h ,开启宏 USE_CPU_PERFORMANCE_TEST_DEMO

7.3.2. 示例说明

  • Dhrystone的重要性在于其能作为处理器整数计算性能的指标;

  • DMIPS: Dhrystone MIPS,并非字面上每秒百万条指令的意思。它是一个测量CPU运行一个叫Dhrystone(整数运算)的测试程序时表现出来的相对性能高低的一个单位(很多场合人们也习惯用MIPS作为这个性能指标的单位);

  • Dhrystone: 是于1984年由Reinhold P. Weicker设计的一套综合的基准程序,该程序用来测试CPU(整数)计算性能。其名“Dhrystone”是与另一算法“Whetsone”区分而设计的名字。与Whetsone不同,Dhrystone并不包括浮点运算,其输出结果为每秒钟运行Dhrystone的次数,即每秒钟迭代主循环的次数;

  • dhrystone测量处理器运算能力;

  • Linpack测试系统浮点性能;

  • pi_css5_src 测试CPU的浮点运算能力,测试CPU计算特定位数圆周率所需的时间;

  • whetstone测试浮点运算效率和速度;

7.3.3. 示例流程

  • c_main() 入口
    1. 创建 BenchMark_test_task 任务

  • BenchMark_test_task 函数流程
    1. 测试 dhrystone

    2. 测试 Linpack

    3. 测试 whetstone

    4. 测试 pi_css5_src

    跑SFC, CPU时钟320M, SDRAM时钟192M,SFC时钟80M, flash 2线模式的测试结果:
    跑SFC, CPU时钟396M, SDRAM时钟240M, SFC时钟99M, flash 2线模式的测试结果:
    跑SDRAM, CPU时钟396M, SDRAM时钟240M, SFC时钟99M, flash 2线模式的测试结果:

7.3.4. 常见问题

  • 通常影响CPU性能测试结果的因素有:

    • 代码运行在内部ram,sdram,flash会依次降低cpu性能;

    • flash时钟,双/四线,sdram时钟,系统时钟影响cpu性能;

    • 由于硬件只支持单精度浮点指令, 因此双精度浮点影响cpu性能