Epiphany support in Graal

Morris Meyer morris.meyer at oracle.com
Fri Aug 2 10:53:10 PDT 2013


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/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