Epiphany support in Graal
Michał Warecki
michal.warecki at gmail.com
Mon Aug 12 12:06:09 PDT 2013
Hi guys!
I see that com.amd.sumatra.Sumatra interface and
com.oracle.graal.compiler.hsail.CompileAndDispatch have same methods and
probably will be used for the same purpose.
I'd like to create Epiphany code dispatcher in exactly the same way, so my
question is: does it make sense to move
com.oracle.graal.compiler.hsail.CompileAndDispatch interface to
com.oracle.graal.compiler or create separate, common package for that?
Best,
Michał
2013/8/4 Michał Warecki <michal.warecki at gmail.com>
> Thanks for the great answers! A lot of very interesting work to do :-)
> If anyone is interested in developing this Graal and Sumatra extension,
> I'm going to share it on some public repository within a few weeks/months.
>
> Best,
> Michał
>
>
> 2013/8/2 Morris Meyer <morris.meyer at oracle.com>
>
>> This looks like an interesting architecture. The reference manual is a
>> missing the actual encoding of instructions, but from what you have here I
>> would suggest that you look at the SPARC assembler classes in graal first -
>> and then look at the PTX and HSAIL architectures.
>>
>> Christian Thalinger and I worked the SPARC assembler - and the class
>> structure of each instruction allows for superclass assertions on the
>> specific formats, as well as being able to re-work in the instruction
>> stream if offsets fall outside small immediate ranges.
>>
>> The PTX architecture in graal has the initial ExternalCompilationResult
>> path - which allows for Graal to invoke the compiled PTX kernels and still
>> have a host-native compiled result. Graal does interpreter vs compiled
>> snippet unit testing - and we would like to augment this as we push into
>> GPU, APU and architectures such as Epiphany.
>>
>> We still have more work to do on moving to handle multiple heterogeneous
>> architectures.
>>
>> We are also working to add the sort of upstream parallel work-enabling
>> code that allows the compiler and APIs recognize and gain useful work from
>> external compilation resources.
>>
>> Warm regards,
>>
>> --morris
>>
>>
>> On 8/2/13, 1:56 AM, Michał Warecki wrote:
>>
>>> Hi all!
>>>
>>> I just want to make sure that Graal is the correct project to start with.
>>> I'd like to create bytecode to Epiphany architecture asm compiler.
>>>
>>> Epiphany is a multicore RISC based architecture [1] that aims to be an
>>> accelerator (not the host CPU) unit. Epiphany architecture is used in
>>> Parallella computer (ARM is the host CPU) [2].
>>>
>>> What I want to achieve is to compile and send to epiphany only part of a
>>> Java program to be processed in a parallel way. Probably I will try to
>>> integrate it with Sumarta project.
>>>
>>> Example use case:
>>>
>>> Streams.intRange(0, in.length).parallel().forEach( id ->
>>> {c[id]=a[id]+b[id];});
>>>
>>> // c[id]=a[id]+b[id]; -> This code will be executed on Epiphany. "id"
>>> is the identifier of a core.
>>>
>>>
>>> Is Graal the correct project to implement such bytecode to epiphany asm
>>> compiler? I am inexperienced in this area... Any ideas about this?
>>>
>>> Best,
>>> Michał
>>>
>>>
>>> [1] http://www.adapteva.com/**introduction/<http://www.adapteva.com/introduction/>
>>> http://www.adapteva.com/wp-**content/uploads/2012/10/**
>>> epiphany_arch_reference_3.12.**10.03.pdf<http://www.adapteva.com/wp-content/uploads/2012/10/epiphany_arch_reference_3.12.10.03.pdf>
>>>
>>> [2] http://www.parallella.org/
>>>
>>
>>
>
More information about the graal-dev
mailing list