[PATCH] GPU Exploitation Infrastructure

David Holmes david.holmes at oracle.com
Tue Jan 30 21:46:06 UTC 2018


On 31/01/2018 1:35 AM, Alan Bateman wrote:
> On 30/01/2018 13:55, Ben Walsh wrote:
>> This patch provides the infrastructure to enable the exploitation of a 
>> GPU
>> by the compiler to accelerate certain suitable Java constructs.
>>
>> When enabled, a suitable compiler can attempt to accelerate the following
>> Java constructs by launching the corresponding lambda expression on the
>> GPU:
>>
>>     IntStream.range(<range>).parallel().forEach(<lambda>)
>>     IntStream.rangeClosed(<range>).parallel().forEach(<lambda>)
>>
>>     where:
>>
>>        <range> defines upper and lower bounds
>>        <lambda> is a correctly defined lambda expression
>>
>> As it stands, with the HotSpot compiler, this patch performs a "no op" in
>> the newly added in-built native library method.
>> This can be extended so that the HotSpot compiler attempts the
>> acceleration detailed above instead.
>>
>> I would like to pair with a sponsor to contribute this patch ...
> The function prototypes in jvm.h are JVM_* functions rather than JNI 
> native method names. You may want to look at adding a JNI function to 
> libjava with a wrapper or else use RegisterNatives to map the native 
> method name to a JVM_* function.
> 
> BTW: Is this something for one the project repos (Valhalla or Panama) 
> rather the main line (jdk/jdk)?

This should be looked at in the context of Panama I think, though IIRC 
there was a distinct GPU related project as well? Either way GPU support 
in mainline doesn't seem like something to just be dropped in like this 
without much more higher-level discussion taking place.

Plus hotspot changes - even stubs - must be reviewed on the appropriate 
hotspot mailing list.

David

> -Alan


More information about the core-libs-dev mailing list