Codeplay: The Programming Behind Your Car's Eyes on the Road
19 December 2016
(This article first appeared in the July 2016 edition of HiPEAC Info. Magazine. It is reproduced here by kind permission of HiPEAC: the European Network on High Performance and Embedded Architecture and Compilation).
Andrew Richards (CEO & Founder of Codeplay Software Ltd) gives us an insight into how Codeplay responds to the challenges of delivering machine intelligence into embedded devices while keeping power use low.
Founded in Edinburgh by our Chief Technical Officer, Dr Jens-Uwe Dolinsky, and myself, Codeplay initially developed optimizing compilers aimed at games programmers. Today, the company employs around 60 people and is internationally recognized for its expertise in advanced heterogeneous computing technologies, compilers and development tools.
Our growth today is driven by machine vision and artificial intelligence, which are now able to operate at reasonable performance levels for real-world applications. This is driving the revolution currently taking place in the automotive sector, with vision processing providing deep intelligence for Advanced Driver Assistance Systems (ADAS) and, ultimately, autonomous vehicles. To bring widespread embedded intelligence to market requires open standard software platforms that can both support the development of complex, highly parallel software, while also giving high performance on low-power parallel processors. As we move into safety-critical or regulated markets, we also need to ensure that the toolsets deliver the assurances required of software in those sectors
OpenCL™ (Open Computing Language), the Khronos™ Group’s standard for parallel programming of heterogeneous systems, is now being adopted within the automotive sector and cloud data processing. OpenCL enables complex algorithms to target specialized accelerator processors with a standard programming language, while promoting reusability and cross-processor programming.
Codeplay provides leadership in Khronos Group standards to ensure that its software provides best-in-class performance with ease of integration. ComputeCpp™ enables easy integration of C++ applications into complex heterogeneous compute systems, while ComputeAorta™ is at the heart of our compute technology, implementing OpenCL, SPIR™ (Standard Portable Intermediate Representation), HSA (Heterogenous System Architecture) and Vulkan™
Our day-to-day work involves implementing OpenCL compilers and runtimes on parallel processors, that is, the low-level drivers that manage hardware resources and the runtime application programming interfaces (APIs) that integrate it all together. To help developers, we also build debuggers for those architectures, and lead the definition and implementation of HSA standards for system-wide debugging and profiling.
We’ve also worked on the SYCL™ for OpenCL standard, enabling more complex, performance portable software (such as machine learning) to be accelerated by a wide range of parallel hardware. By promoting SYCL ideas to the International Organization for Standardization C++ body, we hope that more developers can take full advantage of massive parallelism with great power efficiency.
The company has won a host of awards, including the prestigious Investors in People Silver standard, the Elektra Research and Design Award, a Scottish Enterprise Award, and the Frost & Sullivan Award for European Autonomous Driving Software Customer Value Leadership. In 2013, Codeplay formed a Research & Development division, which focuses on high-level programming models and development tools for heterogeneous systems.
SYCL, Vulkan, Khronos and SPIR are trademarks of the Khronos Group Inc. OpenCL and the OpenCL logo are trademarks of Apple Inc. used by permission by Khronos. The HSA logo is a trademark of the HSA Foundation.