To gather community feedback, the provisional specification for SYCL 1.2 has been released by The Khronos Group. SYCL extends itself upon OpenCL with the C++11 standard. This technology is built on another Khronos platform, SPIR, which allows the OpenCL C programming language to be mapped onto LLVM, with its hundreds of compatible languages (and Khronos is careful to note that they intend for anyone to make their own compatible alternative langauge).
In short, SPIR allows many languages which can compile into LLVM to take advantage of OpenCL. SYCL is the specification for creating C++11 libraries and compilers through SPIR.
As stated earlier, Khronos wants anyone to make their own compatible language:
While SYCL is one possible solution for developers, the OpenCL group encourages innovation in programming models for heterogeneous systems, either by building on top of the SPIR™ low-level intermediate representation, leveraging C++ programming techniques through SYCL, using the open source CLU libraries for prototyping, or by developing their own techniques.
SYCL 1.2 supports OpenCL 1.2 and they intend to develop it alongside OpenCL. Future releases are expected to support the latest OpenCL 2.0 specification and keep up with future developments.
The SYCL 1.2 provisional spec is available at the Khronos website.
SPIR (Standard Portable
SPIR (Standard Portable Intermediate Representation). Is this going to allow for OpenCL pre compiled into an IL, to run cross platform on many/any GPUs? And how will it work along side HSAIL, or other VM ILs such as JAVA, etc. HAL cross compiling/conversion between ILs is fine pre-Runtime if they are done at compile time, BUT for JITing (Just In Time compiling) having too many translation layers on top of translation layers can add delays. is the SPIR standard competing with HSAIL standard, or are are they complementary standards?
“and Khronos is careful to note that they intend for anyone to make their own compatible alternative langauge”
Do you mean compatiable alternative VM/translation layer type IL ( intermediate language)? SPIR sounds more like a middleware layer standard than an IL?
I wouldn’t want to butcher it
I wouldn't want to butcher it too much, so I'll mostly just link to the FAQ for SPIR.
As far as I know, it is a competitor to HSAIL that is based on LLVM.
Thanks for the Info, and I
Thanks for the Info, and I guess the more Open Standards the better, but if anyone ever expresses their amazement at having Mobile Phone/tablets SOCs with 8 cores, then one good reason for having more cores on mobile, as well as PCs/laptops, is to be able to run all of the available LLVM type APIs/HALs that support all the open and proprietary standards. At some point in time all of these open standards are going to merge and win out over the proprietary, as having the support for proprietary HALs Only is going to cost hardware makers and OS makers market share , as in mobile first there is much more healthy competition to begin with. It’s innovate or die, and the consumer will come out the winner. With all the slowing down going on over the costs/problems of moving over to the smallest transistor processor nodes, that is economically possible, the big CPU and GPU makers are going to have to do something to improve the Software/drivers/APIs/HALs to bring more processing power to devices through fine tuning the software to get every last bit of extra performance to stay competitive in the market. This support will also include keeping the OpenGL, OpenCL and other standards as up to date as possible in order to be able to run all of the applications that require the these standards on computing systems that use the current and future SOCs technology.
Do you mean compatible
Hi Anon’.
Not really, no. Khronos are not trying to encourage others to make their own compatible intermediate language/representation. They are trying to encourage translation from other languages to SPIR. Whether these languages are well known and have clang (or other) front-ends or are new, proprietary, or just for academic research. The idea is that any language can be easily compiled to SPIR, thus allowing for a richer range of technologies that can be used as GPGPU compute capable languages though OpenCL and now SYCL.
Thanks!
Thanks!