Hi everyone,
I’m writing this post just to publish some results of benchmarks i’ve done lately on the ARM devices i have. They seem pretty popular, so i guess i could publish them on my blog so other people have it easy to find them.
== memcpy ==
The most popular one is the memcpy benchmark. It was written by a gentoo user and friend Siarhei Siamashka (ssvb is his nick on irc.freenode.net). He published it on: http://sourceware.org/ml/libc-ports/2009-07/msg00000.html
I simply ran it on the devices i have.
You can get the latest results of this benchmark on the devices i’ve been able to run the benchmark on the following page: http://dev.gentoo.org/~armin76/arm/memcpy-neon_result.txt
== Gentoo build times ==
If you’ve read my blog before, you’ll know i have a page where i list the buildtimes of different basic packages(binutils, gcc, glibc and portage) on different kind of machines to compare it. The page is here: http://dev.gentoo.org/~armin76/arm/buildtimes.xml
Unfortunately those results have a problem, i only did a part of them myself, the rest were provided by other people, and as you can see they were using different kind of storage… so last year i decided i could do a new page where all the build times were using the same storage (USB stick), same package versions and same configuration…
The result is this one: http://dev.gentoo.org/~armin76/arm/nwbuildtimes.xml
Hope you find them useful.
January 29, 2011 at 18:40 |
I’ve searched high and low and I still haven’t been able to see how powerful SheevaPlug etc. are in practice.
What I’m aiming for is using it as my personal server and run on it Drupal, GNUsocial, ownCloud, RoundCube, Postfix, an XMPP server, maybe YaCy… would it be able to cope with that?
Sorry for being slightly off-topic, but you’re the only person I know of that runs Gentoo on it :\
January 29, 2011 at 18:48 |
Well, it depends on what kind of stress do those applications produce to the machine. I’d say the sheevaplug can cope with what you’re asking…have you tried asking in the sheevaplug forums?
February 1, 2011 at 20:44
Not yet. But I asked on irc://irc.freenode.net/#freedombox and some admin there said any dynamic content (PHP, Python, Perl, Ruby etc.) wouldn’t be a smart idea. And that double goes for Java (e.g. YaCy).
BTW, is Gentoo a good solution for a *Plug or is a binary distro better suited?
February 22, 2011 at 18:48
Hi Matija,
sorry for the late reply.
Well, i can tell your for sure that at gentoo we don’t yet support java on arm. Simply because no one of the devs has any interest on it. Definitely java stuff is going to work better on a more common architecture. Obviously an x86 box is more suited for web pages, it highly depends on how much traffic do you have and whats the performance you expect from it. Keep in mind that an x86 machine will always(for some years, at least) beat an arm machine in all aspects.
Regarding if gentoo is a good solution. Well, depends, compiling stuff, like gcc, on the plug takes around 5 hours. That would mean having the cpu at 100% of usage during 5 hours. And i always recommend that before installing gentoo on a device like this, you should know how gentoo works(ie, having another machine with gentoo).
Hope it helps
January 30, 2011 at 15:48 |
While these tests don’t represent a lot it still shows the tegra2 and the omap4 are pretty similar (graphics and DSP excluded) (well, they should be anyway)
it would be interesting to run a bench suite on them, including 3D, video encode, etc
January 30, 2011 at 15:49 |
Sorry for the double post, actually i wonder if you would be able to run some real encode such as a small 720p source on x264 software+neon (no proprietary DSP) on both tegra and omap boards and tell us the difference in FPS.
January 31, 2011 at 17:38 |
Feel free to give me the commands & apps & files needed and i can do it
January 31, 2011 at 15:34 |
Raul, could you also be so kind and run “standardized” stream benchmark on your available hardware? http://www.cs.virginia.edu/stream/
Thanks! Karel
January 31, 2011 at 17:38 |
I’ll try
January 31, 2011 at 18:21
Here are commands as you requested:
wget http://www.cs.virginia.edu/stream/FTP/Code/stream.c
gcc -O3 stream.c -o stream
./stream
Thanks for testing! Karel
January 31, 2011 at 18:29
Hey Karel,
the commands question was for zou, not for you
Nevertheless thanks
February 23, 2011 at 19:11
Hi Karel,
here are your results:
http://dev.gentoo.org/~armin76/arm/stream_bench.txt
February 1, 2011 at 16:34 |
It should be noted that Raúl’s Pandaboard has slower memory than what is used on standard Pandaboards.
February 24, 2011 at 06:43 |
> It should be noted that Raúl’s Pandaboard has slower memory than what is used on standard Pandaboards.
It should be also noted that Raúl’s Pandaboard does not have cache controller properly configured (its kernel is missing the following patch): http://comments.gmane.org/gmane.linux.ports.arm.omap/46337/
So double disadvantage for panda here.
Additional thing to check related to ‘stream’ benchmark is -fprefetch-loop-arrays gcc option. It enables software prefetch instructions emitted by the compiler and greatly improves performance on such workloads. That is if the target processor does not have hardware prefetch. Cortex-A8 does not have hardware prefetch for sure (so no good performance for Efika without it). Cortex-A9 *may* have a working hardware prefetch unless it is misconfigured by the boot rom, bootloader or the kernel.
Another thing regarding ‘steam’ benchmark is that its MB/s numbers are inflated compared to ‘memcpy’ benchmark (it counts both read and written data separately, so steam ‘Copy’ test shows 2x higher numbers than ‘memcpy’ for the same performance).
February 22, 2011 at 18:53 |
Thanks Raúl for your answers.
February 23, 2011 at 19:56 |
Hi Raul, thanks a lot for the stream bench! Tegra2 looks really interesting. Karel
June 17, 2011 at 17:03 |
Hi,
I’ve tried Tomcat with some networked apps and i found it actually fine for its specs,
open-jdk6, Tomcat5 on Sheeva ARM, 512M RAM,
However, I’ve tried running the same set of apps on GuruPlug Server – PLUS, Sheeva’s cousin, and it was just crashing, “OpenJDK was slightly higher version”
So I guess the open-jdk6 on ARM is buggy in certain functions regarding opening sockets, etc…I haven’t got to the bottom of it yet, but JVM just crashes!
also, i didn’t find it so easy to downgrade JDK on this little beast
November 12, 2011 at 09:53 |
Memory benchmarks for a OMAP 4460 – looks about 2x improvement over my rev ES2.1 pandaboard
# ./memspeed_a9 8192k 8M
offset 8388608, 0
buffers 0×40001000 0×40801000
copy libc 573 MB/s
copy Android v5 575 MB/s
copy Android NEON 604 MB/s
copy INT32 523 MB/s
copy ASM ARM 564 MB/s
copy ASM ARM A9 586 MB/s
copy ASM VLDM 64 599 MB/s
read ASM ARM 1487 MB/s
read ASM VLDM 1445 MB/s
write libc 2480 MB/s
write ASM ARM 2515 MB/s
write ASM VSTM 2513 MB/s