Webrev for first version of HSA offload integer reduce
Doug Simon
doug.simon at oracle.com
Wed Jun 11 09:35:43 UTC 2014
Eric,
Sorry for the inconvenience, but can you please update to the tip which now includes Tom Deneau’s changesets and generate one more webrev.
Thanks.
-Doug
On Jun 10, 2014, at 5:03 PM, 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<mailto: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>
> <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