Linux-Bench - Qualcomm Dragonboard 410c

Patrick

Administrator
Staff member
Dec 21, 2010
11,971
4,932
113
Run #1 completed: Linux-Bench Linux CPU Benchmarks by ServeTheHome and ServeThe.Biz

Looks like we got results for UnixBench (partial), c-ray, OpenSSL and 7-zip.

  • NAMD, NPB I think we may need to re-compile for ARM - @Chuckleb I may need your help since you were the guru on getting this done for x86
  • Redis looks like the same bug we had issues with on the x86 side and Ubuntu 15.04/ 15.10
  • Sysbench appears not to be in the Linaro Debian release. This one may be the low hanging fruit to get working
Code:
root@linaro-alip:~# apt-get install sysbench -y
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  libmysqlclient18 mysql-common
The following NEW packages will be installed:
  libmysqlclient18 mysql-common sysbench
0 upgraded, 3 newly installed, 0 to remove and 18 not upgraded.
Need to get 0 B/762 kB of archives.
After this operation, 3653 kB of additional disk space will be used.
Selecting previously unselected package mysql-common.
dpkg: unrecoverable fatal error, aborting:
 files list file for package `linux-headers-4.4.0-linaro-lt-qcom' contains empty filename
E: Sub-process /usr/bin/dpkg returned an error code (2)
  • Hardinfo - apt-get install hardinfo does not work on the arm64 Linaro branch.
Code:
root@linaro-alip:~# apt-get install hardinfo
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package hardinfo
  • STREAM - likely need a few tweaks to get working
  • UnixBench - I think this is close to working fully so it may be something to work on soon
 

Patrick

Administrator
Staff member
Dec 21, 2010
11,971
4,932
113
OK the issue that was:
Code:
dpkg: unrecoverable fatal error, aborting:
files list file for package `linux-headers-4.4.0-linaro-lt-qcom' contains empty filename
I managed to fix by:
Code:
cd /var/lib/dpkg/info
rm linux-headers-4.4.0-linaro-lt-qcom*
apt-get update
Update - looks like we have sysbench "working"
Code:
sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 4

Doing CPU performance benchmark

Threads started!
Done.

Maximum prime number checked in CPU test: 300000


Test execution summary:
    total time:                          298.1018s
    total number of events:              10000
    total time taken by event execution: 1192.3072
    per-request statistics:
         min:                                118.96ms
         avg:                                119.23ms
         max:                                249.07ms
         approx.  95 percentile:             119.39ms

Threads fairness:
    events (avg/stddev):           2500.0000/3.67
    execution time (avg/stddev):   298.0768/0.02
@Chuckleb no worries. I think this is going to take a bit of work.
 
Last edited:

Patrick

Administrator
Staff member
Dec 21, 2010
11,971
4,932
113
PyKCB.py
Code:
scripts/kconfig/conf  --silentoldconfig Kconfig
.config:8204:warning: symbol value 'm' invalid for KVM
*
* Restart config...
*
*
* Platform selection
*
Broadcom iProc SoC Family (ARCH_BCM_IPROC) [N/y/?] (NEW) aborted!

Console input/output is redirected. Run 'make oldconfig' to update configuration.

scripts/kconfig/Makefile:37: recipe for target 'silentoldconfig' failed
make[2]: *** [silentoldconfig] Error 1
Makefile:531: recipe for target 'silentoldconfig' failed
make[1]: *** [silentoldconfig] Error 2
make: *** No rule to make target 'include/config/auto.conf', needed by 'include/config/kernel.release'.  Stop.
Interesting.
 

Attachments

mstone

Active Member
Mar 11, 2015
505
117
43
42
I don't think the kernel compile part will ever work in a meaningful way across architectures.

What's the problem with STREAM? That code runs on just about anything, and seems to work fine in emulation.
 

Patrick

Administrator
Staff member
Dec 21, 2010
11,971
4,932
113
I am going to step through STREAM and see what the issue is:
Code:
/dev/fd/62: line 360: ./stream-me: No such file or directory
 

mstone

