Atlas 200 DK(Model 3000)、Atlas 200I DK A2开发者套件性能测试

一、测试环境

1. Atlas 200 DK(Model 3000)

设备型号:Atlas 200 DK(Model: 3000)
Operating System + Version: Ubuntu 18.04.6 LTS
CPU Type: 8核Cortex-A55
AI CPU number: 2
control CPU number: 6
RAM: 8GB 
miscroSD: 128GB
CANN: 6.0.RC1.alpha005
HwHiAiUser@davinci-mini:~$ npu-smi info -t aicpu-config -i 0 -c 0
        Current AI CPU number          : 2
        Current control CPU number     : 6
        Number of AI CPUs set          : 2
        Number of control CPUs set     : 6

在这里插入图片描述

2. Atlas 200I DK A2

设备型号:Atlas 200I DK A2
Operating System + Version: Ubuntu 22.04 LTS
CPU Type: 4核TAISHANV200M处理器
AI CPU number: 0
control CPU number: 4
RAM: 4GB 
miscroSD: 128GB
CANN Vertion: 7.0.RC1
HwHiAiUser@davinci-mini:~$ npu-smi info -t aicpu-config -i 0 -c 0
        Current AI CPU number          : 0
        Current control CPU number     : 4
        Number of AI CPUs set          : 0
        Number of control CPUs set     : 4

在这里插入图片描述

二、CPU性能测试

1. stress 工具

# 下载
sudo apt-get install stress

# 在4个CPU核心上进行测试,测试时间为60秒
stress --cpu 4 --timeout 60

2. SysBench 工具

服务器基准测试实践:SysBench的搭建与基本使用

SysBench 是一个跨平台的基准测试工具,用于评估计算机系统在不同负载条件下的性能。它模拟真实场景下的工作负载,提供多种测试模式,包括CPU、内存、磁盘、线程等方面的测试。

# 下载
sudo apt-get update
sudo apt-get install sysbench

# 使用4个线程,计算 0 到 20000 中最大的素数
sysbench --test=cpu --cpu-max-prime=20000 --threads=4 run 

2.1 Atlas 200DK(Model: 3000)

在默认时间 10秒内,通过开启 6个线程计算 0 到 20000 中最大的素数。

HwHiAiUser@davinci-mini:~$ sysbench --test=cpu --cpu-max-prime=20000 --threads=6 run
WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.
sysbench 1.0.11 (using system LuaJIT 2.1.0-beta3)

Running the test with following options:
Number of threads: 6
Initializing random number generator from current time


Prime numbers limit: 20000

Initializing worker threads...

Threads started!

CPU speed:
    events per second:  1913.06  # 所有线程每秒完成的事件数量

General statistics:
    total time:                          10.0020s  # 总耗时
    total number of events:              19140  # 10s内所有线程完成的事件数量

Latency (ms):
         min:                                  3.12  # 完成一次事件的最小处理时间(ms)
         avg:                                  3.13  # 完成一次事件的平均处理时间(ms)
         max:                                 18.44  # 完成一次事件的最大处理时间(ms)
         95th percentile:                      3.13  # 95%的事件处理时间(ms)
         sum:                              59991.39  # 总共的处理时间(ms)

Threads fairness:
    events (avg/stddev):           3190.0000/11.72  # 每个线程处理的事件数量(均值/标准差)- 单线程无意义
    execution time (avg/stddev):   9.9986/0.00     # 每个线程处理的时间(均值/标准差)- 单线程无意义

2.2 Atlas 200I DK A2

在默认时间 10秒内,通过开启 4个线程计算 0 到 20000 中最大的素数。

root@davinci-mini:~# sysbench --test=cpu --cpu-max-prime=20000 --threads=4 run
WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.
sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)

Running the test with following options:
Number of threads: 4
Initializing random number generator from current time


Prime numbers limit: 20000

Initializing worker threads...

Threads started!

CPU speed:
    events per second:  1732.56

General statistics:
    total time:                          10.0017s
    total number of events:              17339

Latency (ms):
         min:                                    1.95
         avg:                                    2.31
         max:                                   22.21
         95th percentile:                        2.18
         sum:                                39979.19

Threads fairness:
    events (avg/stddev):           4334.7500/85.37
    execution time (avg/stddev):   9.9948/0.00

3. unixbench 工具

github源码:byte-unixbench

UnixBench - Linux性能测试工具

UnixBench算分介绍

Unixbench Linux CPU测试工具

UnixBench:Linux VPS服务器性能测试跑分脚本

unixbench 是一个性能测试套件,主要针对Unix/Linux操作系统。

安装方式一

Ubuntu18.04系统如何安装unixbench

# 下载
wget http://www.vpsmark.com/sh/unixbench.sh

# 修改权限
chmod +x unixbench.sh

# 执行
bash ./unixbench.sh

安装方式二

ubuntu 下使用unixbench 这种benchmark 工具测试系统性能

下载软件包:UnixBench v5.1.3

