What's happening with SYCL at IWOCL 2018

Posted on May 10, 2018 by Rod Burns.

It's nearly time for IWOCL 2018, the annual OpenCL conference, and this is an event Codeplay has supported since its inaugural edition 5 years ago. IWOCL gathers the latest research and development in OpenCL and it also tends to the place where Khronos makes major release or development announcements. Alongside IWOCL there are several workshops happening, and one of the major workshops is DHPCC++, a workshop that focuses on Heterogeneous and Distributed Computing for C and C++ languages. Have a look at Michael's DHPCC++ blog to find out more about it, where the focus will include Khronos SYCL as well as other C++ frameworks such as HPX, HiHat, KoKkos, and Raja, and providing the latest updates on ISO C and C++ development in this domain.

This year at IWOCL, Khronos is likely to announce maintenance updates to OpenCL 2.2 that was announced at IWOCL 2017. The Khronos group has been hard at work and will be looking for wider industry participation by encouraging users of OpenCL to join Khronos or apply for OpenCL Advisory Panel membership. We can make some conjecture as to what will be announced at the conference based on Codeplay's extensive and deep participation in all aspects of Khronos from OpenCL, to Safety Critical through to the Khronos Safety Critical Advisory Forum, to SYCL, to Vulkan, to Memory Model, and Machine Learning. Only by attending the conference will you find out if these predictions will come true, of course.

Given the recent incidents involving self-driving cars and the accentuated concerns for safety, Khronos is likely to respond with increased focus on updating its specifications for "Safety Critical" support, such that it can be easier to be used in commercial applications requiring more stringent checks and verification, as well as protections from intrusions. Codeplay is working closely with a wide range of groups involved in defining specifications for "Safety Critical" applications including the Khronos Safety Critical Advisory Forum.

OpenCL Safety Critical (SC) is now extremely important to Codeplay. We have been building up partnerships and recently raised some ring-fenced funding with the help of Williams Advanced Engineering to specifically solve the problem of safe tools for automotive AI, so we will be dedicating a lot of resources to this over the next few years. Our focus is on automotive safety systems, including the so-called "Advanced Driver Assistance Systems." These systems make cars safer through detecting hazards and invoking "AEB" (Autonomous Emergency Braking) or driver monitoring systems (for example, alerting the driver if they are not paying attention). These systems rely on AI and traditional machine vision techniques to spot hazards.

As Khronos released OpenCL 2.2 last year with a full and embedded profile, there have been increasing demands to update the spec to ensure it works with complicated processors that do not look like GPUs or CPUs, an example being DSPs. It would seem reasonable to expect that at IWOCL, OpenCL will be updated to support a wider range of processors. There will be new classes of devices enabled to be compliant with latest OpenCL. It would also not be far fetched to believe that there will be fixes to the release as part of a maintenance update, this is normal after a major new release.

In today's world of greater openness, and open source world-wide participation and collaboration, it is likely that Khronos will also be looking for more ways that non-Khronos members can participate in developing its specifications, by either adapting more permissive licensing on its specifications or adapting some form of click-accept policy.

The end result is that OpenCL will continue to be vibrant and is not going away anytime soon. If anything, it will find its way into embedded processors of all kinds, ranging from automotive, aviation, medical, industrial, and all forms of IoT devices.

SYCL at IWOCL

SYCL is a Technical Study group (TSG) within OpenCL and offers heterogeneous modern C++. IWOCL typically has papers describing research within OpenCL as well as new developments within Khronos and this year SYCL has seen major developments with the release of v1.2.1, tighter integration with TensorFlow and support for Arm Mali processors.  As with last year, there are three papers that will talk about SYCL within IWOCL as part of OpenCL development covering:
  • What’s New in SYCL 1.2.1 and How to Explore the Features by Michael Wong (and the SYCL team) Codeplay
  • TensorFlow Acceleration on ARM Hikey Board by Mehdi Goli, Luke Iwanski, John Lawson, Uwe Dolinsky and Andrew Richards, Codeplay
  • Building a Brain with SYCL and Modern C++ by Toby St Clere Smithe*, Department of Experimental Psychology, University of Oxford and Ralph Potter, Codeplay Software Ltd.

A Year of Progress for SYCL

In the 12 months or so since the last IWOCL in Toronto, SYCL has continued to mature with increased momentum and adoption of the standard. During this time we have seen the ratification of SYCL v1.2.1 that brings a stable set of interfaces for developers and implementors to work with. ComputeCpp, our own implementation of the SYCL standard is now very close to compliance with the SYCL v1.2.1 specification and we are excited to make that available to all developers in the coming months through our free Community Edition.

In the past year we have also seen significant support for the use of the SYCL and OpenCL standards from Renesas, a leader in hardware design for the automotive space. By providing an OpenCL interface for their latest generation of R-Car hardware platforms, developers are able to write software using standard C++ through SYCL, and will also be able to take advantage of a range of frameworks that include TensorFlow, Eigen, SYCLBLAS and ParallelSTL. Offering OpenCL support across their current and future platform designs allows developers to run the same code across a wide range of processors, enabling them to benchmark performance and adapt without re-writing their code base.

At the same time we've also been involved in bringing SYCL to Arm Mali GPUs and this in turn has enabled us to provide support for TensorFlow with Mali GPUs. We have published instructions on how to do this and a video of a machine learning-based, self-playing, version of Flappy Bird running on the HiKey 960 board. The board incorporates an Arm Mali G71 MP8 GPU and this is an exciting development because the wide proliferation of Arm processors give developers the potential to use SYCL for development in many embedded, mobile and high performance computing architectures.

One of the areas where we have been collaborating on research and development is in the development of profiling tools for devices with OpenCL and SYCL support. Working as part of the LPGPU² project we have taken the open source CodeXL project and added new features to enable OpenCL and SYCL developers to capture and visualize the API calls made together. It is also possible to visualize the profile of GPU power (watts) used against most open standards APIs using the DC API developed by the consortium. Our previous blog post provides more detail on these features with screen shots of profiling a real application running on an arm Mali GPU.

Another large semiconductor company Xilinx, who are well known supporters of SYCL, continue to develop triSYCL, their implementation of the standard, to enable developers to use SYCL for their FPGA processors. They have also adapted their implementation to allow TensorFlow applications to run on these processors using the open source SYCL implementation interface. The speed with which both Codeplay and Xilinx was able to adapt TensorFlow (originally written for CUDA) to SYCL using 2 different implementations shows demonstrates the ease that existing modern C++ code can be adapted to SYCL to enable dispatch to any OpenCL GPU or FPGA devices.
We are also seeing increased activity in the education sector with many institutions adopting SYCL for teaching heterogeneous and high performance development techniques. The University of West Scotland, Heriot Watt University and the University of Munster are just some of those using SYCL. In the research sector, where organizations are at the leading edge for the adoption of open standards, a range of research is utilizing SYCL in the fields of aerospace, biological science and physics modelling. These organizations recognize the importance of developing with hardware that supports open standard interfaces.

This year Codeplay is well represented at IWOCL, we have a group of our engineers heading to Oxford to present on a range of topics, meet the community, as well as exchange knowledge and ideas. If you'd like to come and talk to us find one of our team wearing a Codeplay t-shirt or hoodie and come and see the demos we are showing at our booth.