Stream API - how to build -

Juan Jose Fumero juan.fumero at ed.ac.uk
Wed Feb 5 02:35:44 PST 2014


Hi Doug,
    great, I have compiled graal with JDK 8 and sumatra patch and It 
works fine.

$ bash sumatra.sh
--- Running com.oracle.graal.compiler.hsail.test.BasicSumatraTest ---
[HSAIL] library is libokra_x86_64.so
[HSAIL] using 
_OKRA_SIM_LIB_PATH_=/tmp/okraresource.dir_7223059661454328370/libokra_x86_64.so
[GPU] registered initialization of Okra (total initialized: 1)
[HSAIL] heap=0x00007f938c018270
[HSAIL] base=0xf0000000, capacity=24117248
External 
method:com.oracle.graal.compiler.hsail.test.BasicSumatraTest.lambda$main$0([I[I[II)V
installCode0: ExternalCompilationResult
[HSAIL] sig:([I[I[II)V  args length=3
[HSAIL] static method
[HSAIL] HSAILKernelArguments::do_array 0xf026f010, is a [I
[HSAIL] HSAILKernelArguments::do_array 0xf026efa0, is a [I
[HSAIL] HSAILKernelArguments::do_array 0xf026efd8, is a [I
[HSAIL] HSAILKernelArguments::not pushing trailing int
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9]


What I would like to do is to run for example the test like 
BasicSumatraTest ( in com.oracle.graal.compiler.hsail.test package) with 
our OpenCL backend. Taking this expression

  13         IntStream.range(0, a.length).parallel().forEach(id -> {
  14             c[id] = a[id] + b[id];
  15         });

and generate an OpenCL kernel and run it. We would like to explore some 
parallel patterns (taking stream API) and how to combine them to apply 
more optimisations.

Many thanks
Juanjo


On 04/02/14 22:05, Doug Simon wrote:
> There’s also the sumatra-on-graal patch described in http://mail.openjdk.java.net/pipermail/graal-dev/2014-January/001523.html
>
> -Doug
>
> On Feb 4, 2014, at 10:36 PM, Eric Caspole <eric.caspole at amd.com> wrote:
>
>> Hi Juanjo,
>> The JDK 8 code in the Sumatra hg repo is really old and actually we have not been using it yet.
>>
>> If you could explain a little more about what you want to do we can see if our modified Stream API at:
>>
>> http://cr.openjdk.java.net/~ecaspole/sumatrajdk.02/webrev/
>>
>> will work for you. Note this webrev is probably bit rot since it is from last July. I will do my best to update it tomorrow so it works with the JDK 8 tip, which is:
>>
>> http://hg.openjdk.java.net/jdk8/jdk8/
>>
>> Then you check out and build Graal, and the patch connects Graal to the JDK Stream offload.
>> We are happy to welcome more Sumatra developers.
>> Regards,
>> Eric
>>
>>
>> On 02/04/2014 11:16 AM, Juan Jose Fumero wrote:
>>> Hello,
>>>    I am trying to build JDK 8 and Stream API. Following the instructions
>>> in [1], first I download the jdk8 and apply the patch with the patch
>>> command in Linux. The patch was built with webrev and when I try to
>>> apply it, It fails so I decided to do manually.  But, when the jdk is
>>> compiling, I get the following error:
>>>
>>> ...
>>> ## Starting jdk
>>> Compiling 9420 files for BUILD_JDK
>>> /home/juanjo/phd/jdk8Sumatra/jdk/src/share/classes/java/util/stream/Streams.java:309:
>>> error: cannot find symbol
>>>              implements StreamBuilder<T> {
>>>                         ^
>>>    symbol:   class StreamBuilder
>>>    location: class Streams
>>> /home/juanjo/phd/jdk8Sumatra/jdk/src/share/classes/java/util/stream/Streams.java:355:
>>> error: cannot find symbol
>>>          public StreamBuilder<T> add(T t) {
>>>                 ^
>>>    symbol:   class StreamBuilder
>>>    location: class StreamBuilderImpl<T>
>>>    where T is a type-variable:
>>> ...
>>>
>>>
>>> I guess I am doing something wrong.  Also I tried to download the
>>> sumatra code but If I am not wrong, the Stream API in java.util is not
>>> there [2]. I have seen the Aparapi project as well but I do not see
>>> where they use the stream interface.
>>>
>>>
>>> I would like to work with the Stream API and Graal with the aim to
>>> connect our backend (source to source) for OpenCL. Our interest is to
>>> work the interface in java.util.stream of Java 8 and provide some
>>> optimisations and transformations in our backend based on this interface.
>>>
>>> ///
>>> //
>>> //[1] /
>>> ///https://wiki.openjdk.java.net/display/Sumatra/AMD+Sumatra+prototype%3A+APU+meets+Stream+API//
>>>
>>> //[2] /
>>> ///https://wiki.openjdk.java.net/display/Sumatra/Sumatra+Repository+Info///
>>> ////
>>>
>>> Thanks so much
>>> Juanjo
>>>
>>>
>>>
>>> The University of Edinburgh is a charitable body, registered in
>>> Scotland, with registration number SC005336.
>>>
>

-- 
PhD Student
University of Edinburgh
10 Crichton Street
Room 1.19
Edinburgh
EH8 9AB

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: not available
Url: http://mail.openjdk.java.net/pipermail/sumatra-dev/attachments/20140205/bc36f0fa/attachment.ksh 


More information about the sumatra-dev mailing list