Visible to Intel only — GUID: GUID-8B35497C-D473-45F9-A121-CBD71E8DB944
Prerequisites
This guide assumes the following:
- You have experience working with OpenCL™ for FPGAs.
- You have experience programming with C++, especially namespaces, exceptions, templates, lambdas, and functors.
- You are familiar with SYCL* concepts and application programming interfaces (APIs).
- You have a preliminary knowledge of programming SYCL applications for CPU, GPU, FPGA, or AI accelerators.
If you are new to SYCL, consider reviewing the following resources first:
- Visit the Explore SYCL* Through Intel® FPGA Code Samples guide and follow all Tier 1 tutorials and the explicit_data_movement tutorial in Tier 2. You can find the tutorials on GitHub.
- For a high-level overview of oneAPI, Intel oneAPI Toolkits, and related resources, refer to the Intel® oneAPI Programming Guide.
- To achieve the highest performance with your SYCL application for FPGAs, you should be familiar with FPGA hardware and understand the compiler optimizations that convert and map your design to FPGAs. Many of these concepts are the same, whether the FPGA design is written in SYCL or OpenCL, so your experience with Intel® FPGA SDK for OpenCL™ carries over. For more information, refer to the FPGA Optimization Guide for Intel® oneAPI Toolkits, Chapter 1: Introduction To FPGA Design Concepts.
For additional information about the SYCL concepts, read the open-access book Data Parallel C++: Mastering DPC++ for Programming of Heterogeneous Systems Using C++ and SYCL. You can also consult the SYCL 2020 Specification.
Parent topic: Migrating OpenCL™ FPGA Designs to SYCL*