Intel OneAPI for Reconfigurable Computing

Intel has recently released their oneAPI framework for programming CPUs, GPUs, and FPGAs. oneAPI or Data-parallel C++ (DPC++) is a variant of the SYCL language with added features to better support Intel platforms. Note that much of the DPC++ ecosystem is built on LLVM, so related tools like HipSYCL and Xilinx’s SYCL support may be compatible with DPC++ code (see Xilinx’s triSYCL for an example).

Acknowledgments

We appreciate the donation of software licenses from Intel’s University Program.

Xilinx FPGA Hardware

Currently, the Rogues Gallery hosts the following Xilinx FPGA hardware.

Server-based Hardware
FPGA Board FPGA Chip Memory Hosting Machine Notes
Stratix 10 PAC     flubber3  
Development Board Hardware
FPGA Board FPGA Chip Memory Hosting Machine Notes
TBD        

What tools are available?

OneAPI is available as a base toolkit, which includes tools like vTune and the Application Performance Snapshot Tool, Intel Advisor, and a DCPP Compatibility tool for migrating CUDA codes to DPC++.

There are also toolkits for HPC, Deep Learning Framework, FPGA, and OpenVino that build on the base oneAPI toolkit.

How can I test out oneAPI for FPGAs?

There are several resources for using oneAPI both online and at Georgia Tech. The OneAPI FPGA code samples tutorial is a good place to start.

Online oneAPI Resources

  • Docker containers with the “base” toolkit
  • Intel DevCloud - you can easily get a 3 month pass that can be extended by registering a project on the “Intel DevMesh”. Once you sign up, you can connect either via an SSH terminal (using a provided SSH config script) or using a JupyterHub notebook interface. There are workshop files that can be copied to your home directory using the following command: /data/oneapi_workshop/get_oneapi_workshop.sh