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
Michael Wong, VP of Research and Development, Charles Macfarlane, VP of Marketing and Rod Burns, Developer Relations Manager are attending this year’s AutoSens Conference in Detroit from 14th to 16th May, 2019. Michael Wong will be presenting “Ensuring safe AI in a car” highlighting the practical engineering challenges of turning deep learning, classical machine vision and sensor fusion algorithms from research prototypes into real-world automotive-grade systems. Codeplay will be exhibiting the benefits of open standards OpenCL and SYCL on Renesas R-Car V3H platform for rapid development and deployment of ADAS and AV functions.
LLVM 2019 wrapped up a couple of weeks ago, and some of the presentations are now rolling out. For a list of Khronos related session, visit our event page. For a complete list of presentations, please visit the LLVM website.
Codeplay Software has announced the availability of this fully supported edition of their popular SYCL implementation providing advanced features and premium technical support to developers seeking to bring advanced vision and AI products to the market. The first releases will support Intel GPUs and Renesas R-Car products, with other platforms becoming available soon.
The Khronos OpenCL working group recently created a new Tooling Subgroup with the aim of improving the tools ecosystem for this widely-used open standard for heterogeneous computation—in particular, boosting the development of tooling components that can be shared by multiple vendors. Subgroup members have been meeting regularly to coordinate the overall direction for OpenCL tools, with an emphasis on strengthening the development of tools in open source, particularly by encouraging collaboration between the OpenCL and LLVM communities.
Intel compiler engineer Alexey Bader sent out a public “request for comments” on the idea of adding SYCL to the LLVM Clang compiler stack. He wrote, “We (Intel) would like to request to add SYCL programming model support to LLVM/Clang project to facilitate collaboration on C++ single-source heterogeneous programming for accelerators like GPU, FPGA, DSP, etc. from different hardware and software vendors.” Learn more about this initiative or read the original letter.
Planning on attending SC’18 in Dallas this week? Be sure to attend the BOF by Michael Wong of CodePlay on Tuesday at 5:15pm. He will be discussising C++ frameworks for parallel programming, including SYCL. More details on his talk are on the Khronos event page.
Neil Trevett, President of the Khronos Group, delivers the presentation “Update on Khronos Standards for Vision and Machine Learning” at the Embedded Vision Alliance’s September 2018 Vision Industry and Technology Forum. Neil Trevett shares updates on recent, current and planned Khronos standardization activities aimed at streamlining the deployment of embedded vision and AI. For the full version of this video, along with hundreds of others on various embedded vision topics, please visit the Embedded Vision website.
European Union-funded researchers have today released a tool suite which enables developers to deliver longer battery life in mobile devices, while ensuring high quality and performance. The LPGPU2 tool-suite helps programmers develop power-efficient code for GPUs by identifying bottlenecks relating to performance (for example in terms of frames-per-second) and power (for example in terms of energy per instruction). The LPGPU2 tool suite has benefited from the expertise of a range of academic and industrial partners including Khronos members Samsung, who designed and implemented the data collection frameworks and feedback engine; Think Silicon validated it on their four-core NEMA GPU system and Codeplay extended AMD’s CodeXL tool, allowing programmers to profile their SYCL applications. Download the tool suite from the GitHub repository.
Codeplay are pleased to announce that Andrew Richards, CEO & Founder, Charles Macfarlane, VP Marketing & Rod Burns, Developer Relations Manager, will be at this year’s AutoSens in Brussels, exhibiting from 17th to 20th September. Codeplay will be there to discuss the use of open standards such as OpenCL and SYCL on heterogeneous processor solutions to enable the latest vision and machine learning applications for automotive.
Codeplay’s ComputeCpp 1.0 enables SYCL and provides C++ developers with ‘High Performance Computing’, ‘Computer Vision’ and ‘Artificial Intelligence’. “Codeplay continues to lead the SYCL community, as demonstrated by the release of ComputeCpp 1.0 featuring the industry’s first fully conformant SYCL 1.2.1 implementation,” said Codeplay’s Michael Wong, chair of the SYCL working group and senior member of the ISO C++ Standards committee. “This latest release will empower developers to more easily harness the power of heterogeneous computing. It also helps improve the experience for developers by making it easy to write applications that can take greater advantage of the compute capabilities present in a range of CPUs, GPUs, and other processor types.” Learn more about ComputeCpp 1.0 and SYCL, or read up on the history of Codeplay and SYCL.
In our research project HighPerMeshes, physicists use Maxwell’s Equations to simulate nanoantennas and interferences within different materials. Our goal is to provide a technology that enables the implementation of simulation codes in a simpler and more productive fashion, while at the same time allowing them to deploy to different target devices and accelerators. We decided to use SYCL to analyze and re-write a set of example code to solve Maxwell’s equations because it allowed us to develop using standard C++, target a wide range of hardware, and gave us the opportunity to accelerate the code on this hardware.