Unifying the Community around Open Standards Programming for Accelerators
Notable change is happening in the technology industry, with a major shift towards heterogeneous architectures. This has the potential to bring major performance increases for many types of software. The term “heterogeneous” has been around for quite a long time, but only recently has it started to become profoundly important, especially with the emergence and hype curve of modern AI software. Heterogeneous refers to computer architectures that consist of multiple types of processors, often designed to accelerate specific types of workloads, such as CPUs, GPUs, FPGAs, and TPUs, for example. In fact, more than 90% of the top-10 supercomputers in the world are taking advantage of GPUs as part of a heterogeneous architecture, and this percentage grew significantly over the past five years, even before the current AI boom.
Large language model-based applications, such as ChatGPT, have recently grabbed headlines by demonstrating an astounding ability to deliver interactive information to users. What is important to understand is that these models are only possible using heterogeneous architectures. AI software, however, is not the only type that is taking advantage of highly parallel systems though, and right across the industry GPUs are being used to deliver performance that is pushing the boundaries of both research and industry applications in HPC, data center, and embedded environments. This covers many domains like science, healthcare, and finance, to name a few.
What does this mean for the industry and how does this relate to open standards and the UXL Foundation?
The emerging use of GPUs, and increasingly with processors designed for specific workloads (such as AI), is creating a challenge for software developers: They need to develop highly parallel software for multivendor and multiarchitecture systems. A colleague and member of the UXL Steering Committee, Robert Cohn, reminded me how Linux and GNU transformed the software stack for CPUs, in the data center particularly, by using open source and open standards. As a result, developers don’t need to think about what type of CPU they are compiling for when writing software. This is not yet the case for GPUs and AI accelerators but together the industry is working on a solution.
The Unified Acceleration (UXL) Foundation was announced in September and brings together members from across the hardware and software verticals. It is part of the broader Linux Foundation, with the UXL Foundation adopting its open and independent governance model. The goal of the foundation is to unite the accelerator ecosystem around open standards and open-source software so that developers can build applications — now and in the future — able to target multivendor, multiarchitecture systems. If you don’t need to think about the processor you are targeting when writing software, then we have done our job.
The foundation is building on the momentum of the oneAPI specification and projects that implement this specification. These projects are already delivering multivendor targets to developers, and our members will continue to build on these. The specification and projects are being contributed to the foundation by Intel and cover the fundamentals needed by developers to write accelerated applications and workloads. These projects will operate under the open governance principles and processes defined by the UXL Foundation. Critically, what this means is that all contributions are treated equally, and the community can have a voice in shaping the future of the projects through open proposals and discussions.
The UXL Foundation is organized in a way that enables two fundamental areas of collaboration. First, there are a set of Special Interest Groups (SIGs) that are intended to foster discussion and feedback on the projects. These forums host presentations and discussions by both maintainers and contributors on new areas of development and applications for the projects. They are an entirely open place for discussion, and no membership is required to join or propose a topic. Second, the working groups exist to coordinate collaborative work related to the specification and the projects (as you might expect). These groups have recently been formed, and they will define the work packages that the members and community will be executing. There will be opportunities for everyone to contribute, from public build infrastructure and CI, extending the open-source kernels for projects, defining contribution processes, and much in between.
I am the chairperson for the steering committee alongside the other steering member representatives and each organization has an equal voice and a vote in making the high-level decisions for the direction of the foundation.
Even if you cannot join the steering committee, you can play an equally important role in the foundation’s future by joining and contributing to the SIGs, working groups, and work packages. Your input is key, so if you think we are doing things wrong, tell us, and if you think we are doing things right, tell us. We want the foundation to work for the whole community.