Zynq Java Performance Benchmarks

Moderator: michal.warecki

Zynq Java Performance Benchmarks

Postby durby » Sat Oct 18, 2014 9:02 pm

I am interested in running a java server program on the zynq and using the epiphany as an accelerator for some functions.
As a quick and dirty benchmark for the zynq, I wrote a java program that initialized a byte array with random values and then iterated through it, summing all the values up. I compared the performance to my mac (2.7GHz Intel Core i5). The results were a little surprising: the parallella was ~500X slower to initialize the array and ~900X slower to perform the sum. Is this expected? I guess I was not expecting such a poor result, so my first thought is that I must be doing something wrong. Anybody have any thoughts? :?
durby
 
Posts: 2
Joined: Sat Oct 18, 2014 8:47 pm

Re: Zynq Java Performance Benchmarks

Postby aolofsson » Sat Oct 18, 2014 10:29 pm

It would help a lot if you could share the code. Git is great but copy paste also works. Otherwise we can only guess at what the problem is??

The two most common reasons for slow epiphany performance:
-fetching instructions directly from DRAM (100X slow down)
-fetching data directly from DRAM (100x slow down)

Andreas
User avatar
aolofsson
 
Posts: 1005
Joined: Tue Dec 11, 2012 6:59 pm
Location: Lexington, Massachusetts,USA

Re: Zynq Java Performance Benchmarks

Postby notzed » Sun Oct 19, 2014 12:01 am

Is this just testing the JVM, or running epiphany code?

For the former, start with the oracle jdk, the openjdk is no-where near up to scratch on ARM. http://www.oracle.com/technetwork/java/ ... 87472.html IIRC you need a free account to d/l it.

For the latter, how are you running the code (opencl, esdk, etc)? Just adding array elements isn't a good test for any accelerator hardware because it's too memory heavy.

In either case I recommend posting/attaching your benchmark. All micro-benchmarks have gotchas and bytebuffers have some of its own,
notzed
 
Posts: 331
Joined: Mon Dec 17, 2012 12:28 am
Location: Australia

Re: Zynq Java Performance Benchmarks

Postby durby » Sun Oct 19, 2014 4:45 am

Right now im only running on the JVM, but i'm using the openjdk. Im going to switch to oracle jdk as suggested by notzed and i'll see what that gets me. My hope is to use the JVM for a server application I am developing, and accelerate certain functions on the Epiphany. Right now my main concern is getting better JVM performance.

EDIT: I updated from openjdk to Oracle 8 for ARM. Performance now inline with my expectations.

Initialize 5 million element byte array with random values:
OpenJDK on Parallella: 77316ms
Oracle on Parallella: 2092ms
Oracle on mac: 136ms

Sum over 5M element byte array:
OpenJDK on Parallella: 2286ms
Oracle on Parallella (1st access): 108ms
Oracle on mac (1st access): 2ms
Oracle on Parallella (2nd access): 62ms
Oracle on mac (2nd access): 0ms

Sum over 100k element byte array:
Oracle on Parallella (1st access): 6ms
Oracle on mac (1st access): 2ms
Oracle on Parallella (2nd access): 2ms
Oracle on mac (2nd access): 0ms

Sum from 0 to 2^20:
OpenJDK on Parallella: 255ms
Oracle on Parallella: 15ms
Oracle on mac: 4ms
durby
 
Posts: 2
Joined: Sat Oct 18, 2014 8:47 pm


Return to Java

Who is online

Users browsing this forum: No registered users and 6 guests