Graal and Clojure
Thomas Wuerthinger
thomas.wuerthinger at oracle.com
Wed Apr 16 11:13:49 UTC 2014
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 at 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 at yahoo.com]
>>> Sent: Thursday, March 20, 2014 5:27 PM
>>> To: Caspole, Eric; graal-dev at openjdk.java.net;
>>> sumatra-dev at 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 at 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 at 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
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>>
>
More information about the graal-dev
mailing list