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:
 does Intel SYCL equal to DPC++? If not, what's the difference?
 Where can I find the <dpct/dpct.hpp> header file? Is that open source?
 whether we can execute SYCL (or DPC++) on non-x86 ISA?
 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 for reaching out to us.
>>does Intel SYCL equal to DPC++? If not, what's the difference?
DPC++ = Khronos SYCL + Intel extensions
• SYCL is a cross-platform abstraction layer that builds on OpenCL
• SYCL includes templates and lambda functions
• DPC++ includes all of SYCL
• critical support for Unified Shared Memory(USM),
• Work-group collectives
• Additional 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.
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.
>>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,
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