ComputeCpp v2.0.0 Release with USM

Posted on April 27, 2020 by Rod Burns.

To coincide with IWOCL and SYCLcon 2020 we are releasing ComputeCpp v2.0.0 and this brings with it some changes to our practices and support as well as adding some new features. You can download this latest release on our website.

Semantic Versioning

Whilst we have always aimed to follow semantic versioning, with this latest release we are putting more controls in place to ensure that we follow the rules that are outlined by this practice. You'll find details of any relevant changes that relate to this major version release in the release notes.

Unified Shared Memory

Over the past while there has been a range of feedback from SYCL developers, and this is what drives much of the discussion within the SYCL working group. Codeplay has a presence on this group both in assisting as chair and contributor authors for the specification. One of the discussions has been around making SYCL more accessible and less verbose for developers. This has resulted in a proposal for what is named "Unified Shared Memory (USM)" which aims to "reduce the barrier to integrate SYCL code into existing C++ codebases by introducing new modes that reduce the amount of code that must be changed to interface the two codes." We are pleased to be able to make an "experimental" version of USM in ComputeCpp available in v2.0.0. You'll find example code in the proposal here and more documentation will follow soon.

Upgrading Visual Studio Support

We have upgraded our supported version of Microsoft Visual Studio to 2019 with a new Toolset (v142) and updated template files. This does mean that you will need to update your environment to VS2019 soon as our support for the older versions is being deprecated. We also recommend that you uninstall any older versions of ComputeCpp before installing the latest.

A Single Release Package For Linux

In this release we have moved from having separate release packages for our supported Linux flavours to having a single Linux x86 package.

What this means is that we expect our Linux package to work on various Linux flavours assuming that the pre-requisites for the toolchain are met, but we only test on a subset of Linux systems. The minimum required package base version minimum for support is libstdc++ 3.4.19 and glibc 2.17.

Updated Platform Support

After v2.0.0 we will provide limited support for AMD and NVIDIA hardware because we are reducing our testing efforts for this hardware support. We also recently made a contribution to DPC++ that adds NVIDIA GPU support, you can read about that in our blog post.


As ever if you need support you can put in a request on our forum.