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.
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 |
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.
What examples and resources are available?¶
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