Intel Pushes Cross-Architecture Support in oneAPI Toolkits
Intel has long been the dominant maker of compute chips for servers, PCs and a range of other enterprise systems, with markets shares in the 80% to 90-plus percent range for many of these categories.
However, over the past decade, Intel has seen the competitive waters get increasingly choppy. It’s only due to AMD rising up on the strength of chips built on its Zen microarchitecture and Arm carving a path for its low-power architecture from the mobile world and into the data center, but also the rise of accelerators like GPUs from Nvidia, AMD now Intel, field-programmable gate arrays (FPGAs) and more specific silicon like DPUs (both data and digital processing units), IPUs (intelligence processing units or Intel’s infrastructure processing unit for cloud and communications services providers), to name a few.
The broadening diversity of system chips and accelerators has made life difficult for developers who have had to jump from one architecture to another, juggling different tools for each.
“The days of ‘one size fits all’ hardware — if there ever was one — have disappeared,” James Reinders, an engineer at Intel, told The New Stack. “Now we see more and more novel hardware designed to grab a piece of the pie by being a better mousetrap. Battles for ‘best GPU’ are really heating up, but so are FPGA solutions, and ASICs or custom designs for accelerating machine learning, inferencing, and other AI [artificial intelligence] workloads.”
Consistency Is Key
In such environments, developers need to be able to deploy software consistently across the enterprise, which begins by helping them programs that consistently span the diversity, Reinders said. That was the genesis of Intel’s oneAPI program, which was announced in 2018 and, after going through beta, became generally available in 2020.
OneAPI is designed to offer developers an open and standards-based unified programming model for Intel’s growing array of hardware, including its CPUs and accelerators like GPUs and FPGAs.
“In order for applications to span so many different types of accelerator hardware, we need solutions that help software developers,” Reinders said. “OneAPI does this by universally adopting an approach of ‘all accelerators can be accessed’ equally. As a developer, I’d like to learn how to program once and use it regardless of the hardware.”
That includes everything from debuggers and libraries to compilers, analysis tools and frameworks, all of which can support the hardware rather than needing a different tool for each hardware innovation or vendor. What’s needed when programming a heterogeneous machine — those using accelerators — includes enumerating devices that are available at runtime, offloading work to available devices, error recovery, security, safety, a complete set of developer tools and libraries of “pre-canned solutions” to make programming easier, he said.
OneAPI comes with an open, multivendor and multi-architecture approach to address heterogeneous computing, according to Reinders.
Software Becomes a Focus at Intel
Software has become a key focus for Intel. Over the past year under CEO Pat Gelsinger, the company has made moves and investments to ensure its standing as a key chip manufacturer. However, Gelsinger also has embraced a “software-first” approach, an acknowledgment that in a time of hybrid clouds and the edge, an explosion of data being generated and emerging workloads like AI, machine learning and analytics, the common unifying factor is software.
Gelsinger brought in Greg Lavender as corporate CTO and senior vice president and general manager of Intel’s new Software and Advanced Technology Group. Last year Lavender told journalists that Intel’s “view is, give the market choice, give the developers choice and we want to be the trusted partner that will provide significant amounts of open-source technology, which we already do but we haven’t talked much about it over the last few years.”
New oneAPI 2022 Toolkits
Intel recently released its oneAPI 2022 toolkits, which further expands the number of cross-architecture features that developers can leverage, including high-performance support for programming in such languages as Python, C++, OpenMP, MPI, Fortran, SYCL and C via oneAPI libraries.
The fourth release of the oneAPI tools — 2021.4 — includes new cross-architecture capabilities like a unified compiler implementing C++, SYCL and Fortran for CPUs and GPUs using a common LLVM backend, data-parallel Python for CPUs and GPUs for accelerated compute and an improved DPC++ Compatibility Tool to automatically migrate as much as 95 percent of CUDA code to SYCL/DPC++. CUDA is the programming model developed by Nvidia for its GPUs in heterogeneous computing environments.
Cross-Architecture Support for Developers
Intel officials pointed to an Evans Data survey that showed that 40 percent of developers target heterogeneous systems, which need software that can tie together the CPUs and accelerators that power them. OneAPI uses an open approach to support such machines regardless of vendor or architecture.
“We need that type of future to make use of the rich diversity in hardware platforms from which we will want to benefit,” Reinders said. “If we fail at helping software span this diversity of hardware by being cross-architecture, then we will have an explosion in the number of software stacks that need to be supported across diverse machines.”
The result would be higher IT costs for deploying systems and for developers to support them, he said.
The new toolkit also supports both current and upcoming new chips, including Intel’s such as its Xeon “Sapphire Rapids” CPUs — the fourth generation of the vendor’s Xeon Scalable Processor offerings — and the Xe GPUs for both data center systems and clients.
Other new features include 10-times better deep learning framework performance due to optimization improvements for the open-source TensorFlow and PyTorch machine learning platforms, Intel’s Neural Compressor for better machine learning inference performance, performance analysis for CPUs and accelerators, advanced ray tracing and an expanded development environment support, including deeper Microsoft Visual Studio Code integration, support for Microsoft Visual Studio 2022 and Microsoft WSL2 for Linux development on Windows.
Common Languages and Tools
A key for oneAPI is to ensure that it includes common tools and languages that developers already have been working with, rather than forcing them to learn something new, Reinders said.
“If I’m a Python programmer or data scientist, [Python] needs to be in the frameworks and Python libraries I use,” he said. “If I’m a C++ programmer, that needs to be in the debuggers, the performance analyzers, compilers and libraries that I use. If I’m a Fortran programmer, that needs to be in my debuggers, analyzers, libraries, and compiler support, too. … Having the approach that ‘all accelerators can be accessed’ needs to be serious so that each accelerator can really shine when it is accessed.”
The 2022 oneAPI toolkits are available now for free for download or through the Intel DevCloud