Developer Reference

Migrating OpenCL™ FPGA Designs to SYCL*

ID 767849
Date 12/16/2022
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Additional Information

For additional information, refer to the following resources:

Resource Description
Data Parallel C++: Mastering DPC++ for Programming of Heterogeneous Systems Using C++ and SYCL Third-party open-access book to learn how to accelerate C++ programs using data parallelism. This book enables you to be at the forefront of this exciting and important new development that is helping to push computing to new levels. It is full of practical advice, detailed explanations, and code examples to illustrate key topics.
SYCL 2020 Specification Specifies SYCL requirements and standards.
SYCL* 2020 Specification Features and DPC++ Language Extensions Supported in Intel® oneAPI DPC++/C++ Compiler (icpx) Describes the status of support for SYCL 2020 specification features and SYCL language extensions in the Intel® oneAPI DPC++/C++ Compiler releases.
SYCL Reference Documentation Provides handy reference documentation for SYCL classes member functions, their arguments, and examples.
Intel® oneAPI Base Toolkit

Main landing page of the Intel® oneAPI Base Toolkit, which includes the Intel® oneAPI DPC++/C++ Compiler and provides tools and libraries for developing high-performance, data-centric applications across diverse architectures.

Intel® FPGA Add-on for oneAPI Base Toolkit Main landing page for Intel® FPGA flow.
FPGA Tutorials on Github*

Refer to these tutorials for more in-depth instructions about how to use the FPGA tutorials.

FPGA oneAPI Training

Training site with webinars and quick videos.

FPGA-specific Jupiter Notebooks on DevCloud

Training site to sign-up with the Intel® DevCloud and get hands-on practice with code samples in Jupyter Notebooks* running live on Intel® DevCloud.

Get Started with the Intel® oneAPI Base Toolkit on the DevCloud.

Provides instructions to get started with the Intel® DevCloud, which is a cloud-based development sandbox to actively prototype and experiment with workloads on Intel hardware.

Installation Guide for Intel® oneAPI Toolkits

Provides instructions for installing oneAPI toolkits.

Explore SYCL* Through Intel® FPGA Code Samples

Helps you understand how to navigate the Intel® FPGA SYCL* code samples in a coherent manner that builds on complexity and use-case and get your first oneAPI application on the FPGA with the help of six essential FPGA code samples.

FPGA Workflows on Third-Party IDEs for Intel® oneAPI Toolkits (Eclipse and Visual Studio)

Provides instructions for using Intel® oneAPI tools via third-party integrated development environments (IDEs) on Linux* and Windows* for FPGA development.

FPGA Development for Intel® oneAPI Toolkits with Visual Studio Code on Linux

Provides instructions for using Visual Studio Code on Linux* for FPGA development.

Get Started with the Intel® oneAPI Base Toolkit for Linux*

Provides Linux-specific getting started instructions.

Intel® oneAPI DPC++/C++ Compiler Developer Guide and Reference

Provides information about the Intel® oneAPI DPC++/C++ Compiler (icx-cl/icpx) and runtime environment.

Intel® oneAPI Programming Guide

Describes the oneAPI programming model in detail, including the FPGA flows.

FPGA Optimization Guide for Intel® oneAPI Toolkits Provides guidance on leveraging the functionalities of SYCL to optimize your FPGA design.
Compiling SYCL* FPGA Designs on Red Hat Enterprise Linux (RHEL)* 7.4 OS (Kernel 3.10) Provides instructions to compile your FPGA designs on Red Hat Enterprise Linux (RHEL) 7.4 OS.
NOTE:

oneAPI does not officially support the RHEL 7.4 OS (kernel 3.10) for Intel® FPGAs.

Intel® VTune™ Profiler User Guide

Provides a comprehensive overview of the product functionality, tuning methodologies, workflows, and instructions to use Intel® VTune Profiler performance analysis tool.

Analyzing CPU and FPGA (Intel® Arria® 10 GX) Interaction

Provides instructions for configuring your platform to analyze an interaction of your CPU and FPGA using the Intel® Arria® 10 GX FPGA as an example.

Profiling an FPGA-driven SYCL Application

Provides instructions for profiling an FPGA-driven SYCL application.

Intel® FPGA SDK for OpenCL™ Pro Edition Documentation Provides links to all guides pertaining to Intel® FPGA SDK for OpenCL™ Pro Edition software.
Intel® FPGA SDK for OpenCL™ Pro Edition: Custom Platform Toolkit User Guide

Outlines the procedure for creating an Intel® FPGA Software Development Kit (SDK) for OpenCL™ Pro Edition Custom Platform.

Intel® Quartus® Prime Software User Guides

Provides links to various Intel® Quartus® Prime user guides, which cover specific topics to help you see your design through to completion.

Intel® Acceleration Stack Quick Start Guide for Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA

Serves as a high-level quick start guide to help install key software packages, update the flash image, run diagnostics, and manage security for Intel® PAC with Intel® Arria® 10 GX FPGA.

Intel® Acceleration Stack Quick Start Guide: Intel® FPGA Programmable Acceleration Card D5005

Serves as a high-level quick start guide for Intel® FPGA PAC D5005 to help you install OPAE on the host Intel® Xeon® Processor to manage and access the Intel FPGA PAC, manage flash image, run an example, and handle graceful thermal shutdown.

Get Started with Intel® Distribution for GDB* on Linux* OS Host

Provides instructions for using Intel® Distribution for GDB* for debugging SYCL and OpenCL™ applications.