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.

Intel FPGA Hardware

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

Server-based Hardware
FPGA Board FPGA Chip Memory Hosting Machine Notes
Bittware IA-840F AGF027 128 GB DDR4 flubber10 Currently being set up!
Stratix 10 PAC GX2800 32 GB DDR4 flubber3  
Bittware 520N GX2800 16 GB DDR4 flubber2  
Bittware 520N-MX MX2100 16 GB HBM flubber3  
Intel Arria10 PAC GX1150 8GB DDR4 flubber2  
Bittware 385-A GX1150 8 GB DDR3 flubber2 Shared via the GTRI Cipher lab
Bittware 385-SoC SX660 (Arm+GX1150) 6 GB DDR4 flubber3 Shared via the GTRI CIPHER lab
Development Board Hardware
FPGA Board FPGA Chip Memory Hosting Machine Notes
Intel Arria10 DevKit GX1150 4 GB DDR3 NA Available upon request

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