Intel oneAPI Project: many architectures, one API
At Intel Software Technology Day in June, the company's leading engineers talked about a software project called Intel oneAPI, a unified programming model to facilitate the development of software for a variety of computing architectures, including a new programming language. In this post we will give a brief description of this project - as they say, to be continued ...
oneAPI is a project that develops a unified set of tools for developers of productive software. The park of computing platforms has recently expanded greatly due to specialized accelerators. Intel will provide software solutions that allow developers to squeeze maximum performance out of heterogeneous iron.Bill Savage, Intel Vice President, General Manager, Compute Performance Developer Products Division
As we notice, the tasks that we load on the computing power available to us become more diverse - as well as the architectures of these capacities, divided into Scalar (CPU), Vector (GPU), Matrix (AI accelerators) and Spatial (FPGA). This entire set of architectures, called Intel SVMP (SVMS), requires an efficient programming model for maximum performance. The task of oneAPI is to ensure ease of use and efficiency, eliminating the need to maintain architecture-dependent versions of the code, using different programming languages and development tools for them.
An example of how Intel already implements cross-platform development is Intel OpenVINO , a set of tools for a software developer that provides a consistent, optimized inference process for deep learning algorithms based on any Intel UHMW architecture.
oneAPI supports direct programming and API programming by providing a unified programming language and unified libraries providing maximum native code performance on various UHMWP platforms.
- Direct programming oneAPI contains the new programming language Data Parallel C ++ (DPC ++) - an open, comprehensive alternative to proprietary languages for specific architectures. DPC ++ provides convenience and performance using a programming model familiar to developers. DPC ++ is based on C ++, includes SYCL from The Khronos Group, as well as extensions developed in the open community.
- API programming. The oneAPI libraries allow you to deploy multiple load domains for which optimization is possible. Library functions are customized for specific architectures.
In addition, Intel will provide improved versions of analysis and debugging tools (Intel VTune Amplifier, Intel Advisor) that support DPC ++ and the whole set of UHMW architectures.
The beta version of oneAPI for developers, as well as additional details regarding it, will be available at the end of 2019.