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.
The SYCL Compiler and Runtimes 2019-09 release allow OpenCL offloading to accelerators (GPU/FPGA). Some OpenCLCL/SYCL FPGA extensions are now supported along with support for dumping the SYCL task graph to JSON. Lots of other improvements and fixes are included on the GitHub release page.
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 from Codeplay will be presenting “Using Industry-Standard Techniques to Accelerate AI Software” at this years Linley Fall Processor Conference in Santa Clara. You can learn more about this presentation and download a free white paper by Linley Gwennap, Principal Analyst at the Linley Group.
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
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.