Hier stellt Phoronix eine Suite für ARM-SBCs vor https://www.phoronix.com/scan.php?page=article&item=16-armlinux-sep2018&num=1 In diesem Benchmark werden folgende Einzel-Benchmarks durchgeführt - Tinymembench, memcopy, memset - TTSIOD - 7-ZIP Compression - C-RAY (Floating Point) - PrimeSieve - AOBench - FLAC Audi encoding - Lame Encoding - Perl-Benchmark - Redis - PyBench - PHPBench - Git
Thomas Kaiser (Armbian) hat eine eigene Test-Suite, die etwas weniger Benchmarks bietet https://github.com/ThomasKaiser/sbc-bench
Sind diese Tests ausreichend und aussagekräftig genug? Wo kommen SBCs üblicherweise zum Einsatz?
x264/x265 encoding/decoding MP3
NAS
Speicherdurchsatz Datenbanken
Robotik
Machine Vision, OpenCV Machine Learning (numpy, floating point) Python
Firewall/VPN
Netzwerkdurchsatz Verschlüsselung
Webserver
Netzwerkdurchsatz PHP
Steuerzentrale
node.js Node-RED
Caffee
sudo apt install protobuf-compiler libgflags-dev libgoogle-glog-dev libleveldb-dev liblmdb-dev libsnappy-dev libhdf5-serial-dev libatlas-dev libatlas-base-dev
https://www.anandtech.com/show/10353/investigating-cavium-thunderx-48-arm-cores/17 https://www.phoronix.com/scan.php?page=article&item=odroid-xu4-arm&num=1
https://openbenchmarking.org/result/1812226-SP-1809111RA67
Nano Pi M4
https://www.friendlyarm.com/index.php?route=product/product&product_id=234 RockPro64 https://www.pine64.org/?page_id=61454
Raspberry Pi Ubuntu 18.04
http://qoe6rdttrncugsow.myfritz.net/bike/public/raspberrypi-ubuntu-rpi3Bplus/
ROS installieren
sudo apt-get install dirmngr
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
sudo apt-get update
sudo apt-get install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake
sudo rosdep init
rosdep update
mkdir -p ~/ros_catkin_ws
cd ros_catkin_ws/
rosinstall_generator desktop --rosdistro kinetic --deps --wet-only --tar > kinetic-desktop-wet.rosinstall
wstool init src kinetic-desktop-wet.rosinstall
rosdep install -y --from-paths src --ignore-src --rosdistro kinetic -r --os=debian:stretch
swapon /dev/sda1
sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/kinetic -j2
Zeit messen, wie lange ROS übersetzt
Phoronix-Test-Suite C-Ray, CacheBench, OpenCV,
Für Caffe müssen folgende Pakete (unter Ubuntu 16.04) installiert sein.
sudo apt install protobuf-compiler libgflags-dev libgoogle-glog-dev libleveldb-dev liblmdb-dev libsnappy-dev libhdf5-serial-dev libatlas-dev libatlas-base-dev
Auf dem Rapberry Pi muss man anschließend noch Symlinks für libhdf5.so und libhdf5_hl setzen, weil die Dateien unter Debian alle das Postfix “serial” im Namen enthalten
cd /usr/lib/arm-linux-gnuabihf
sudo ln -s libhdf5_serial.so libhdf5.so
sudo ln -s libhdf5_serial_hl.so libhdf5_hl.so
für Single-Board-Computer Anleitung
Installieren Phoronix Test Suite
(Debian auf deutsches Layout: setxkbmap de
)
git clone https://github.com/phoronix-test-suite/phoronix-test-suite.git
sudo apt-get install php-cli php-xml
cd phoronix-test-suite
sudo ./install-sh
phoronix-test-suite
Die Suite benötigt OpenCV3, die etwa unter Ubuntu 16.04 oder Debian 9 nicht über Paket-Manager installierbar ist
Weg a) ROS Kinetic installieren, Anleitung oben
Achtung: Debian Stretch für Armhf bringt keinen Lisp-Compiler sbcl mit, das Auflösen der Dependancies funktioniert unter Umständen nicht und der rosdep-Befehl endet mit einem Fehler
Unter http://www.sbcl.org/platform-table.html findet man die Binaries für armhf, um sbcl zu installieren.
Allerdings findet rosdep dann trotzdem kein Paket sbcl, weshalb man den Befehl mit der Option --skip-keys='sbcl'
aufrufen muss, also
rosdep install -y --from-paths src --ignore-src --rosdistro kinetic -r --os=debian:stretch --skip-keys='sbcl'
Weg b) OpenCV3 einzeln installieren exakter weg hier Installation in Linux
git clone https://github.com/Itseez/opencv.git --branch 3.3.0
cd opencv
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j2
sudo make install
dann
cd ~/.phoronix-test-suite/test-suites
a) git clone https://github.com/dabmake/MakeBench.git
b) wget https://raw.githubusercontent.com/dabmake/MakeBench/master/single-board-computer/suite-definition.xml
phoronix-test-suite benchmark single-board-computer
<?xml version="1.0"?>
<!--Phoronix Test Suite v8.6.0m1-->
<PhoronixTestSuite>
<SuiteInformation>
<Title>Singe Board Computer</Title>
<Version>1.0.0</Version>
<TestType>Other</TestType>
<Description>Benchmarks for Single Board Computer like Pi, Odroid and Tinker Board</Description>
<Maintainer>dab/Make</Maintainer>
</SuiteInformation>
<Execute>
<Test>pts/pybench-1.1.2</Test>
<Arguments></Arguments>
<Description></Description>
<OverrideTestOptions></OverrideTestOptions>
</Execute>
<Execute>
<Test>system/openssl-1.11.0</Test>
<Arguments></Arguments>
<Description></Description>
<OverrideTestOptions></OverrideTestOptions>
</Execute>
<Execute>
<Test>pts/opencv-bench-1.0.0</Test>
<Arguments></Arguments>
<Description></Description>
<OverrideTestOptions></OverrideTestOptions>
</Execute>
<Execute>
<Test>pts/c-ray-1.2.0</Test>
<Arguments></Arguments>
<Description></Description>
<OverrideTestOptions></OverrideTestOptions>
</Execute>
<Execute>
<Test>pts/encode-mp3-1.7.2</Test>
<Arguments></Arguments>
<Description></Description>
<OverrideTestOptions></OverrideTestOptions>
</Execute>
<Execute>
<Test>pts/x264-2.5.0</Test>
<Arguments></Arguments>
<Description></Description>
<OverrideTestOptions></OverrideTestOptions>
</Execute>
<Execute>
<Test>pts/dbench-1.0.0</Test>
<Arguments>1</Arguments>
<Description>Client Count: 1</Description>
<OverrideTestOptions></OverrideTestOptions>
</Execute>
<Execute>
<Test>pts/cachebench-1.1.2</Test>
<Arguments>-b</Arguments>
<Description>Test: Read / Modify / Write</Description>
<OverrideTestOptions></OverrideTestOptions>
</Execute>
<Execute>
<Test>pts/tinymembench-1.0.2</Test>
<Arguments></Arguments>
<Description></Description>
<OverrideTestOptions></OverrideTestOptions>
</Execute>
<Execute>
<Test>pts/iozone-1.9.5</Test>
<Arguments>-r 64k -s 512M -i0 #WRITE</Arguments>
<Description>Record Size: 64Kb - File Size: 512MB - Disk Test: Write Performance</Description>
<OverrideTestOptions></OverrideTestOptions>
</Execute>
<Execute>
<Test>pts/iozone-1.9.5</Test>
<Arguments>-r 64k -s 512M -i0 -i1 #READ</Arguments>
<Description>Record Size: 64Kb - File Size: 512MB - Disk Test: Read Performance</Description>
<OverrideTestOptions></OverrideTestOptions>
</Execute>
</PhoronixTestSuite>
phoronix-test-suite benchmark 1901228-SP-PINE64MAK24 1901161-SP-TINKERBOA31 1901154-SP-LPAMAKEBE51 1901200-SP-UPBOARDMA49 1901184-SP-PI3BMAKEB62
Option: local per merge result
phoronix-test-suite benchmark 1901275-SP-TINKERBOA65 1901263-SP-ROCK64MAK84 1901258-SP-ROCK64MAK52 1901184-SP-PI3BMAKEB62 1901200-SP-UPBOARDMA49 1901228-SP-PINE64MAK24 1901166-SP-TINKERBOA71 1901140-SP-LATTEPAND17
https://openbenchmarking.org/result/1901275-SP-TINKERBOA65,1901263-SP-ROCK64MAK84,1901258-SP-ROCK64MAK52,1901184-SP-PI3BMAKEB62,1901200-SP-UPBOARDMA49,1901228-SP-PINE64MAK24,1901166-SP-TINKERBOA71,1901140-SP-LATTEPAND17,1901273-SP-ORANGEPIP99