Thursday, April 13, 2017

SYCL

"SYCL™ is an open, royalty-free standard specification from the Khronos Group which defines a single source C++ programming layer that is built on top of OpenCL™. SYCL™ allows developers to leverage C++ features on a wide range of heterogeneous devices supported by OpenCL, providing a foundation for creating efficient, portable and reusable middleware libraries and applications.

SYCL is aimed at developers who want to create or integrate OpenCL applications and libraries with C++ programs. Dispatching device kernels from C++ applications is a widely used method for dealing with heterogeneous platforms in various programming models, such as CUDA, C++AMP, HCC, OpenACC, or OpenMP. SYCL brings this capability to a wide range of accelerators supporting OpenCL. This lets developers create powerful, performance portable template libraries that can take advantage of a wide range of heterogeneous hardware and software platforms.

SYCL fully supports OpenCL interoperability and ease of integration with existing OpenCL frameworks. SYCL supports and exposes all of the OpenCL 1.2 features and capabilities. The SYCL API accepts OpenCL pre-built programs, libraries, kernels and memory objects. The SYCL OpenCL interoperability API allows the execution of OpenCL and SYCL kernels to be interleaved. Integrating existing OpenCL libraries with a SYCL program is the suggested way to re-use and retain highly optimized OpenCL code for specific devices, but also have the capability of SYCL portable code for other devices without needing to provide all of the possible highly tuned OpenCL libraries."

https://github.com/codeplaysoftware/computecpp-sdk

No comments:

Post a Comment