Webrev for first version of HSA offload integer reduce
Christian Thalinger
christian.thalinger at oracle.com
Tue Jun 10 17:31:10 UTC 2014
Thanks; much better. One thing I missed during my last review is that all the tests have the wrong copyright year and an author comment:
34 /**
35 *
36 * @author user1
37 */
Can you remove these?
On Jun 10, 2014, at 8:03 AM, Caspole, Eric <Eric.Caspole at amd.com> wrote:
> I moved collectArgs into the cpp files for both classes here:
> http://cr.openjdk.java.net/~ecaspole/graal_int_reduce1/02/webrev/
> Thanks,
> Eric
>
>
> From: Christian Thalinger [christian.thalinger at oracle.com]
> Sent: Monday, June 09, 2014 2:15 PM
> To: Caspole, Eric
> Cc: graal-dev at openjdk.java.net; sumatra-dev at openjdk.java.net
> Subject: Re: Webrev for first version of HSA offload integer reduce
>
>
> On Jun 9, 2014, at 10:50 AM, Eric Caspole <eric.caspole at amd.com> wrote:
>
>>
>>
>> On 06/09/2014 01:07 PM, Christian Thalinger wrote:
>>>
>>> On Jun 9, 2014, at 9:40 AM, Caspole, Eric <Eric.Caspole at amd.com
>>> <mailto:Eric.Caspole at amd.com>> wrote:
>>>
>>>> Hi everybody,
>>>> I put up a new webrev that allows some IntStream.reduce() to be
>>>> offloaded to HSA:
>>>>
>>>> http://cr.openjdk.java.net/~ecaspole/graal_int_reduce1/webrev/
>>>
>>>
>>> src/gpu/hsail/vm/hsailKernelArguments.hpp
>>>
>>> + virtual void collectArgs() {
>>>
>>> Does this really have to be in the .hpp file? I see that the base class
>>> has it in the .hpp file too.
>>
>> No it doesn't have to be there, it is just some historical thing I don't know why. I can change that.
>
> That would be good. Thanks.
>
>>
>>>
>>>>
>>>> This works with a Sumatra webrev I will eventually add into the
>>>> Sumatra JDK repo:
>>>>
>>>> http://cr.openjdk.java.net/~ecaspole/sumatra_int_reduce_1/webrev/
>>>>
>>>> This combo allows offloading IntStream.parallel().reduce() for
>>>> Integer::sum, Integer::max, and Integer::min. It builds a kernel from
>>>> a hand made HSAIL string of code that gets called from the new Stream
>>>> API diversion code in the Sumatra part.
>>>>
>>>> Eventually we hope to have regular compilation of user reduce
>>>> functions but this allows us to do experiments with workloads before
>>>> we get all the details of reduce compilation in place such as barrier
>>>> placement and group size nuances.
>>>
>>> Presumably that will remove the hand-made code eventually?
>>
>> Yes. I just want to be able to expose this interesting functionality in the mean time.
>
> Makes sense.
>
>>
>>>
>>>>
>>>> In the current Kaveri hardware version of Okra, it uses group size 256
>>>> by default and this reduce code is designed to work only with 256.
>>>> Also, because it is a handmade kernel, it only runs with
>>>> -UseHSAILDeoptimization and -UseCompressedOops.
>>>> In the included reduce tests, they will skip if the correct flags are
>>>> not there for the tests to run correctly.
>>>>
>>>> This webrev also changes the way the kernel args are processed to look
>>>> at the actual args type rather than by the type signature of the
>>>> kernel method.
>>>> Regards,
>>>> Eric
More information about the sumatra-dev
mailing list