Skip to content

Remove FPGA features from DPC++ #16929

Open
@gmlueck

Description

@gmlueck

With the launch of Altera as a separate entity, oneAPI DPC++ will concentrate on support for GPU and CPU devices. Altera will continue to provide FPGA support through their dedicated FPGA software development tools. You can read more about this in the deprecation notice at the top of the oneAPI DPC++ release notes. As a result, the following features are scheduled for removal:

  1. We will remove the sycl_ext_oneapi_annotated_arg extension. We added this in order to decorate kernel arguments with properties, which were mostly specific to FPGA. It is possible that non-FPGA code could use this extension to decorate kernel arguments with the alignment or unaliased properties, though it would be more common to use sycl_ext_oneapi_annotated_ptr for this purpose because these properties apply only to pointers. (Note the difference is “arg” vs. “ptr”.) We plan to keep supporting sycl_ext_oneapi_annotated_ptr. Therefore, code using sycl_ext_oneapi_annotated_arg should migrate to use sycl_ext_oneapi_annotated_ptr instead.

  2. We will remove the sycl_ext_intel_usm_address_spaces extension. This extension adds address spaces named ext_intel_global_device_space and ext_intel_global_host_space as well as multi_ptr aliases named device_ptr and host_ptr (and some other variants). Although it’s possible to use these on non-FPGA devices, they provide no benefit. Therefore, code using this extension should use the standard SYCL address spaces instead.

  3. We will remove the following compiler command line options which are all specific to FPGA:

    • -fsycl-targets=spir64_fpga
    • -fsycl-targets=spir64_fpga-unknown-unknown
    • -fintelfpga
    • -fsycl-help=fpga
    • -fsycl-link=early
    • -fsycl-link=image
    • -reuse-exe
    • -fhls
    • -Xsycl-target-backend=spir64_fpga
  4. We will remove “fpga” from the device types recognized by the ONEAPI_DEVICE_SELECTOR environment variable.

  5. We will remove “fpga” from the device types recognized by the SYCL_DEVICE_ALLOWLIST environment variable.

  6. We will remove all of the following extensions that are specific to FPGA devices:

  7. We will remove two properties from the sycl_ext_oneapi_device_global extension that are specific to FPGA named init_mode and implement_in_csr.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions