On Sun, Dec 28, 2014 at 3:33 PM, Gruenke,Matt
-----Original Message----- From: Boost [mailto:boost-bounces@lists.boost.org] On Behalf Of Kyle Lutz Sent: Sunday, December 28, 2014 14:42 To: boost@lists.boost.org 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
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