- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
As I read the build configuration of Intel/llvm (https://github.com/intel/llvm/blob/sycl/sycl/doc/GetStartedGuide.md#build-dpc-toolchain), I found it allows using ARM for the target device. It's confusing for me as in the documents (community.intel.com/t5/Intel-oneAPI-Data-Parallel-C/Can-DPC-compile-programs-for-other-ISA/m-p/1366336#M1941) they said DPCPP didn't support non-x86 ISA.
From my understanding, SYCL (Intel version)== DPCPP. But I also don't find header such as <dpct/dpct.hpp> in the SYCL repo.
All in all, my question is:
[1] does Intel SYCL equal to DPC++? If not, what's the difference?
[2] Where can I find the <dpct/dpct.hpp> header file? Is that open source?
[3] whether we can execute SYCL (or DPC++) on non-x86 ISA?
[4] what is dpct? I think dpct is used for translating CUDA to DPC++. But if so, why <dpct/dpct.hpp> existed in the translated DPC++ code (e.g., https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compatibility-tool.html#gs.sie2gh)?
Thanks
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Thanks for reaching out to us.
>>does Intel SYCL equal to DPC++? If not, what's the difference?
DPC++ = Khronos SYCL + Intel extensions
Khronos SYCL:
• SYCL is a cross-platform abstraction layer that builds on OpenCL
• SYCL includes templates and lambda functions
• DPC++ includes all of SYCL
Intel extensions:
• critical support for Unified Shared Memory(USM),
• Work-group collectives
• Subgroups
intel::sub_group
• Additional Selector:
Include: CL/sycl/intel/fpga_extensions.hpp
intel::fpga_selector
>>Where can I find the <dpct/dpct.hpp> header file? Is that open source?
The Intel DPCT is part of Intel oneAPI Base Toolkit and it can be downloaded from below path.
https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit-download.html
For Linux OS(users), go through the below link for getting started with Intel oneAPI Base Toolkit.
In Linux OS, After installing Intel oneAPI BaseToolkit you can find "dpct/dpct.hpp" header file in one of the below locations.
/opt/intel/oneapi/dpcpp-ct/2022.0.0/include/dpct/dpct.hpp
or
~/intel/oneapi/dpcpp-ct/2022.0.0/include/dpct/dpct.hpp
>>whether we can execute SYCL (or DPC++) on non-x86 ISA?
The DPC++ Compiler compiles C++ and SYCL source files with code for both CPU and a wide range of compute accelerators such as GPU and FPGA.
And below link provides the DPC++ Hardware requirements (Supported Hardware)
>>what is dpct? I think dpct is used for translating CUDA to DPC++. But if so, why <dpct/dpct.hpp> existed in the translated DPC++ code
Intel® DPC++ Compatibility Tool (DPCT) assists in migrating your existing CUDA code to DPC++ code.DPC++ is based on modern C++ and incorporates portable industry standards such as SYCL. And it can be found in Intel oneAPI Base Toolkit.
Intel DPCT tool adds these supporting headers and wrapper functions while migrating the CUDA Code.
Thanks & Regards,
Manjula
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
A gentle reminder to respond.
Thanks & Regards,
Manjula
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I have not heard back from you. I assume that your issue is resolved. If you need any additional information, please post a new question as this thread will no longer be monitored by Intel.
Thanks & Regards
Manjula Challa

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page