[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-graal-dev
Subject:    Re: Graal and Clojure
From:       Jules Gosnell <jules_gosnell () yahoo ! com>
Date:       2014-04-21 20:59:24
Message-ID: 535586AC.1080408 () yahoo ! com
[Download RAW message or body]

Thanks for your interest, Thomas,

Progress is currently in the form of tests - currently around 500 - most 
are generated by a huge and hairy clojure macro !

These are run on a nightly build of graal/jdk8 against a pure clojure 
control, okra simulator and okra with HSA hardware.

The tests are totally clojure-centric - I didn't see any point in 
replicating the graal unit test suite.

I currently have a small number of tests which actually crash the okra 
simulator. I can provide more detail if anyone is interested,...

The tests exercise some of the java components of the clojure runtime.

In order to start testing actual Clojure code I need support for 
everything required to compile a Clojure Function. Some part[s] of this 
is/are currrently still "unimplemented". I would be very interested in 
pursuing this with an interested Graal developer.

Meanwhile, I will keep extending my testsuite and hoping to see more and 
more tests passing as graal/okra development continues.

Thanks guys,


Jules

P.S.

I would repost all the relevant links, but apparently the dyndns service 
that I use tends to cause my posts to be filtered...You can find them 
back up this thread.









On 16/04/14 12:13, Thomas Wuerthinger wrote:
> Cool! It is very exciting to see so much progress with Clojure running on the GPU \
> via Graal. - thomas 
> On 07 Apr 2014, at 08:20, Jules Gosnell <jules_gosnell@yahoo.com> wrote:
> 
> > Good news - I reapplied the -XX:-UseHSAILDeoptimization flag (last time I tried \
> > it the code had not yet made it into my jdk8/graal build) and a lot of the \
> > instability mentioned in my last mail disappeared - particularly in the \
> > simulator. Many more tests also passed :-) 
> > http://ouroboros.dyndns-free.com/ci/job/clumatra-hardware-acceleration/
> > http://ouroboros.dyndns-free.com/ci/view/clumatra/job/clumatra-simulated-acceleration/
> >  
> > 
> > Jules
> > 
> > On 06/04/14 15:22, Jules Gosnell wrote:
> > > So, Guys,
> > > 
> > > Here is the promised update on Clumatra - an effort to get Clojure up
> > > and running on top of Graal/Okra/HSA.
> > > 
> > > - I now have a working Ubuntu/AMD HSA box.
> > > 
> > > - I have a Jenkins nightly build of JDK8 / Graal :
> > > 
> > > http://ouroboros.dyndns-free.com/ci/view/clumatra/job/graal/
> > > 
> > > - if useful, you can download the latest linux/64 tgz here (it is 300mb
> > > - I'm going to look at shrinking it:
> > > 
> > > http://ouroboros.dyndns-free.com/clumatra/jdk1.8.0-graal.tgz
> > > 
> > > - I have builds of Clumatra without, with simulated and with hardware
> > > based HSA :
> > > 
> > > http://ouroboros.dyndns-free.com/ci/view/clumatra/
> > > 
> > > - The clumatra testsuite is growing - results have been a bit unstable
> > > recently as I learnt which tests completely take out or hang the
> > > jdk8/graal jvm and which can be trusted to succeed / fail in a well
> > > behaved fashion:
> > > 
> > > http://ouroboros.dyndns-free.com/ci/view/clumatra/job/clumatra-hardware-acceleration/
> > >  
> > > 
> > > I am working on a reflection/macro based solution, which will
> > > automagically create tests for all methods of all classes that I want
> > > tests for. When I bring this online in a couple of weeks the number of
> > > tests should jump dramatically.
> > > 
> > > Please feel free to inspect test results etc on my Jenkins and let me
> > > know whether they are helpful and whether they can be made more useful
> > > in any way. currently some of them seem to indicate problems in the okra
> > > backend. This is when graal seems to run happily but I get back the
> > > wrong result from my test:
> > > 
> > > e.g.
> > > 
> > > http://ouroboros.dyndns-free.com/ci/view/clumatra/job/clumatra-hardware-acceleration/83/testReport/clumatra/core-test/long_unchecked_inc_test/
> > >  
> > > 
> > > I run the test via graal/okra twice and once in pure clojure - so you
> > > see three results. The last one is the expected one, the first two the
> > > ones returned from the GPU.
> > > 
> > > Other tests let me know that graal is not yet implementing various
> > > features of jvm bytecode - e.g.
> > > 
> > > http://ouroboros.dyndns-free.com/ci/view/clumatra/job/clumatra-hardware-acceleration/83/testReport/clumatra/core-test/long_my_static_inc_test/
> > >  
> > > 
> > > Unfortunately the test report does not seem to be capturing the HSAIL
> > > logging that you can see in the console output... My guess is that it is
> > > captured by redirecting clojure's usual output stream, but this is not
> > > the same one as being used by Graal...
> > > 
> > > http://ouroboros.dyndns-free.com/ci/view/clumatra/job/clumatra-hardware-acceleration/83/console
> > >  
> > > 
> > > 
> > > That's enough for now. I'll post with more progress as and when.
> > > 
> > > 
> > > 
> > > Jules
> > > 
> > > 
> > > 
> > > On 31/03/14 23:40, Caspole, Eric wrote:
> > > > Hi Jules,
> > > > I updated everything and got Clumatra running on the real hardware today.
> > > > 
> > > > In project.clj, I used this:
> > > > 
> > > > > jvm-opts ["-server" "-ea" "-esa" "-Xms1g" "-Xmx1g"
> > > > "-verbosegc" "-G:Log=CodeGen"
> > > > "-XX:+GPUOffload" "-XX:+TraceGPUInteraction"]
> > > > 
> > > > Then make sure your /path/to/okra/dist/bin is in the PATH and
> > > > LD_LIBRARY_PATH.
> > > > 
> > > > When it is using the simulator, you will see this:
> > > > [HSAIL] using
> > > > _OKRA_SIM_LIB_PATH_=/tmp/okraresource.dir_2595501614013009358/libokra_x86_64.so
> > > >  
> > > > 
> > > > With hardware or external okra you will see this:
> > > > 
> > > > [HSAIL] library is libokra_x86_64.so
> > > > 
> > > > Regards,
> > > > Eric
> > > > 
> > > > 
> > > > ________________________________________
> > > > From: Jules Gosnell [jules_gosnell@yahoo.com]
> > > > Sent: Thursday, March 20, 2014 5:27 PM
> > > > To: Caspole, Eric; graal-dev@openjdk.java.net;
> > > > sumatra-dev@openjdk.java.net
> > > > Subject: Re: Graal and Clojure
> > > > 
> > > > Eric,
> > > > 
> > > > I just checked support to Clumatra for running individual unit tests
> > > > from the CLI - should be enough to get you set up with your debugger.
> > > > 
> > > > All details at the bottom of the README.
> > > > 
> > > > https://github.com/JulesGosnell/clumatra
> > > > 
> > > > I'm afraid you will need to install maven if you don't already have it -
> > > > for some reason lein does not seem to have a test-jar target.
> > > > 
> > > > It is still a little rough around the edges, but better than nothing :-)
> > > > 
> > > > I also just bought my HSA h/w - should be up and running next week
> > > > sometime. Did you figure out how to enable native-mode Okra ?
> > > > 
> > > > catch you later,
> > > > 
> > > > 
> > > > Jules
> > > > 
> > > > 
> > > > 
> > > > On 17/03/14 22:20, Eric Caspole wrote:
> > > > > Hi everybody,
> > > > > I was setting up a new HSA system today and I installed Clumatra and got
> > > > > it working under the simulator. I have a real HSA system not too
> > > > > different from this:
> > > > > 
> > > > > http://code.google.com/p/aparapi/wiki/SettingUpLinuxHSAMachineForAparapi
> > > > > 
> > > > > In the clojure/lein/maven based system there is so much harness I can't
> > > > > immediately see how to switch in the real hardware version of Okra
> > > > > instead of the simulator Okra that gets installed into maven and
> > > > > exploded in /tmp when the tests run.
> > > > > 
> > > > > Jules, could you show how to bypass the harness etc to switch the Okra?
> > > > > Can I just run 1 test with a simple java command line? This makes it a
> > > > > lot easier to use a debugger which I will definitely want to do.
> > > > > 
> > > > > Otherwise this is a cool project and we already found 1 or 2 issues we
> > > > > can fix in HSAIL Graal related to your clojure tests.
> > > > > Regards,
> > > > > Eric
> > > > > 
> > > > > 
> > > > > 
> > > > > On 03/17/2014 06:43 AM, Doug Simon wrote:
> > > > > > Hi Julian,
> > > > > > 
> > > > > > In terms of what to test, I’ll leave it up to the Sumatra developers
> > > > > > at AMD and Oracle to comment on what may be interesting.
> > > > > > 
> > > > > > As far as I know, no one in the Graal team is that familiar with
> > > > > > Clojure. This actually makes the value of having Clojure tests
> > > > > > integrated into our gate system somewhat problematic -
> > > > > > debugging/fixing failures may be difficult. I’d suggest you report
> > > > > > failures your discover on the sumatra-dev and graal-dev lists and we
> > > > > > can resolve them that way for now.
> > > > > > 
> > > > > > In addition, for Graal we’re always interested in benchmark suites for
> > > > > > JVM hosted languages. Can you recommend any well known and trusted
> > > > > > Clojure benchmarks we should consider?
> > > > > > 
> > > > > > -Doug
> > > > > > 
> > > > > > On Mar 17, 2014, at 12:35 AM, Jules Gosnell <jules_gosnell@yahoo.com>
> > > > > > wrote:
> > > > > > 
> > > > > > > Doug,
> > > > > > > 
> > > > > > > Sorry it has taken me a while to get back - I've been busy playing
> > > > > > > with code.
> > > > > > > 
> > > > > > > I currently have a small clojure testsuite up and running. I plan to
> > > > > > > broaden this and then think about providing it in a junit-compatible
> > > > > > > way to your project.
> > > > > > > 
> > > > > > > I still haven't made up my mind exactly what I should be testing. It
> > > > > > > seems unnecessary to duplicate all your tests in Clojure, since you
> > > > > > > are already guarding against regression in these areas - I think I
> > > > > > > will start out with a fairly general set of tests as I probe for
> > > > > > > particular problem areas for Clojure, into which I may dive for more
> > > > > > > detail - time will tell... if you have any ideas, please let me know.
> > > > > > > 
> > > > > > > I've checked my stuff in at github, if anyone is interested - here is
> > > > > > > the project:
> > > > > > > 
> > > > > > > https://github.com/JulesGosnell/clumatra
> > > > > > > 
> > > > > > > here is some clojure that I reverse engineered from GraalKernelTester:
> > > > > > > 
> > > > > > > https://github.com/JulesGosnell/clumatra/blob/master/src/clumatra/core.clj
> > > > > > >  
> > > > > > > 
> > > > > > > 
> > > > > > > and here are the first successful tests:
> > > > > > > 
> > > > > > > https://github.com/JulesGosnell/clumatra/blob/master/test/clumatra/core_test.clj
> > > > > > >  
> > > > > > > 
> > > > > > > 
> > > > > > > not very pretty yet - I am still feeling my way.
> > > > > > > 
> > > > > > > cheers
> > > > > > > 
> > > > > > > 
> > > > > > > Jules
> > > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > > On 06/03/14 10:24, Doug Simon wrote:
> > > > > > > > Hi Julian,
> > > > > > > > 
> > > > > > > > This looks very interesting and will be an good alternative testing
> > > > > > > > vector for the Sumatra work as it matures. If Clojure tests can
> > > > > > > > somehow be made to run from Junit, then I’m sure we can try
> > > > > > > > integrating it into our testing.
> > > > > > > > 
> > > > > > > > -Doug
> > > > > > > > 
> > > > > > > > On Mar 6, 2014, at 12:56 AM, Julian Gosnell
> > > > > > > > <jules_gosnell@yahoo.com> wrote:
> > > > > > > > 
> > > > > > > > > Guys,
> > > > > > > > > 
> > > > > > > > > I just built the Java8 / Graal / Okra stack and managed to run some
> > > > > > > > > very simple Clojure copying the contents of one int array into
> > > > > > > > > another one on Okra.
> > > > > > > > > 
> > > > > > > > > https://groups.google.com/forum/#!topic/clojure/JpjK__NTR5Y
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > I find the ramifications of this very exciting :-)
> > > > > > > > > 
> > > > > > > > > I understand that fn-ality is limited at the moment - but I am keen
> > > > > > > > > to keep testing and to help ensure early visibility of Clojure
> > > > > > > > > related issues to both communities - perhaps even the submission of
> > > > > > > > > a Clojure testsuite if Graal developers thought that useful.
> > > > > > > > > 
> > > > > > > > > I'd be very interested in your thoughts on Graal / Clojure.
> > > > > > > > > 
> > > > > > > > > regards,
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > Jules
> > > > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > 
> > > > > > 
> > > > > > 
> > > > > 
> > > > > 
> > > > 
> > > > 
> > > > 
> > > > 
> > > 
> > 
> 
> 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic