Migrating to SYCL
One-stop forum for getting assistance migrating your existing code to SYCL

SYCL for ARM

Roin
Beginner
2,796 Views

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

0 Kudos
3 Replies
ManjulaC_Intel
Moderator
2,678 Views

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.

 

https://www.intel.com/content/www/us/en/develop/documentation/get-started-with-intel-oneapi-base-linux/top/before-you-begin.html

 

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)

https://www.intel.com/content/www/us/en/developer/articles/system-requirements/intel-oneapi-dpcpp-system-requirements.html

 

>>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

 

0 Kudos
ManjulaC_Intel
Moderator
2,627 Views

Hi,


A gentle reminder to respond.


Thanks & Regards,

Manjula


0 Kudos
ManjulaC_Intel
Moderator
2,580 Views

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


0 Kudos
Reply