Active Member
Mar 11, 2015
505
117
43
42
I am going to step through STREAM and see what the issue is:
Code:
/dev/fd/62: line 360: ./stream-me: No such file or directory
ah, it's the way it's compiled: -march=native isn't valid on aarch64 on gcc 5.
 

Patrick

Administrator
Staff member
Dec 21, 2010
11,971
4,932
113
OK STREAM will work we just need to change a line in the compile part for ARM:
Code:
-------------------------------------------------------------
STREAM version $Revision: 5.10 $
-------------------------------------------------------------
This system uses 8 bytes per array element.
-------------------------------------------------------------
Array size = 10000000 (elements), Offset = 0 (elements)
Memory per array = 76.3 MiB (= 0.1 GiB).
Total memory required = 228.9 MiB (= 0.2 GiB).
Each kernel will be executed 10 times.
The *best* time for each kernel (excluding the first iteration)
will be used to compute the reported bandwidth.
-------------------------------------------------------------
Number of Threads requested = 4
Number of Threads counted = 4
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 61655 microseconds.
   (= 61655 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function    Best Rate MB/s  Avg time     Min time     Max time
Copy:            2218.5     0.072932     0.072120     0.073203
Scale:           3296.8     0.048972     0.048532     0.050221
Add:             3342.7     0.071880     0.071799     0.072051
Triad:           3294.0     0.073196     0.072860     0.073849
-------------------------------------------------------------
Solution Validates: avg error less than 1.000000e-13 on all three arrays
-------------------------------------------------------------
Also a bit interesting, if you do not use the -fopenmp flag on the ARM A53 platform performance goes way down:
Code:
-------------------------------------------------------------
Function    Best Rate MB/s  Avg time     Min time     Max time
Copy:            1937.8     0.083227     0.082567     0.083963
Scale:           2757.6     0.061091     0.058021     0.064225
Add:             2494.8     0.096385     0.096200     0.096802
Triad:           2355.6     0.102100     0.101883     0.102422
-------------------------------------------------------------
Solution Validates: avg error less than 1.000000e-13 on all three arrays
-------------------------------------------------------------
Ha! @mstone I think we found the same thing! I was testing the -fopenmp v. not having it on the ARM side while you were replying. That is an easy fix.
 

Patrick

Administrator
Staff member
Dec 21, 2010
11,971
4,932
113
Redis issue:
Code:
2016-03-10 19:14:43 (1.34 MB/s) - ‘6379.conf’ saved [29602/29602]

Failed to start redis_6379.service: Unit redis_6379.service failed to load: No such file or directory.
At least that is something to work with.
 

mstone

Active Member
Mar 11, 2015
505
117
43
42
Also a bit interesting, if you do not use the -fopenmp flag on the ARM A53 platform performance goes way down
Single vs multithreaded. I'd actually argue that in general the benchmark should run both versions to get a better idea of the system's balance. E.g., a new skylake i3 can trounce an e3 in single-threaded memory bandwidth, but basically maxes out with the one thread and doesn't scale as you add more whereas the e3 keeps increasing.
 

Patrick

Administrator
Staff member
Dec 21, 2010
11,971
4,932
113
So interesting note, the benchmark did not report results for 7zip but when I ran through it manually:
upload_2016-3-11_5-35-42.png

I also think I have hardinfo working on ARM now.
upload_2016-3-11_5-36-7.png
 

Patrick

Administrator
Staff member
Dec 21, 2010
11,971
4,932
113
I would say significant progress: Linux-Bench Linux CPU Benchmarks by ServeTheHome and ServeThe.Biz

Here is the current status:
  • CPU/ motherboard detection: Core count/ thread detection works but the CPUID and such we may need to re-think how to parse.
  • c-ray: works
  • 7zip: works
  • hardinfo: works
  • openssl: works
  • stream: works
  • sysbench (CPU): works
  • UnixBench: running single threaded only - testing a fix now (not using fix limitation patch)
  • NAMD: need to recompile ARMv8 binaries
  • NPB: need to recompile ARMv8 binaries
  • redis: service not starting
This is certainly far from perfect, but looking good. I have this on a local file I have been editing but will get something live when it gets a bit more mature.