Graal and Clojure

Jules Gosnell jules_gosnell at yahoo.com
Tue Mar 18 22:47:42 UTC 2014


Eric,

I've just added a -Dsumatra.verbose flag - it is set in the project.clj.

When set, Okra is asked to be verbose about the HSAIL generation and I 
also print the disassembled bytecode that Okra is about to compile. I 
have updated the readme accordingly.

Okra also logs whether it is running in simulated or native mode.

I'll give the JUnit / launch from CLI some thought now.

regards


Jules



On 18/03/14 21:26, Jules Gosnell wrote:
> Eric,
>
> Thanks for checking out Clumatra :-) :
>
>   https://github.com/JulesGosnell/clumatra
>
> I'm only just getting it off the ground at the moment, so I'm afraid
> that there is not much there yet.
>
> Its aim is to promote Clojure/Sumatra/Graal friendliness and I hope,
> ensure that Clojure can take advantage of all the benefits of HSA as
> soon as Java9 comes out.
>
> OK - that's the plug over with - now to your questions.
>
> 1. enabling a real 'finalizer' instead of the Okra simulator - Hmmm... I
> haven't bought my HSA box yet - it is still a wishlist on Amazon. So I
> have not been able to try this yet. However, I get the feeling from
> looking at the Okra src, that it might detect if the finalizer is
> available and switch over for you. The OkraContext has an isSimulator()
> method on it. So it must be able to run in simulated and some other mode
> ... I think the HSAIL->GPU finalizer is available in one of the AMD d/ls
> - you probably have it already... I'll log something about whether we
> are on a simulator or not in the test harness. - There might be a -X
> flag to the jvm to enable a finalizer...
>
> 2. I'll have to dig around in the Clojure test harness to see if it can
> be integrated with junit - otherwise I'll have to switch over. I can see
> the obvious benefit in being able to kick these tests off in your
> debugger. I'll look into it.
>
> 3. I'm glad that it is helping uncover issues. I have added a few more
> test today and will keep building. I'm looking forward to getting more
> and more of the stack runnning.
>
> I have a few thoughts / questions - if I may :-)
>
> Is there a web page on which you guys are ticking off each bytecode
> instruction as it is implemented ? This would be a help to me when I
> have a test that fails. I can look at the page to see if it should work
> or not.
>
> What might I reasonably expect to get working eventually ? I'm assuming
> that there are limits to what can be done on the GPU - I'm assuming that
> i/o for instance is not feasible etc... Is there some sort of a road map
> published anywhere that I could take a peek at ?
>
> I think that is enough for the moment,
>
> Thanks again, Eric, for your interest in Clumatra - I look forward to
> working with you guys to get Clojure and Graal to work well together.
>
>
> 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 sumatra-dev mailing list