Boost logo

Boost :

Subject: Re: [boost] SYCL (RE: [compute] review)
From: Kyle Lutz (kyle.r.lutz_at_[hidden])
Date: 2014-12-28 20:11:51


On Sun, Dec 28, 2014 at 3:33 PM, Gruenke,Matt <mgruenke_at_[hidden]> wrote:
>
> -----Original Message-----
> From: Boost [mailto:boost-bounces_at_[hidden]] On Behalf Of Kyle Lutz
> Sent: Sunday, December 28, 2014 14:42
> To: boost_at_[hidden] List
> Subject: Re: [boost] [compute] review
>
>> On Sun, Dec 28, 2014 at 1:54 AM, Gruenke,Matt wrote:
>
>> Others libraries/frameworks (such as SYCL, Bolt, C++AMP, OpenACC, etc.)
>> are all dependent on either a special compiler or special compiler extensions.
>
> According to Khronos, that's incorrect.
>
> The provisional specification includes the following features:
>
> * Specifications for creating C++ template libraries and compilers
> using the C++11 standard
>
> * Easy to use, production grade API - built on-top of OpenCL and SPIR(tm)
>
> * Compatible with standard CPU C++ compilers across multiple platforms,
> ^^^^^^^^^^ ^^^^ ^^^^^^^^ ^^^ ^^^ ^^^^^^^^^
> as well as enabling new SYCL device compilers to target OpenCL devices
>
> * Asynchronous, low-level access to OpenCL features for high performance
> and low-latency - while retaining ease of use
>
>
> Source: https://www.khronos.org/opencl/sycl

Well let me back up. Currently there is no publicly available
implementation of SYCL which can offload computation to a GPU. Any
possible implementation of SYCL with the ability to perform work on a
GPU involving custom kernel functions specified in C++ would require
non-standard (w.r.t the C++ standard) support from the compiler. In
fact, I would be very happy to see any proof to the contrary as it
would be very useful for developing Boost.Compute itself. So while you
are correct that the Khronos specification doesn't explicitly require
special compiler support, any practical implementation of SYCL would.

But to more generally address these comments which have come up in
review, the SYCL specification has yet to see a real-world
implementation and, as far as Boost.Compute is concerned, SYCL is
essentially vaporware. While I do see how the SYCL interface could be
used together with Boost.Compute, I cannot currently use it as the
basis for Boost.Compute as it does not exist in any practically
useable form. In order for me to seriously consider using SYCL for
Boost.Compute, I would like to see a publicly available implementation
which supported NVIDIA GPUs, AMD CPUs/GPUs and Intel CPUs/GPUs.

-kyle


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk