Skip to content

Latest commit

 

History

History
164 lines (97 loc) · 4.95 KB

possible-futures.rst

File metadata and controls

164 lines (97 loc) · 4.95 KB

Possible Futures

There are already some ideas on GitHub issues, https://github.com/triSYCL/triSYCL/issues and internally to Xilinx https://gitenterprise.xilinx.com/rkeryell/triSYCL/issues

Some ideas of future developments where you can contribute too: :-)

Note that some of these are pretty old and might be already obsolete or already implemented in other SYCL implementations.

  • go on using the official OpenCL SYCL conformance test suite (CTS) which is now open-source https://github.com/KhronosGroup/SYCL-CTS to extend/debug/validate this implementation;
  • finish implementation of basic classes without any OpenCL support to have SYCL 1.2.1 passing the CTS on CPU;
  • go on extending the device compiler, based on Clang/LLVM and some specific runtime, to generate OpenCL/SPIR from C++ single-source kernels;
  • move to CMake even for the device compiler for better portability the tests;
  • improve the test infrastructure (for example move to something more standard with Boost.Test. Status: started) instead of having some tests using LIT to test some textual output;
  • update the dataflow SYCL infrastructure from plain C++ std::thread and std::condition_variable to some more efficient library, such as TBB or Boost.Fiber;
  • implement the dataflow SYCL infrastructure directly on top of OpenCL event-framework instead of layering the CPU dataflow dependency graph on top of it;
  • add vector swizzle support by following ideas from https://github.com/gwiazdorrr/CxxSwizzle http://glm.g-truc.net http://jojendersie.de/performance-optimal-vector-swizzling-in-c http://www.reedbeta.com/blog/2013/12/28/on-vector-math-libraries ;
  • add OpenCL 2.x support;
  • since SYCL is a pretty general programming model for heterogeneous computing, if the OpenCL compatibility layer is not required, some other back-ends could be written besides the current OpenMP one: CUDA, RenderScript, OpenAMP, etc. Actually this is the base for hipSYCL
  • make an alternative accelerator version based on OpenMP 5 accelerator target, OpenHMPP or OpenACC;
  • make an alternative accelerator version based on wrapper classes for the C++AMP HCC Open Source compiler;
  • SYCL concepts (well, classes) can also be ported to some other languages to provide heterogeneous support: SYJSCL, SYCamlCL, SYJavaCL... It is not clear yet if SYFortranCL is possible with Fortran 2008 or 2015+;
  • some of the proposed extensions above are actually on-going is some other projects or in the fusion of Intel SYCL and triSYCL https://github.com/triSYCL/sycl