# 下载
wget https://github.com/kdlucas/byte-unixbench/archive/refs/tags/v5.1.3.tar.gz

# 解压
tar -zxvf v5.1.3.tar.gz 

cd byte-unixbench-5.1.3/UnixBench 

# 修改Makefile
vim Makefile
# 设置不用图形化,注释掉
# GRAPHIC_TESTS = defined

# 编译
make -j6

# 执行
./Run

3.1 Atlas 200DK(Model: 3000)

执行测试
root@davinci-mini:/home/HwHiAiUser/Downloads# bash ./unixbench.sh
./unixbench.sh: line 4: yum: command not found
--2024-04-11 11:55:13--  https://github.com/kdlucas/byte-unixbench/archive/master.zip
Resolving github.com (github.com)... 140.82.112.4
Connecting to github.com (github.com)|140.82.112.4|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://codeload.github.com/kdlucas/byte-unixbench/zip/refs/heads/master [following]
--2024-04-11 11:55:14--  https://codeload.github.com/kdlucas/byte-unixbench/zip/refs/heads/master
Resolving codeload.github.com (codeload.github.com)... 20.205.243.165
Connecting to codeload.github.com (codeload.github.com)|20.205.243.165|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/zip]
Saving to: ‘master.zip’

master.zip                  [ <=>                            ] 168.37K  1.05MB/s    in 0.2s

2024-04-11 11:55:15 (1.05 MB/s) - ‘master.zip’ saved [172414]

./unixbench.sh: line 8: yum: command not found
Archive:  master.zip
a07fcc03264915c624f0e4818993c5b4df3fa703
   creating: byte-unixbench-master/
  inflating: byte-unixbench-master/.gitignore
  inflating: byte-unixbench-master/LICENSE.txt
  inflating: byte-unixbench-master/README.md
   creating: byte-unixbench-master/UnixBench/
  inflating: byte-unixbench-master/UnixBench/.cproject
  inflating: byte-unixbench-master/UnixBench/.project
  inflating: byte-unixbench-master/UnixBench/Makefile
  inflating: byte-unixbench-master/UnixBench/README
  inflating: byte-unixbench-master/UnixBench/Run
  inflating: byte-unixbench-master/UnixBench/USAGE
  inflating: byte-unixbench-master/UnixBench/WRITING_TESTS
   creating: byte-unixbench-master/UnixBench/pgms/
  inflating: byte-unixbench-master/UnixBench/pgms/gfx-x11
  inflating: byte-unixbench-master/UnixBench/pgms/index.base
  inflating: byte-unixbench-master/UnixBench/pgms/multi.sh
  inflating: byte-unixbench-master/UnixBench/pgms/tst.sh
  inflating: byte-unixbench-master/UnixBench/pgms/unixbench.logo
   creating: byte-unixbench-master/UnixBench/src/
  inflating: byte-unixbench-master/UnixBench/src/arith.c
  inflating: byte-unixbench-master/UnixBench/src/big.c
  inflating: byte-unixbench-master/UnixBench/src/context1.c
  inflating: byte-unixbench-master/UnixBench/src/dhry.h
  inflating: byte-unixbench-master/UnixBench/src/dhry_1.c
  inflating: byte-unixbench-master/UnixBench/src/dhry_2.c
  inflating: byte-unixbench-master/UnixBench/src/dummy.c
  inflating: byte-unixbench-master/UnixBench/src/execl.c
  inflating: byte-unixbench-master/UnixBench/src/fstime.c
  inflating: byte-unixbench-master/UnixBench/src/hanoi.c
  inflating: byte-unixbench-master/UnixBench/src/looper.c
  inflating: byte-unixbench-master/UnixBench/src/pipe.c
  inflating: byte-unixbench-master/UnixBench/src/spawn.c
  inflating: byte-unixbench-master/UnixBench/src/syscall.c
  inflating: byte-unixbench-master/UnixBench/src/time-polling.c
  inflating: byte-unixbench-master/UnixBench/src/timeit.c
  inflating: byte-unixbench-master/UnixBench/src/ubgears.c
  inflating: byte-unixbench-master/UnixBench/src/whets.c
   creating: byte-unixbench-master/UnixBench/testdir/
  inflating: byte-unixbench-master/UnixBench/testdir/cctest.c
  inflating: byte-unixbench-master/UnixBench/testdir/dc.dat
  inflating: byte-unixbench-master/UnixBench/testdir/large.txt
  inflating: byte-unixbench-master/UnixBench/testdir/sort.src
