Epiphany support in Graal
Michał Warecki
michal.warecki at gmail.com
Sun Aug 4 01:04:25 PDT 2013
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