April 8, 2013

ODROID-U2 Part 2: Benchmarking the ARM Beast

Last week's article discussed some of the broad differences between the ODroid-U2 machine and other ARM offerings. While ARM CPUs offer wonderful computing power per watt, in this article we'll dig into just how fast the ODroid-U2 can perform various tasks. I'll throw in some benchmarks from large desktop machines so you can get an idea of whether the ODroid-U2 might be fast enough to perform your given workload.

odroid with cardsBenchmarks are always a difficult topic. Apart from them being hard to perform well, it is difficult even working out what tests are going to be relevant to users. If you are looking to use the ODroid as a network server, you are likely to be interested in operations like cryptographic digests and signature generation and verification. As the ODroid can use a special eMMC card, you are also likely to be interested in how well that performs relative to a normal microSD card.

Openssl Benchmark

The openssl package includes a benchmark that uses a single core of the CPU and performs various speed tests. You can run this test with your installed openssl using "openssl speed" and in a bunch of minutes you will have figures for various tasks on various sizes of data. To make sure I was comparing things fairly close, I compiled openssl-1.0.1e on both the desktop and ODroid-U2. Unfortunately I was using different versions of gcc on both platforms.

ODroid-U2: gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Fedora-18: gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8)

Luckily, compiling openssl is itself a good benchmark. It took about 4 times longer to compile on the ODroid-U2 machine than an Intel 2600K (both running at normal specifications, ie, no overclock). I used nice make -j 4 on both machines, so I was only using 4 cores on the 2600K and not taking any advantage of hyperthreading.

ODroid-U2
real    3m59.897s
user    5m52.300s
sys     0m32.840s
Fedora-18/Intel 2600K
real    0m59.684s
user    1m6.102s
sys     0m12.216s

So now on to the openssl benchmark results. For digests, sha256, md5, and sha1 are about 3, 5, and 6 times faster on the Intel 2600K chip than the ODroid. For encryption, aes-256 is about twice as fast on the Intel 2600K. The larger standouts are RSA sign and verify which range at about 16-18 times faster on the Intel 2600K. For such a low power draw chip the aes-256 is surprisingly fast on the ODroid.

The Mail400 GPU on the ODroid when tested using the glmark22012.08 gives an overall score of 78. The first tests for build, texture, and shading all run in the ballpark of 100 Frames Per Second (FPS). The phong shading drops back to 75 FPS.

eMMC Benchmark

I bought the 16Gb eMMC card with my ODroid. For benchmarking I have created a roughly 8.5Gb partition starting at address 1153,2288. I created a fresh ext4 filesystem with default parameters, and ran bonnie++ skipping the byte at a time tests. The setup is shown below:

# fdisk -l mmcblk0 | grep mmcblk0p3
/dev/mmcblk0p3        11532288    30777343     9622528   83  Linux
# mkfs.ext4 /dev/mmcblk0p3
# mount /dev/mmcblk0p3 /home/ben/tmp
# chown ben:ben /home/ben/tmp
# su -l ben
$ cd /home/ben/tmp
$ /usr/sbin/bonnie++ -f -m odroid-emmc -d `pwd`

On the eMMC card, sequential output is around 16Mb/s and drops to 12Mb/s on rewrite. Sequential input is at 61Mb/s with around 1300 seeks/s. As for file operations, around 10,000 files can be created and deleted per second. To compare, I used a SanDisk SDSDQU-016G Mobile Ultra microSDHC (Class 10) microSD card, creating a 9Gb partition on it and again using ext4 as the filesystem. Sequential output dropped to around 50-55% of the speed, with rewrite being less than 50% as fast. Sequential input was a major loss running at about 30% of the speed of the eMMC card.

Web Browsing Test

For testing Web browsing performance, I used Firefox on both machines and ran the Octane Javascript benchmark. The Intel 2600K wins as expected, getting 9667 with the ODroid getting 1411 overall. The devil is in the details of course, the Mandreel test is 60 times faster on the 2600K, while the regexp test is only 3.5 times faster on the 2600K. The below table shows how many times faster the Intel 2600K machine ran the Octane benchmark relative to the ODroid-U2.

Richards:  4.5
CodeLoad:  4.9
Splay:     5.3
NavierStokes: 5.8
Crypto:    6.2
DeltaBlue: 6.4

Good Enough for Desktop?

The KDE effects Desktop Grid and Present Windows both have a small noticeable initial delay from when the hotkey is pressed to when the effect is in place. But both effects are usable with four desktops at 720p. The ODROID-U2 is fast enough to replace some desktop machines while living in 5 watts of power at idle and up to around 10 watts under full load. While it doesn't have the speed to replace high end desktop machines, it is fast enough to be put to many good uses. 

Click Here!