./unixbench.sh: line 14: yum: command not found
make distr
make[1]: Entering directory '/backup/www.vpsmark.com/byte-unixbench-master/UnixBench'
Checking distribution of files
./pgms  exists
./src  exists
./testdir  exists
make[1]: Leaving directory '/backup/www.vpsmark.com/byte-unixbench-master/UnixBench'
make programs
make[1]: Entering directory '/backup/www.vpsmark.com/byte-unixbench-master/UnixBench'
gcc -o pgms/arithoh -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME -Darithoh src/arith.c
gcc -o pgms/register -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME -Ddatum='register int' src/arith.c
gcc -o pgms/short -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME -Ddatum=short src/arith.c
gcc -o pgms/int -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME -Ddatum=int src/arith.c
gcc -o pgms/long -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME -Ddatum=long src/arith.c
gcc -o pgms/float -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME -Ddatum=float src/arith.c
gcc -o pgms/double -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME -Ddatum=double src/arith.c
gcc -o pgms/hanoi -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME src/hanoi.c
gcc -o pgms/syscall -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME src/syscall.c
gcc -o pgms/context1 -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME src/context1.c
gcc -o pgms/pipe -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME src/pipe.c
src/pipe.c: In function ‘main’:
src/pipe.c:52:2: warning: ignoring return value of ‘pipe’, declared with attribute warn_unused_result [-Wunused-result]
  pipe(pvec);
  ^~~~~~~~~~
gcc -o pgms/spawn -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME src/spawn.c
gcc -o pgms/execl -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME src/execl.c
In file included from src/execl.c:34:0:
src/big.c: In function ‘dummy’:
src/big.c:109:5: warning: ignoring return value of ‘freopen’, declared with attribute warn_unused_result [-Wunused-result]
     freopen("masterlog.00", "a", stderr);
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/big.c:197:6: warning: ignoring return value of ‘freopen’, declared with attribute warn_unused_result [-Wunused-result]
      freopen(logname, "w", stderr);
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/big.c:221:3: warning: ignoring return value of ‘dup’, declared with attribute warn_unused_result [-Wunused-result]
   dup(pvec[0]);
   ^~~~~~~~~~~~
src/big.c:225:6: warning: ignoring return value of ‘freopen’, declared with attribute warn_unused_result [-Wunused-result]
      freopen(logname, "w", stderr);
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/big.c:318:4: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Wunused-result]
    write(fcopy, cp->line, p - cp->line + 1);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gcc -o pgms/dhry2 -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME -DHZ= ./src/dhry_1.c ./src/dhry_2.c
gcc -o pgms/dhry2reg -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME -DHZ= -DREG=register ./src/dhry_1.c ./src/dhry_2.c
gcc -o pgms/looper -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME src/looper.c
gcc -o pgms/fstime -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME src/fstime.c
gcc -o pgms/whetstone-double -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME -DDP -DGTODay -DUNIXBENCH src/whets.c -lm
make[1]: Leaving directory '/backup/www.vpsmark.com/byte-unixbench-master/UnixBench'
make all
make[1]: Entering directory '/backup/www.vpsmark.com/byte-unixbench-master/UnixBench'
make distr
make[2]: Entering directory '/backup/www.vpsmark.com/byte-unixbench-master/UnixBench'
Checking distribution of files
./pgms  exists
./src  exists
./testdir  exists
./tmp  exists
./results  exists
make[2]: Leaving directory '/backup/www.vpsmark.com/byte-unixbench-master/UnixBench'
make programs
make[2]: Entering directory '/backup/www.vpsmark.com/byte-unixbench-master/UnixBench'
make[2]: Nothing to be done for 'programs'.
make[2]: Leaving directory '/backup/www.vpsmark.com/byte-unixbench-master/UnixBench'
make[1]: Leaving directory '/backup/www.vpsmark.com/byte-unixbench-master/UnixBench'
sh: 1: 3dinfo: not found

   #    #  #    #  #  #    #          #####   ######  #    #   ####   #    #
   #    #  ##   #  #   #  #           #    #  #       ##   #  #    #  #    #
   #    #  # #  #  #    ##            #####   #####   # #  #  #       ######
   #    #  #  # #  #    ##            #    #  #       #  # #  #       #    #
   #    #  #   ##  #   #  #           #    #  #       #   ##  #    #  #    #
    ####   #    #  #  #    #          #####   ######  #    #   ####   #    #

   Version 5.1.3                      Based on the Byte Magazine Unix Benchmark

   Multi-CPU version                  Version 5 revisions by Ian Smith,
                                      Sunnyvale, CA, USA
   January 13, 2011                   johantheghost at yahoo period com

------------------------------------------------------------------------------
   Use directories for:
      * File I/O tests (named fs***) = /backup/www.vpsmark.com/byte-unixbench-master/UnixBench/tmp
      * Results                      = /backup/www.vpsmark.com/byte-unixbench-master/UnixBench/results
