Building an Open, Standards-Based Ecosystem for Heterogeneous Parallelism

ID 标签 672367
已更新 10/30/2020
版本 Latest
公共

author-image

作者

Guest Editorial

Andrew Richards, CEO and founder, Codeplay
@IntelDevTools

Get the Latest on All Things CODE
Sign Up


Codeplay*, based in Edinburgh, Scotland, started developing tools for graphics processors more than a decade ago. We always thought developers would do more than just graphics processing with GPUs because they’re so incredibly powerful. But we’re now seeing demand in a wide range of fields—from self-driving cars to the latest exascale supercomputers.


 

What’s become clear is that the only way GPU programming works is if we standardize it. That’s the only way to get software developers and hardware companies working together. Also, the only way to create a vision where developers can write C++ and actually make it run very fast on lots of different platforms is by having standards.

Codeplay led the definition of the SYCL* programming model, an open standard designed to bring performance and portability to software developers writing parallel applications. We’ve always believed that open standards are the way forward to enable a broad community of developers. In fact, we’ve spent many years successfully working with processor vendors to enable their processors for software developers using open standards.

SYCL is designed as a C++ programming model for accelerators (for example, GPUs, FPGAs, and specialist processors like DSPs). If you want to productively develop software that gives great performance on one of these processors, you need a well-defined programming model. You also need highly optimized libraries that do specific things. So, if you want to do matrix multiplication, for example, SYCL allows you to write your own matrix multiply operation.

What it doesn’t do is work out exactly the right algorithms to run on each type of processor.

This is where oneAPI helps. oneAPI is an industry initiative that encourages collaboration on open specifications and compatible implementations across the ecosystem. oneAPI actually delivers matrix multiplication, convolutions, and all sorts of standard, high-performance software libraries built on top of these open, standard programming models. The key thing is that it all fits together, and that’s what makes it successful.

It’s been great to see the SYCL standard adopted by Intel. The Intel® oneAPI DPC++/C++ Compiler, which is part of oneAPI, implements SYCL, and Intel is contributing greatly to SYCL’s evolution.

Developers are increasingly looking for solutions that offer openness rather than proprietary programming interfaces. What’s great about oneAPI is that it integrates with other open standards and open-source frameworks.

The learnings from the oneAPI initiative are already feeding back into other standards bodies, like the SYCL and C++ language standards. oneAPI also uses the SPIR-V* standard, which is another open standard from Khronos* Group that defines the intermediate format for compiler tools enabling exciting technologies as AI graph compilers, for example.

Andrew Richards concludes, "vision of oneAPI says it does everything for everyone, making it possible to run every bit of software everywhere. But it’s also very pragmatic. oneAPI understands that it's part of a wider ecosystem. I think that’s really important for those of us actually building real technology."

Find out more about SYCL and see the oneAPI specifications.