Mal schauen was wir so für's Geld bekommen
Wer Vergleichswerte zum ROCKPro64 braucht -> https://forum.frank-mankel.org/topic/80/benchmarks/5
Verbauter Speicher im Atomic Pi
zum Vergleich im ROCKPro64
Software
Das System was ich hier teste ist ein Ubuntu mit LXDE Oberfläche.
Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.15.18-dli x86_64)
Linux localhost 4.15.18-dli #1 SMP Fri Feb 22 15:10:35 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
CPU
atomicpi@localhost:~$ sysbench --test=cpu --cpu-max-prime=20000 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: 1
Initializing random number generator from current time
Prime numbers limit: 20000
Initializing worker threads...
Threads started!
CPU speed:
events per second: 142.17
General statistics:
total time: 10.0063s
total number of events: 1423
Latency (ms):
min: 6.91
avg: 7.03
max: 10.90
95th percentile: 7.84
sum: 10003.64
Threads fairness:
events (avg/stddev): 1423.0000/0.00
execution time (avg/stddev): 10.0036/0.00
Speicher
atomicpi@localhost:~$ cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1 264791 iterations per second for 256-bit key
PBKDF2-sha256 344020 iterations per second for 256-bit key
PBKDF2-sha512 209046 iterations per second for 256-bit key
PBKDF2-ripemd160 211406 iterations per second for 256-bit key
PBKDF2-whirlpool 160824 iterations per second for 256-bit key
argon2i 4 iterations, 377254 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
argon2id 4 iterations, 372352 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
# Algorithm | Key | Encryption | Decryption
aes-cbc 128b 214.5 MiB/s 313.4 MiB/s
serpent-cbc 128b 22.7 MiB/s 70.3 MiB/s
twofish-cbc 128b 56.3 MiB/s 64.1 MiB/s
aes-cbc 256b 171.7 MiB/s 244.4 MiB/s
serpent-cbc 256b 27.3 MiB/s 70.4 MiB/s
twofish-cbc 256b 64.7 MiB/s 64.1 MiB/s
aes-xts 256b 250.9 MiB/s 255.8 MiB/s
serpent-xts 256b 67.1 MiB/s 67.8 MiB/s
twofish-xts 256b 61.4 MiB/s 61.2 MiB/s
aes-xts 512b 207.5 MiB/s 209.1 MiB/s
serpent-xts 512b 68.3 MiB/s 67.8 MiB/s
twofish-xts 512b 61.3 MiB/s 61.1 MiB/s
Und noch ein Test
atomicpi@localhost:~/tinymembench$ ./tinymembench
tinymembench v0.4.9 (simple benchmark for memory throughput and latency)
==========================================================================
== Memory bandwidth tests ==
== ==
== Note 1: 1MB = 1000000 bytes ==
== Note 2: Results for 'copy' tests show how many bytes can be ==
== copied per second (adding together read and writen ==
== bytes would have provided twice higher numbers) ==
== Note 3: 2-pass copy means that we are using a small temporary buffer ==
== to first fetch data into it, and only then write it to the ==
== destination (source -> L1 cache, L1 cache -> destination) ==
== Note 4: If sample standard deviation exceeds 0.1%, it is shown in ==
== brackets ==
==========================================================================
C copy backwards : 1848.7 MB/s
C copy backwards (32 byte blocks) : 1849.6 MB/s
C copy backwards (64 byte blocks) : 1849.3 MB/s
C copy : 1855.4 MB/s
C copy prefetched (32 bytes step) : 1658.4 MB/s
C copy prefetched (64 bytes step) : 1662.2 MB/s
C 2-pass copy : 1648.0 MB/s
C 2-pass copy prefetched (32 bytes step) : 1323.2 MB/s
C 2-pass copy prefetched (64 bytes step) : 1320.0 MB/s
C fill : 2914.0 MB/s
C fill (shuffle within 16 byte blocks) : 2913.6 MB/s
C fill (shuffle within 32 byte blocks) : 2913.5 MB/s
C fill (shuffle within 64 byte blocks) : 2913.5 MB/s
---
standard memcpy : 2709.4 MB/s (1.3%)
standard memset : 2951.1 MB/s (0.5%)
---
MOVSB copy : 1737.5 MB/s
MOVSD copy : 1737.7 MB/s (0.2%)
SSE2 copy : 1823.7 MB/s
SSE2 nontemporal copy : 2547.6 MB/s
SSE2 copy prefetched (32 bytes step) : 1836.6 MB/s
SSE2 copy prefetched (64 bytes step) : 1837.3 MB/s
SSE2 nontemporal copy prefetched (32 bytes step) : 1898.4 MB/s (0.5%)
SSE2 nontemporal copy prefetched (64 bytes step) : 1928.1 MB/s (0.4%)
SSE2 2-pass copy : 1766.7 MB/s
SSE2 2-pass copy prefetched (32 bytes step) : 1497.6 MB/s
SSE2 2-pass copy prefetched (64 bytes step) : 1509.4 MB/s
SSE2 2-pass nontemporal copy : 1160.6 MB/s
SSE2 fill : 2948.8 MB/s
SSE2 nontemporal fill : 4284.4 MB/s (0.3%)
==========================================================================
== Framebuffer read tests. ==
== ==
== Many ARM devices use a part of the system memory as the framebuffer, ==
== typically mapped as uncached but with write-combining enabled. ==
== Writes to such framebuffers are quite fast, but reads are much ==
== slower and very sensitive to the alignment and the selection of ==
== CPU instructions which are used for accessing memory. ==
== ==
== Many x86 systems allocate the framebuffer in the GPU memory, ==
== accessible for the CPU via a relatively slow PCI-E bus. Moreover, ==
== PCI-E is asymmetric and handles reads a lot worse than writes. ==
== ==
== If uncached framebuffer reads are reasonably fast (at least 100 MB/s ==
== or preferably >300 MB/s), then using the shadow framebuffer layer ==
== is not necessary in Xorg DDX drivers, resulting in a nice overall ==
== performance improvement. For example, the xf86-video-fbturbo DDX ==
== uses this trick. ==
==========================================================================
MOVSD copy (from framebuffer) : 34.4 MB/s (0.3%)
MOVSD 2-pass copy (from framebuffer) : 33.8 MB/s
SSE2 copy (from framebuffer) : 34.5 MB/s
SSE2 2-pass copy (from framebuffer) : 33.9 MB/s
==========================================================================
== Memory latency test ==
== ==
== Average time is measured for random memory accesses in the buffers ==
== of different sizes. The larger is the buffer, the more significant ==
== are relative contributions of TLB, L1/L2 cache misses and SDRAM ==
== accesses. For extremely large buffer sizes we are expecting to see ==
== page table walk with several requests to SDRAM for almost every ==
== memory access (though 64MiB is not nearly large enough to experience ==
== this effect to its fullest). ==
== ==
== Note 1: All the numbers are representing extra time, which needs to ==
== be added to L1 cache latency. The cycle timings for L1 cache ==
== latency can be usually found in the processor documentation. ==
== Note 2: Dual random read means that we are simultaneously performing ==
== two independent memory accesses at a time. In the case if ==
== the memory subsystem can't handle multiple outstanding ==
== requests, dual random read has the same timings as two ==
== single reads performed one after another. ==
==========================================================================
block size : single random read / dual random read, [MADV_NOHUGEPAGE]
1024 : 0.0 ns / 0.0 ns
2048 : 0.0 ns / 0.0 ns
4096 : 0.0 ns / 0.0 ns
8192 : 0.0 ns / 0.0 ns
16384 : 0.0 ns / 0.0 ns
32768 : 1.8 ns / 3.3 ns
65536 : 4.5 ns / 7.4 ns
131072 : 5.8 ns / 9.2 ns
262144 : 8.6 ns / 12.7 ns
524288 : 10.6 ns / 15.3 ns
1048576 : 12.5 ns / 18.1 ns
2097152 : 82.6 ns / 126.2 ns
4194304 : 117.9 ns / 161.6 ns
8388608 : 136.9 ns / 177.7 ns
16777216 : 146.9 ns / 186.7 ns
33554432 : 153.0 ns / 193.4 ns
67108864 : 171.9 ns / 221.6 ns
block size : single random read / dual random read, [MADV_HUGEPAGE]
1024 : 0.0 ns / 0.0 ns
2048 : 0.0 ns / 0.0 ns
4096 : 0.0 ns / 0.0 ns
8192 : 0.0 ns / 0.0 ns
16384 : 0.0 ns / 0.0 ns
32768 : 1.8 ns / 3.3 ns
65536 : 4.5 ns / 7.4 ns
131072 : 5.8 ns / 9.2 ns
262144 : 8.6 ns / 12.7 ns
524288 : 10.0 ns / 14.5 ns
1048576 : 12.1 ns / 17.4 ns
2097152 : 76.1 ns / 117.1 ns
4194304 : 107.5 ns / 147.0 ns
8388608 : 123.0 ns / 156.9 ns
16777216 : 130.7 ns / 160.6 ns
33554432 : 134.8 ns / 162.5 ns
67108864 : 153.1 ns / 185.4 ns
Fazit
Der Speicher ist deutlich langsamer als beim ROCKPro64, war zu erwarten. Ich kann aber alle beruhigen, das fühlt sich auf dem Desktop recht gut an. Habe bei dieser Preisklasse eher nicht damit gerechnet, das der Desktop überhaupt vernünftig läuft. Aber, die ersten Minuten des Testens, es ist gut nutzbar. Wenn, wie nicht anders zu erwarten, das ein oder andere nicht funktioniert.