------------------------------------------------------------------------------
Use of uninitialized value in printf at ./Run line 1469.
Use of uninitialized value in printf at ./Run line 1470.
Use of uninitialized value in printf at ./Run line 1469.
Use of uninitialized value in printf at ./Run line 1470.
Use of uninitialized value in printf at ./Run line 1469.
Use of uninitialized value in printf at ./Run line 1470.
Use of uninitialized value in printf at ./Run line 1469.
Use of uninitialized value in printf at ./Run line 1470.
Use of uninitialized value in printf at ./Run line 1469.
Use of uninitialized value in printf at ./Run line 1470.
Use of uninitialized value in printf at ./Run line 1469.
Use of uninitialized value in printf at ./Run line 1470.
Use of uninitialized value in printf at ./Run line 1469.
Use of uninitialized value in printf at ./Run line 1470.
Use of uninitialized value in printf at ./Run line 1469.
Use of uninitialized value in printf at ./Run line 1470.
Use of uninitialized value in printf at ./Run line 1721.
Use of uninitialized value in printf at ./Run line 1722.
Use of uninitialized value in printf at ./Run line 1721.
Use of uninitialized value in printf at ./Run line 1722.
Use of uninitialized value in printf at ./Run line 1721.
Use of uninitialized value in printf at ./Run line 1722.
Use of uninitialized value in printf at ./Run line 1721.
Use of uninitialized value in printf at ./Run line 1722.
Use of uninitialized value in printf at ./Run line 1721.
Use of uninitialized value in printf at ./Run line 1722.
Use of uninitialized value in printf at ./Run line 1721.
Use of uninitialized value in printf at ./Run line 1722.
Use of uninitialized value in printf at ./Run line 1721.
Use of uninitialized value in printf at ./Run line 1722.
Use of uninitialized value in printf at ./Run line 1721.
Use of uninitialized value in printf at ./Run line 1722.

