Join the Intel® oneAPI Developer Program

By Benjamin J Odom,

Published:11/18/2019   Last Updated:11/17/2019

If you were curious about the oneAPI initiative, now is your chance to check out the Intel® oneAPI public beta and provide feedback. We invite developers to help us craft a new programming paradigm that can enable a single code base to deploy to CPUs GPUs, FPGAs, ASICs and future accelerators.  

oneAPI graphic

Until now, no common programming languages, API libraries or tools could enable developers to consistently support multiple architectures across multiple platforms with near-native performance. Each type of platform and accelerator has required unique tools and applications. The oneAPI initiative aims to create a compiler and libraries to achieve native high-level language performance supporting CPU, GPU, FPGA and ASIC accelerators.  

The oneAPI initiative embraces industry standards and open specifications. It will provide developers with a comprehensive set of tools and libraries enabling them to target Scaler, Vector, Matrix and Spatial architectures (SVMS). In addition, oneAPI is introducing Data Parallel C++ (DPC++) which is a new set of classes based on the SYCL* specification driven by the non-profit Khronos Group.  

The oneAPI specification defines a heterogeneous compute capability using four models.  They specify and define how a developer can take advantage of heterogenous compute resources. These four models will be familiar to SYCL-C users:

  • Platform Model: specifies the host and device
  • Execution Model: specifies the command queues and issuing commands for execution on the device(s)
  • Memory Model: defines how the host and devices interact with memory
  • Kernel Model: defines the code that executes on the device(s), kernel code

The models continue to be a part of DPC++ which extends the SYCL specification and is contributed as open source to the community. DPC++ will use modern C++11 and later language features such as lambdas, templates, parallel_for and closures.  In addition, one of the goals of DPC++ is to provide a higher-level programming language compared to OpenCL; however, those familiar with OpenCL will recognize many similarities as well as many differences—with universal shared memory being one of the more notable differences.  

The Intel® DevCloud Simplifies Development with oneAPI

One of the best ways to explore DPC++ and the Intel® oneAPI Toolkit betas is via the Intel® DevCloud. The free cloud-hosted infrastructure runs the latest® Xeon® Scalable Processors as well as systems with Intel® GPUs and Intel® FPGAs. In addition to accessing all that great hardware, you will keep up with the latest Intel® oneAPI Toolkit betas, including everything you need to develop an application that can deploy to the myriad of hardware available in the DevCloud.

Once you get your credentials, a simple program called welcome_dpcpp enables you to experience your first DPC++ program that offloads compute to a GPU node. Simply login and run /data/oneapi/welcome_dpcpp.sh, and you will be presented with several prompts. They let you copy the program and its source code into your home directory and then offload the execution of the application to a GPU using the DevCloud’s Queue system. Upon inspection of the source, you will see the minimum effort it takes to offload a simple application that returns a char buffer through an input buffer. 

To learn more about the DevCloud, check out the getting started guide. It explains how to execute against the various hardware targets on the infrastructure, and it provides an additional vector-add sample.  In addition, you can find many more samples, with more coming in the future.

As you explore oneAPI beta software, we invite your feedback via forums. In addition, the oneAPI Developer Program team schedules live developer workshops in the Americas, Europe, Asia and Japan—see the updated list on our website.

Explore oneAPI Today

What are you waiting for? Join the beta program! It's your opportunity to work together with Intel to shift the industry to open, cross-architecture software development. Use the Intel® DevCloud for oneAPI projects to develop, test, and run your workloads across a range of Intel® CPUs, GPUs, and FPGAs with the latest Intel® oneAPI beta software.  

Related Content 

oneAPI specification v0.5: The specification includes a direct programming language, powerful APIs, and a low-level hardware interface to architectures beyond the CPU.  

Intel Unveils New GPU Architecture with High-Performance Computing and AI Acceleration, and oneAPI Software Stack with Unified and Scalable Abstraction for Heterogeneous Architectures:  At HPC DevCon, Raja Koduri announced the oneAPI initiative and the release of the Intel oneAPI beta product to developers.

Delivering “One Intel Developer Experience” Online: Intel‘s One Developer Experience means a single sign-on, a single program taxonomy, and easy access to valuable content, tools and trusted support.

Author

Ben Odom PortraitBen Odom, from Intel Architecture Graphics and Software (IAGS) Developer Relations Services (DRS) manages a team of dynamic and outgoing developer evangelists covering multiple technology areas. Currently, his team is focused on Artificial Intelligence, Machine Learning, Game Development, and oneAPI. 

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804