Skip to main content

Sycl tagged news

With many techniques to debug SYCL applications that are similar to the way this would be done in any C++ code, there are some things to keep in mind. Codeplay Developer Relations Engineer Georgi Mirazchiyski has posted an outline on how you might go about debugging on your target device. To find out about how to profile your SYCL application, check out the Optimizing Your SYCL Code Using Profiling guide also from Codeplay.

Imagination Technologies announces that developers working with TensorFlow will be able to target PowerVR GPUs directly thanks to newly optimised open source SYCL neural network libraries. The SYCL version of TensorFlow supports a very large number of AI operations and is easily user-customizable, meaning that developers using the latest neural networks, or researching their own AI technologies, can run those networks out-of-the-box with high performance on PowerVR. Because TensorFlow SYCL support is both open source and open standards-based, it’s an ideal solution for developers who want to accelerate the latest AI technologies on low-power devices. SYCL builds on the concepts and efficiency of Khronos OpenCL. The PowerVR-optimised SYCL libraries – SYCL-DNN, SYCL-BLAS and Eigen – will be available on GitHub. A TensorFlow fork containing extended SYCL support is available from Codeplay’s GitHub.

Codeplay is proud to announce the availability of a set of open source learning materials for SYCL, called “SYCL Academy.” These materials have been developed by engineers at Codeplay and have been delivered during training sessions at events like CppCon and IWOCL. There are now active SYCL implementations from Intel, Xilinx, and Heidelberg University, as well as our own SYCL v.1.2.1 conformant implementation, ComputeCpp. Learn more about the new SYCL Academy. To get started, go to the SYCL Academy GitHub repository and take a look at the documentation that explains what is available and how to use it.

The 8th International Workshop on OpenCL (IWOCL) including SYCLcon 2020 has been announced. Join like minded developers for three days of talks, workshops and community networking aimed at furthering the collaboration and knowledge sharing amongst the international community of high-performance computing specialist working with OpenCL, SYCL, SPIR and Vulkan Compute. The event will include a mix of hands-on tutorials, technical presentations, research papers, posters, panel discussions, networking and vendor discussions.

Wind River announces new release of VxWorks. This new release offers a real-time operating system to support C++17, Boost, Python, and Rust collection of technologies, along with continued support for languages like Ada and SPARK; New LLVM-based infrastructure that enables support for a broad set of modern and productive tools and frameworks; New open source board support packages (BSPs) such as Raspberry Pi and TI Sitara AM65x for quick prototyping and flexibility of choice and OpenSSL 1.1.1 for the most up-to-date cryptography libraries. According to Charles Macfarlane of Codeplay Software, this release of VxWorks will enable developers of next generation ADAS systems to integrate the most advanced vision and machine learning solutions using OpenCL and SYCL.

A unified programming model offers enterprises and OEMs a cost-effectively way to take advantage of the growing diversity of processor platforms, letting companies share their source code investment across vendors and architectures. Enter oneAPI from Intel, which aims to revolutionize application development through a unified, open development model to simplify programming across processors. Intel built upon C++, and SYCL from The Khronos Group had some really good constructs that they thought provided a very good starting point. Intel extended and improved it to achieve the goals that they wanted to achieve. Most of the DPC++ extensions will eventually be synced upstream into SYCL.

In C++, especially in modern C++, function pointers are a legacy feature from the C language but they still exist in some code bases. SYCL does not provide support for function pointers as this is a limitation posed by the design of OpenCL v1.2 which is the basis of the current SYCL v1.2.1 definition. The good news is that we can use modern C++ to implement a solution that can be used with SYCL. Learn how to do this with examples from Codeplay.


Andrew Richards, CEO and Co-founder of Codeplay Software, presents the “Can We Have Both Safety and Performance in AI for Autonomous Vehicles?” tutorial at the May 2019 Embedded Vision Summit. Andrews presentation includes discussion on how SYCL, OpenCL and Vulkan can play into Safety and Performance in vehicles.

Profiling is an important activity when optimizing any application, it can help to pinpoint where the most time is being spent and identify where improvements can be made that will have the biggest impact on performance. This article will provide guidance on how to profile SYCL applications using both ComputeCpp Community Edition and ComputeCpp Professsional Edition.

Georgi Mirazchiyski, Codeplay Developer Relations Engineer has posted a tutorial introducing the Curiously Recurring Template Pattern. Dynamic polymorphism is a widely used C++ feature that allows code to be more flexible, and helps create easily extendable interfaces by overriding the base class specified interfaces inside our derived classes. However, in SYCL kernel code in order to emulate dynamic polymorphism we need to use some curious tricks and techniques.

At Intel’s Software Technology Day in London, Intel engineering leaders provided an update on Intel’s software project – “One API”. One API supports direct programming and API programming, and will deliver a unified language and libraries that offer full native code performance across a range of hardware, including CPUs, GPUs, FPGAs and AI accelerators. One API contains a new direct programming language, Data Parallel C++ (DPC++), an open, cross-industry alternative to single architecture proprietary languages. DPC++ is based on C++, incorporates SYCL from the Khronos Group and includes language extensions developed in an open community process.

C++ Lambdas, first introduced in C++11, are an important part of the way that the SYCL standard is defined and implemented. SYCL is required to handle different types and pass around functions so lambdas are a good fit allowing anonymous function objects to be passed to SYCL kernels. We talk about how we use lambdas in our guides and documentation, but never about how lambdas work or even how to use them in SYCL, so in this blog post we will examine how they can be used in SYCL.

All of the presentations and videos from the Khronos OpenVX workshop at the 2019 Embedded Vision Summit are now online. If you were unable to attend this workshop, you may now watch the seven sessions online and follow along with the slide presentations:

  • Introduction and OpenCL Overview & Update – Neil Trevett, NVIDIA: slides, video
  • OpenCL & SYCL – Andrew Richards, Codeplay: slides, video
  • Intel Open Source SYCL Compiler Project – Konstantin S. Bobrovsky, Intel: slides, video
  • OpenVX Presentations – Frank Brill, Cadence / Niclas Danielsson & Mikael Pendse, Axis : here & here, video
  • Inference with OpenVX – Mike Schmit, AMD: slides, video
  • NNEF Presentation – Gergely Debreczeni, AImotive: slides, video
  • OpenVX Hands-On - Part 1 – Rajy Rawther & Kiriti Nagesh Gowda, AMD: slides, video