1 x Dhrystone 2 using register variables  1 2 3 4^[[D 5 6 7 8 9 10

1 x Double-Precision Whetstone  1 2 3 4 5 6 7 8 9 10

1 x Execl Throughput  1 2 3

1 x File Copy 1024 bufsize 2000 maxblocks  1 2 3

1 x File Copy 256 bufsize 500 maxblocks  1 2 3

1 x File Copy 4096 bufsize 8000 maxblocks  1 2 3

1 x Pipe Throughput  1 2 3 4 5 6 7 8 9 10

1 x Pipe-based Context Switching  1 2 3 4 5 6 7 8 9 10

1 x Process Creation  1 2 3

1 x System Call Overhead  1 2 3 4 5 6 7 8 9 10

1 x Shell Scripts (1 concurrent)  1 2 3

1 x Shell Scripts (8 concurrent)  1 2 3

8 x Dhrystone 2 using register variables  1 2 3 4 5 6 7 8 9 10

8 x Double-Precision Whetstone  1 2 3 4 5 6 7 8 9 10

8 x Execl Throughput  1 2 3

8 x File Copy 1024 bufsize 2000 maxblocks  1 2 3

8 x File Copy 256 bufsize 500 maxblocks  1 2 3

8 x File Copy 4096 bufsize 8000 maxblocks  1 2 3

8 x Pipe Throughput  1 2 3 4 5 6 7 8 9 10

8 x Pipe-based Context Switching  1 2 3 4 5 6 7 8 9 10

8 x Process Creation  1 2 3

8 x System Call Overhead  1 2 3 4 5 6 7 8 9 10

8 x Shell Scripts (1 concurrent)  1 2 3

8 x Shell Scripts (8 concurrent)  1 2 3

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: davinci-mini: GNU/Linux
   OS: GNU/Linux -- 4.19.90+ -- #1 SMP Sat Jan 29 00:19:13 CST 2022
   Machine: aarch64 (aarch64)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
   CPU 0:  (38.4 bogomips)

   CPU 1:  (38.4 bogomips)

   CPU 2:  (38.4 bogomips)

   CPU 3:  (38.4 bogomips)

   CPU 4:  (38.4 bogomips)

   CPU 5:  (38.4 bogomips)

   CPU 6:  (38.4 bogomips)

   CPU 7:  (38.4 bogomips)

   11:55:23 up  2:16,  5 users,  load average: 9.29, 9.16, 9.26; runlevel 2024-04-09
单CPU测试结果
------------------------------------------------------------------------
Benchmark Run: Thu Apr 11 2024 11:55:23 - 12:23:17
8 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       10001430.8 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     1848.3 MWIPS (9.7 s, 7 samples)
Execl Throughput                                783.0 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        221838.8 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           65739.0 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        450755.6 KBps  (30.0 s, 2 samples)
Pipe Throughput                              527220.5 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  76938.5 lps   (10.0 s, 7 samples)
Process Creation                               3144.8 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   2812.0 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   1380.5 lpm   (60.0 s, 2 samples)
System Call Overhead                         678161.6 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   10001430.8    857.0
Double-Precision Whetstone                       55.0       1848.3    336.1
Execl Throughput                                 43.0        783.0    182.1
File Copy 1024 bufsize 2000 maxblocks          3960.0     221838.8    560.2
File Copy 256 bufsize 500 maxblocks            1655.0      65739.0    397.2
File Copy 4096 bufsize 8000 maxblocks          5800.0     450755.6    777.2
Pipe Throughput                               12440.0     527220.5    423.8
Pipe-based Context Switching                   4000.0      76938.5    192.3
Process Creation                                126.0       3144.8    249.6
Shell Scripts (1 concurrent)                     42.4       2812.0    663.2
Shell Scripts (8 concurrent)                      6.0       1380.5   2300.9
System Call Overhead                          15000.0     678161.6    452.1
                                                                   ========
System Benchmarks Index Score                                         473.6
8CPU测试结果
------------------------------------------------------------------------
Benchmark Run: Thu Apr 11 2024 12:23:17 - 12:52:00
8 CPUs in system; running 8 parallel copies of tests

Dhrystone 2 using register variables       59788848.2 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                    12052.3 MWIPS (9.3 s, 7 samples)
Execl Throughput                               4532.3 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks       1105551.1 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          346210.4 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        930109.3 KBps  (30.0 s, 2 samples)
Pipe Throughput                             3153021.6 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 499082.3 lps   (10.0 s, 7 samples)
Process Creation                              12347.4 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                  11320.7 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   1490.0 lpm   (60.1 s, 2 samples)
System Call Overhead                        4056179.9 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   59788848.2   5123.3
Double-Precision Whetstone                       55.0      12052.3   2191.3
Execl Throughput                                 43.0       4532.3   1054.0
File Copy 1024 bufsize 2000 maxblocks          3960.0    1105551.1   2791.8
File Copy 256 bufsize 500 maxblocks            1655.0     346210.4   2091.9
File Copy 4096 bufsize 8000 maxblocks          5800.0     930109.3   1603.6
Pipe Throughput                               12440.0    3153021.6   2534.6
Pipe-based Context Switching                   4000.0     499082.3   1247.7
Process Creation                                126.0      12347.4    980.0
Shell Scripts (1 concurrent)                     42.4      11320.7   2670.0
Shell Scripts (8 concurrent)                      6.0       1490.0   2483.4
System Call Overhead                          15000.0    4056179.9   2704.1
                                                                   ========
System Benchmarks Index Score                                        2069.1




======= Copy and paste your results to the VPSMARK =======

http://www.vpsmark.com/ .sh update - 2017-08-31

注意说明:比较CPU性能,既要比较单CPU的性能分数,也要比较8CPU的性能分数。

3.2 Atlas 200I DK A2

执行测试
root@davinci-mini:/home/HwHiAiUser/Downloads# time bash ./unixbench.sh
./unixbench.sh: line 4: yum: command not found
--2024-04-11 22:39:06--  https://github.com/kdlucas/byte-unixbench/archive/master.zip
Resolving github.com (github.com)... 20.205.243.166
Connecting to github.com (github.com)|20.205.243.166|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://codeload.github.com/kdlucas/byte-unixbench/zip/refs/heads/master [following]
--2024-04-11 22:39:06--  https://codeload.github.com/kdlucas/byte-unixbench/zip/refs/heads/master
Resolving codeload.github.com (codeload.github.com)... 20.205.243.165
Connecting to codeload.github.com (codeload.github.com)|20.205.243.165|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/zip]
Saving to: ‘master.zip’

master.zip                  [   <=>                          ] 168.37K   340KB/s    in 0.5s

2024-04-11 22:39:08 (340 KB/s) - ‘master.zip’ saved [172414]

./unixbench.sh: line 8: yum: command not found
Archive:  master.zip
a07fcc03264915c624f0e4818993c5b4df3fa703
   creating: byte-unixbench-master/
  inflating: byte-unixbench-master/.gitignore
  inflating: byte-unixbench-master/LICENSE.txt
  inflating: byte-unixbench-master/README.md
   creating: byte-unixbench-master/UnixBench/
  inflating: byte-unixbench-master/UnixBench/.cproject
  inflating: byte-unixbench-master/UnixBench/.project
  inflating: byte-unixbench-master/UnixBench/Makefile
  inflating: byte-unixbench-master/UnixBench/README
  inflating: byte-unixbench-master/UnixBench/Run
  inflating: byte-unixbench-master/UnixBench/USAGE
  inflating: byte-unixbench-master/UnixBench/WRITING_TESTS
   creating: byte-unixbench-master/UnixBench/pgms/
  inflating: byte-unixbench-master/UnixBench/pgms/gfx-x11
  inflating: byte-unixbench-master/UnixBench/pgms/index.base
  inflating: byte-unixbench-master/UnixBench/pgms/multi.sh
  inflating: byte-unixbench-master/UnixBench/pgms/tst.sh
  inflating: byte-unixbench-master/UnixBench/pgms/unixbench.logo
   creating: byte-unixbench-master/UnixBench/src/
  inflating: byte-unixbench-master/UnixBench/src/arith.c
  inflating: byte-unixbench-master/UnixBench/src/big.c
  inflating: byte-unixbench-master/UnixBench/src/context1.c
  inflating: byte-unixbench-master/UnixBench/src/dhry.h
  inflating: byte-unixbench-master/UnixBench/src/dhry_1.c
  inflating: byte-unixbench-master/UnixBench/src/dhry_2.c
  inflating: byte-unixbench-master/UnixBench/src/dummy.c
  inflating: byte-unixbench-master/UnixBench/src/execl.c
  inflating: byte-unixbench-master/UnixBench/src/fstime.c
  inflating: byte-unixbench-master/UnixBench/src/hanoi.c
  inflating: byte-unixbench-master/UnixBench/src/looper.c
  inflating: byte-unixbench-master/UnixBench/src/pipe.c
  inflating: byte-unixbench-master/UnixBench/src/spawn.c
  inflating: byte-unixbench-master/UnixBench/src/syscall.c
  inflating: byte-unixbench-master/UnixBench/src/time-polling.c
  inflating: byte-unixbench-master/UnixBench/src/timeit.c
  inflating: byte-unixbench-master/UnixBench/src/ubgears.c
  inflating: byte-unixbench-master/UnixBench/src/whets.c
   creating: byte-unixbench-master/UnixBench/testdir/
  inflating: byte-unixbench-master/UnixBench/testdir/cctest.c
  inflating: byte-unixbench-master/UnixBench/testdir/dc.dat
  inflating: byte-unixbench-master/UnixBench/testdir/large.txt
  inflating: byte-unixbench-master/UnixBench/testdir/sort.src
./unixbench.sh: line 14: yum: command not found
make distr
make[1]: Entering directory '/backup/www.vpsmark.com/byte-unixbench-master/UnixBench'
Checking distribution of files
./pgms  exists
./src  exists
./testdir  exists
make[1]: Leaving directory '/backup/www.vpsmark.com/byte-unixbench-master/UnixBench'
make programs
make[1]: Entering directory '/backup/www.vpsmark.com/byte-unixbench-master/UnixBench'
gcc -o pgms/arithoh -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME -Darithoh src/arith.c
gcc -o pgms/register -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME -Ddatum='register int' src/arith.c
gcc -o pgms/short -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME -Ddatum=short src/arith.c
gcc -o pgms/int -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME -Ddatum=int src/arith.c
gcc -o pgms/long -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME -Ddatum=long src/arith.c
gcc -o pgms/float -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME -Ddatum=float src/arith.c
gcc -o pgms/double -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME -Ddatum=double src/arith.c
gcc -o pgms/hanoi -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME src/hanoi.c
gcc -o pgms/syscall -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME src/syscall.c
gcc -o pgms/context1 -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME src/context1.c
gcc -o pgms/pipe -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME src/pipe.c
src/pipe.c: In function ‘main’:
src/pipe.c:52:9: warning: ignoring return value of ‘pipe’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   52 |         pipe(pvec);
      |         ^~~~~~~~~~
gcc -o pgms/spawn -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME src/spawn.c
gcc -o pgms/execl -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME src/execl.c
In file included from src/execl.c:34:
src/big.c: In function ‘dummy’:
src/big.c:109:5: warning: ignoring return value of ‘freopen’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  109 |     freopen("masterlog.00", "a", stderr);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/big.c:197:13: warning: ignoring return value of ‘freopen’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  197 |             freopen(logname, "w", stderr);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/big.c:221:17: warning: ignoring return value of ‘dup’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  221 |                 dup(pvec[0]);
      |                 ^~~~~~~~~~~~
src/big.c:225:13: warning: ignoring return value of ‘freopen’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  225 |             freopen(logname, "w", stderr);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/big.c:318:25: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  318 |                         write(fcopy, cp->line, p - cp->line + 1);
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gcc -o pgms/dhry2 -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME -DHZ= ./src/dhry_1.c ./src/dhry_2.c
gcc -o pgms/dhry2reg -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME -DHZ= -DREG=register ./src/dhry_1.c ./src/dhry_2.c
gcc -o pgms/looper -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME src/looper.c
gcc -o pgms/fstime -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME src/fstime.c
gcc -o pgms/whetstone-double -Wall -pedantic -O3 -ffast-math -march=native -mtune=native -I ./src -DTIME -DDP -DGTODay -DUNIXBENCH src/whets.c -lm
make[1]: Leaving directory '/backup/www.vpsmark.com/byte-unixbench-master/UnixBench'
make all
make[1]: Entering directory '/backup/www.vpsmark.com/byte-unixbench-master/UnixBench'
make distr
make[2]: Entering directory '/backup/www.vpsmark.com/byte-unixbench-master/UnixBench'
Checking distribution of files
./pgms  exists
./src  exists
./testdir  exists
./tmp  exists
./results  exists
make[2]: Leaving directory '/backup/www.vpsmark.com/byte-unixbench-master/UnixBench'
make programs
make[2]: Entering directory '/backup/www.vpsmark.com/byte-unixbench-master/UnixBench'
make[2]: Nothing to be done for 'programs'.
make[2]: Leaving directory '/backup/www.vpsmark.com/byte-unixbench-master/UnixBench'
make[1]: Leaving directory '/backup/www.vpsmark.com/byte-unixbench-master/UnixBench'
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
sh: 1: 3dinfo: not found

   #    #  #    #  #  #    #          #####   ######  #    #   ####   #    #
   #    #  ##   #  #   #  #           #    #  #       ##   #  #    #  #    #
   #    #  # #  #  #    ##            #####   #####   # #  #  #       ######
   #    #  #  # #  #    ##            #    #  #       #  # #  #       #    #
   #    #  #   ##  #   #  #           #    #  #       #   ##  #    #  #    #
    ####   #    #  #  #    #          #####   ######  #    #   ####   #    #

   Version 5.1.3                      Based on the Byte Magazine Unix Benchmark

   Multi-CPU version                  Version 5 revisions by Ian Smith,
                                      Sunnyvale, CA, USA
   January 13, 2011                   johantheghost at yahoo period com

------------------------------------------------------------------------------
   Use directories for:
      * File I/O tests (named fs***) = /backup/www.vpsmark.com/byte-unixbench-master/UnixBench/tmp
      * Results                      = /backup/www.vpsmark.com/byte-unixbench-master/UnixBench/results
------------------------------------------------------------------------------

Use of uninitialized value in printf at ./Run line 1469.
Use of uninitialized value in printf at ./Run line 1470.
Use of uninitialized value in printf at ./Run line 1469.
Use of uninitialized value in printf at ./Run line 1470.
Use of uninitialized value in printf at ./Run line 1469.
Use of uninitialized value in printf at ./Run line 1470.
Use of uninitialized value in printf at ./Run line 1469.
Use of uninitialized value in printf at ./Run line 1470.
Use of uninitialized value in printf at ./Run line 1721.
Use of uninitialized value in printf at ./Run line 1722.
Use of uninitialized value in printf at ./Run line 1721.
Use of uninitialized value in printf at ./Run line 1722.
Use of uninitialized value in printf at ./Run line 1721.
Use of uninitialized value in printf at ./Run line 1722.
Use of uninitialized value in printf at ./Run line 1721.
Use of uninitialized value in printf at ./Run line 1722.

1 x Dhrystone 2 using register variables  1 2 3 4 5 6 7 8 9 10

1 x Double-Precision Whetstone  1 2 3 4 5 6 7 8 9 10

1 x Execl Throughput  1 2 3

1 x File Copy 1024 bufsize 2000 maxblocks  1 2 3

1 x File Copy 256 bufsize 500 maxblocks  1 2 3

1 x File Copy 4096 bufsize 8000 maxblocks  1 2 3

1 x Pipe Throughput  1 2 3 4 5 6 7 8 9 10

1 x Pipe-based Context Switching  1 2 3 4 5 6 7 8 9 10

1 x Process Creation  1 2 3

1 x System Call Overhead  1 2 3 4 5 6 7 8 9 10

1 x Shell Scripts (1 concurrent)  1 2 3

1 x Shell Scripts (8 concurrent)  1 2 3

4 x Dhrystone 2 using register variables  1 2 3 4 5 6 7 8 9 10

4 x Double-Precision Whetstone  1 2 3 4 5 6 7 8 9 10

4 x Execl Throughput  1 2 3

4 x File Copy 1024 bufsize 2000 maxblocks  1 2 3

4 x File Copy 256 bufsize 500 maxblocks  1 2 3

4 x File Copy 4096 bufsize 8000 maxblocks  1 2 3

4 x Pipe Throughput  1 2 3 4 5 6 7 8 9 10

4 x Pipe-based Context Switching  1 2 3 4 5 6 7 8 9 10

4 x Process Creation  1 2 3

4 x System Call Overhead  1 2 3 4 5 6 7 8 9 10

4 x Shell Scripts (1 concurrent)  1 2 3

4 x Shell Scripts (8 concurrent)  1 2 3

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: davinci-mini: GNU/Linux
   OS: GNU/Linux -- 5.10.0+ -- #1 SMP Fri Oct 20 19:51:59 CST 2023
   Machine: aarch64 (aarch64)
   Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")
   CPU 0:  (96.0 bogomips)

   CPU 1:  (96.0 bogomips)

   CPU 2:  (96.0 bogomips)

   CPU 3:  (96.0 bogomips)

   22:39:14 up 26 min,  3 users,  load average: 17.52, 17.66, 14.62; runlevel Apr
单CPU测试结果
------------------------------------------------------------------------
Benchmark Run: Thu Apr 11 2024 22:39:14 - 23:07:09
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       11002628.9 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     2567.2 MWIPS (9.5 s, 7 samples)
Execl Throughput                                887.9 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        334852.0 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          115729.6 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        826218.1 KBps  (30.0 s, 2 samples)
Pipe Throughput                              509469.2 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  75052.1 lps   (10.0 s, 7 samples)
Process Creation                               3462.5 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   3496.5 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   1116.1 lpm   (60.0 s, 2 samples)
System Call Overhead                         473475.9 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   11002628.9    942.8
Double-Precision Whetstone                       55.0       2567.2    466.8
Execl Throughput                                 43.0        887.9    206.5
File Copy 1024 bufsize 2000 maxblocks          3960.0     334852.0    845.6
File Copy 256 bufsize 500 maxblocks            1655.0     115729.6    699.3
File Copy 4096 bufsize 8000 maxblocks          5800.0     826218.1   1424.5
Pipe Throughput                               12440.0     509469.2    409.5
Pipe-based Context Switching                   4000.0      75052.1    187.6
Process Creation                                126.0       3462.5    274.8
Shell Scripts (1 concurrent)                     42.4       3496.5    824.7
Shell Scripts (8 concurrent)                      6.0       1116.1   1860.1
System Call Overhead                          15000.0     473475.9    315.7
                                                                   ========
System Benchmarks Index Score                                         551.0
4CPU测试结果
------------------------------------------------------------------------
Benchmark Run: Thu Apr 11 2024 23:07:09 - 23:35:13
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables       36845595.2 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     8682.8 MWIPS (9.8 s, 7 samples)
Execl Throughput                               2779.9 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks       1071347.1 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          379154.4 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        865191.6 KBps  (30.0 s, 2 samples)
Pipe Throughput                             1715069.9 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 246971.9 lps   (10.0 s, 7 samples)
Process Creation                               7716.3 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   8359.6 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   1150.8 lpm   (60.1 s, 2 samples)
System Call Overhead                        1630399.7 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   36845595.2   3157.3
Double-Precision Whetstone                       55.0       8682.8   1578.7
Execl Throughput                                 43.0       2779.9    646.5
File Copy 1024 bufsize 2000 maxblocks          3960.0    1071347.1   2705.4
File Copy 256 bufsize 500 maxblocks            1655.0     379154.4   2291.0
File Copy 4096 bufsize 8000 maxblocks          5800.0     865191.6   1491.7
Pipe Throughput                               12440.0    1715069.9   1378.7
Pipe-based Context Switching                   4000.0     246971.9    617.4
Process Creation                                126.0       7716.3    612.4
Shell Scripts (1 concurrent)                     42.4       8359.6   1971.6
Shell Scripts (8 concurrent)                      6.0       1150.8   1918.1
System Call Overhead                          15000.0    1630399.7   1086.9
                                                                   ========
System Benchmarks Index Score                                        1413.9




======= Copy and paste your results to the VPSMARK =======

http://www.vpsmark.com/ .sh update - 2017-08-31



real    56m6.413s
user    46m47.169s
sys     48m27.982s

三、内存性能测试

使用memtester工具对嵌入式Linux内存压力测试

memtester是一款内存压力测试工具,通过测试给定内存大小所用的时间来查看内存的性能。

下载 memtester

# 下载
wget https://pyropus.ca./software/memtester/old-versions/memtester-4.6.0.tar.gz --no-check-certificate

# 解压
tar -xvzf memtester-4.6.0.tar.gz

# 编译
cd memtester-4.6.0
make -j6

Atlas 200DK(Model: 3000)

# 对1G内存测试1次
time ./memtester 1G 1
Loop 1/1:
  Stuck Address       : ok
  Random Value        : ok
  Compare XOR         : ok
  Compare SUB         : ok
  Compare MUL         : ok
  Compare DIV         : ok
  Compare OR          : ok
  Compare AND         : ok
  Sequential Increment: ok
  Solid Bits          : ok
  Block Sequential    : ok
  Checkerboard        : ok
  Bit Spread          : ok
  Bit Flip            : ok
  Walking Ones        : ok
  Walking Zeroes      : ok
  8-bit Writes        : ok
  16-bit Writes       : ok

Done.

real    1m47.132s
user    1m35.300s
sys     0m9.781s

Atlas 200I DK A2

# 对1G内存测试1次
time ./memtester 1G 1
root@davinci-mini:~/Downloads/memtester-4.6.0# time ./memtester 1G 1
memtester version 4.6.0 (64-bit)
Copyright (C) 2001-2020 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffffffffffff000
want 1024MB (1073741824 bytes)
got  1024MB (1073741824 bytes), trying mlock ...locked.
Loop 1/1:
  Stuck Address       : ok
  Random Value        : ok
  Compare XOR         : ok
  Compare SUB         : ok
  Compare MUL         : ok
  Compare DIV         : ok
  Compare OR          : ok
  Compare AND         : ok
  Sequential Increment: ok
  Solid Bits          : ok
  Block Sequential    : ok
  Checkerboard        : ok
  Bit Spread          : ok
  Bit Flip            : ok
  Walking Ones        : ok
  Walking Zeroes      : ok
  8-bit Writes        : ok
  16-bit Writes       : ok

Done.

real    17m25.442s
user    17m19.288s
sys     0m1.607s
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花花少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值