• dhrystone和coremark测试比较


    关于dhrystone测试,请参考博客

    Dhrystone DMIPS跑分原理以及CPU&NPU等效算力分析_papaofdoudou的博客-CSDN博客_dhrystone测试结果怎么看

    比较

    coremark环境搭建

    1. caozilong@caozilong-Vostro-3268:~/Workspace/coremark$ git clone https://gitcode.net/mirrors/eembc/coremark.git
    2. 正克隆到 'coremark'...
    3. remote: Enumerating objects: 374, done.
    4. remote: Counting objects: 100% (374/374), done.
    5. remote: Compressing objects: 100% (190/190), done.
    6. remote: Total 374 (delta 218), reused 295 (delta 175), pack-reused 0
    7. 接收对象中: 100% (374/374), 497.54 KiB | 517.00 KiB/s, 完成.
    8. 处理 delta 中: 100% (218/218), 完成.
    9. caozilong@caozilong-Vostro-3268:~/Workspace/coremark$ cd coremark/
    10. caozilong@caozilong-Vostro-3268:~/Workspace/coremark/coremark$ make
    11. make XCFLAGS=" -DPERFORMANCE_RUN=1" load run1.log
    12. make[1]: 进入目录“/home/caozilong/Workspace/coremark/coremark”
    13. make port_prebuild
    14. make[2]: 进入目录“/home/caozilong/Workspace/coremark/coremark”
    15. make[2]: 对“port_prebuild”无需做任何事。
    16. make[2]: 离开目录“/home/caozilong/Workspace/coremark/coremark”
    17. make link
    18. make[2]: 进入目录“/home/caozilong/Workspace/coremark/coremark”
    19. cc -O2 -Ilinux -Iposix -I. -DFLAGS_STR=\""-O2 -DPERFORMANCE_RUN=1 -lrt"\" -DITERATIONS=0 -DPERFORMANCE_RUN=1 core_list_join.c core_main.c core_matrix.c core_state.c core_util.c posix/core_portme.c -o ./coremark.exe -lrt
    20. Link performed along with compile
    21. make[2]: 离开目录“/home/caozilong/Workspace/coremark/coremark”
    22. make port_postbuild
    23. make[2]: 进入目录“/home/caozilong/Workspace/coremark/coremark”
    24. make[2]: 对“port_postbuild”无需做任何事。
    25. make[2]: 离开目录“/home/caozilong/Workspace/coremark/coremark”
    26. make port_preload
    27. make[2]: 进入目录“/home/caozilong/Workspace/coremark/coremark”
    28. make[2]: 对“port_preload”无需做任何事。
    29. make[2]: 离开目录“/home/caozilong/Workspace/coremark/coremark”
    30. echo Loading done ./coremark.exe
    31. Loading done ./coremark.exe
    32. make port_postload
    33. make[2]: 进入目录“/home/caozilong/Workspace/coremark/coremark”
    34. make[2]: 对“port_postload”无需做任何事。
    35. make[2]: 离开目录“/home/caozilong/Workspace/coremark/coremark”
    36. make port_prerun
    37. make[2]: 进入目录“/home/caozilong/Workspace/coremark/coremark”
    38. make[2]: 对“port_prerun”无需做任何事。
    39. make[2]: 离开目录“/home/caozilong/Workspace/coremark/coremark”
    40. ./coremark.exe 0x0 0x0 0x66 0 7 1 2000 > ./run1.log
    41. make port_postrun
    42. make[2]: 进入目录“/home/caozilong/Workspace/coremark/coremark”
    43. make[2]: 对“port_postrun”无需做任何事。
    44. make[2]: 离开目录“/home/caozilong/Workspace/coremark/coremark”
    45. make[1]: 离开目录“/home/caozilong/Workspace/coremark/coremark”
    46. make XCFLAGS=" -DVALIDATION_RUN=1" load run2.log
    47. make[1]: 进入目录“/home/caozilong/Workspace/coremark/coremark”
    48. make port_preload
    49. make[2]: 进入目录“/home/caozilong/Workspace/coremark/coremark”
    50. make[2]: 对“port_preload”无需做任何事。
    51. make[2]: 离开目录“/home/caozilong/Workspace/coremark/coremark”
    52. echo Loading done ./coremark.exe
    53. Loading done ./coremark.exe
    54. make port_postload
    55. make[2]: 进入目录“/home/caozilong/Workspace/coremark/coremark”
    56. make[2]: 对“port_postload”无需做任何事。
    57. make[2]: 离开目录“/home/caozilong/Workspace/coremark/coremark”
    58. make port_prerun
    59. make[2]: 进入目录“/home/caozilong/Workspace/coremark/coremark”
    60. make[2]: 对“port_prerun”无需做任何事。
    61. make[2]: 离开目录“/home/caozilong/Workspace/coremark/coremark”
    62. ./coremark.exe 0x3415 0x3415 0x66 0 7 1 2000 > ./run2.log
    63. make port_postrun
    64. make[2]: 进入目录“/home/caozilong/Workspace/coremark/coremark”
    65. make[2]: 对“port_postrun”无需做任何事。
    66. make[2]: 离开目录“/home/caozilong/Workspace/coremark/coremark”
    67. make[1]: 离开目录“/home/caozilong/Workspace/coremark/coremark”
    68. Check run1.log and run2.log for results.
    69. See README.md for run and reporting rules.
    70. caozilong@caozilong-Vostro-3268:~/Workspace/coremark/coremark$

    编译生成了coremark.exe,可以单独执行

    使用QEMU运行

    qemu-x86_64   ./coremark.exe 

    可以看到,使用模拟器后,分数降低了很多

    1. caozilong@caozilong-Vostro-3268:~/Workspace/coremark/coremark$ qemu-x86_64 ./coremark.exe
    2. warning: TCG doesn't support requested feature: CPUID.01H:ECX.vmx [bit 5]
    3. 2K performance run parameters for coremark.
    4. CoreMark Size : 666
    5. Total ticks : 15239
    6. Total time (secs): 15.239000
    7. Iterations/Sec : 7218.321412
    8. Iterations : 110000
    9. Compiler version : GCC7.5.0
    10. Compiler flags : -O2 -DPERFORMANCE_RUN=1 -lrt
    11. Memory location : Please put data memory location here
    12. (e.g. code in flash, data on heap etc)
    13. seedcrc : 0xe9f5
    14. [0]crclist : 0xe714
    15. [0]crcmatrix : 0x1fd7
    16. [0]crcstate : 0x8e3a
    17. [0]crcfinal : 0x33ff
    18. Correct operation validated. See README.md for run and reporting rules.
    19. CoreMark 1.0 : 7218.321412 / GCC7.5.0 -O2 -DPERFORMANCE_RUN=1 -lrt / Heap

    gem5的测试结果

    ./build/X86/gem5.opt configs/example/se.py -c ~/Workspace/coremark/coremark/coremark.exe
    
    1. caozilong@caozilong-Vostro-3268:~/Workspace/gem5$ ./build/X86/gem5.opt configs/example/se.py -c ~/Workspace/coremark/coremark/coremark.exe
    2. gem5 Simulator System. http://gem5.org
    3. gem5 is copyrighted software; use the --copyright option for details.
    4. gem5 version 21.2.1.0
    5. gem5 compiled Oct 1 2022 21:53:41
    6. gem5 started Oct 1 2022 22:49:47
    7. gem5 executing on caozilong-Vostro-3268, pid 10229
    8. command line: ./build/X86/gem5.opt configs/example/se.py -c /home/caozilong/Workspace/coremark/coremark/coremark.exe
    9. Global frequency set at 1000000000000 ticks per second
    10. warn: No dot file generated. Please install pydot to generate the dot file and pdf.
    11. build/X86/mem/mem_interface.cc:793: warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (512 Mbytes)
    12. 0: system.remote_gdb: listening for remote gdb on port 7000
    13. **** REAL SIMULATION ****
    14. build/X86/sim/simulate.cc:194: info: Entering event queue @ 0. Starting simulation...
    15. build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
    16. build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
    17. build/X86/sim/mem_state.cc:443: info: Increasing stack size by one page.
    18. build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
    19. build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
    20. build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
    21. build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
    22. build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
    23. build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
    24. build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall set_robust_list(...)
    25. build/X86/sim/syscall_emul.cc:86: warn: ignoring syscall rt_sigaction(...)
    26. (further warnings will be suppressed)
    27. build/X86/sim/syscall_emul.cc:86: warn: ignoring syscall rt_sigprocmask(...)
    28. (further warnings will be suppressed)
    29. 2K performance run parameters for coremark.
    30. CoreMark Size : 666
    31. Total ticks : 13768
    32. Total time (secs): 13.768000
    33. Iterations/Sec : 2905.287623
    34. Iterations : 40000
    35. Compiler version : GCC7.5.0
    36. Compiler flags : -O2 -DPERFORMANCE_RUN=1 -lrt
    37. Memory location : Please put data memory location here
    38. (e.g. code in flash, data on heap etc)
    39. seedcrc : 0xe9f5
    40. [0]crclist : 0xe714
    41. [0]crcmatrix : 0x1fd7
    42. [0]crcstate : 0x8e3a
    43. [0]crcfinal : 0x25b5
    44. Correct operation validated. See README.md for run and reporting rules.
    45. CoreMark 1.0 : 2905.287623 / GCC7.5.0 -O2 -DPERFORMANCE_RUN=1 -lrt / Heap
    46. Exiting @ tick 17592221426500 because exiting with last active thread context

    普通PC/服务器如何判断CPU性能

    可以使用unixbench工具测试普通PC/服务器的CPU性能,这个工具会以打分的形式提供处理的单核和多核性能。安装方法 sudo apt install unixbench即可。


    结束

  • 相关阅读:
    一文了解如何安全有效的进行PB级别的大数据迁移
    设计模式-创建型模式-工厂方法模式
    CMake引入三方库
    数据库监控工具
    .NET 8 的 green thread 异步模型被搁置了
    php案例:今天是星期几呢?
    程序员的自我修养-链接、装载与库_笔记_第10章:内存
    基于cross_silo做联邦学习编程的学习
    SpringBoot配置文件
    K8s的Pod详细解析
  • 原文地址:https://blog.csdn.net/tugouxp/article/details/127137393