Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

Intel ICX vs DPC++ 2023

Daniel_D
Beginner
1,148 Views

Hi,

 

if I use any sycl code I have to use the Intel DPC++ compiler. If I do not use sycl I can/should/must??? use Intel C++ compiler (ICX). Is there any problem or disadvantage if I 'always' use DPC++?

I do not understand why there are 2 compilers? DPC++ will compile my project even if I do not use any sycl - so there must be a reason why there is ICX for that case.

Can someone please shed some light into this when and why to use ICX or DCP++?

 

Thanks,

Daniel

 

0 Kudos
5 Replies
AndrewC
New Contributor III
1,125 Views

ICL = legacy 'classic' Intel C/C++ compiler , goes back many years. Soon to be "deprecated" and removed from OneAPI distro.

ICX = new Intel C/C++ compiler based on Clang

0 Kudos
Daniel_D
Beginner
1,109 Views

Hi Andrew,

 

Thanks for your reply. I know the difference between ICC and ICX, I'm asking about the difference between ICX and DCP. I just saw that I have some typos in my original question that may cases this confusion. I will fix that.

 

I know that I can use ICX for my C++ projects, but I have a few of the projects of my solution that can make good use and will have performance advantages if I use sycl. So I have to use DCP (for my understanding). So I wonder if it makes sense to change the complete solution to use DCP instead of ICX - if the project uses sycl or not. Is there any disadvantage if I use DCP for a project that does NOT use sycl?

 

Thanks,

Daniel

0 Kudos
SeshaP_Intel
Moderator
1,041 Views

Hi,

 

Thank you for posting in Intel Communities.

 

>>> If I do not use sycl I can/should/must??? use Intel C++ compiler (ICX). Is there any problem or disadvantage if I 'always' use DPC++? I do not understand why there are 2 compilers? Can someone please shed some light into this when and why to use ICX or DCP++?

 

You need to use the Intel DPC++ compiler for the DPC++ project and cannot use the Intel C++ compiler for a DPC++ Project.

Intel DPC++ compiler(dpcpp) is used to execute the C++ with SYCL code. Intel C++ compiler(icpx) is only used to execute the C++ source code.

Intel DPC++ compiler(dpcpp) is deprecated and will be removed in a future release. You can use icpx -fsycl instead of dpcpp.

 

>>> So I wonder if it makes sense to change the complete solution to use DCP instead of ICX - if the project uses sycl or not. Is there any disadvantage if I use DCP for a project that does NOT use sycl?

 

If the project uses any C++ with SYCL code it needs to have the DPC++ compiler. You can also use the DPC++ compiler for running a C++ project that does not use any SYCL code.

 

Please find the below link for more details.

https://www.intel.com/content/www/us/en/develop/documentation/get-started-with-dpcpp-compiler/top/get-started-on-linux.html

Please let us know if you have any further queries.

 

Thanks and Regards,

Pendyala Sesha Srinivas

 

0 Kudos
SeshaP_Intel
Moderator
975 Views

Hi,


Has the information provided above helped? If yes, could you please confirm whether we can close this thread from our end?


Thanks and Regards,

Pendyala Sesha Srinivas


0 Kudos
SeshaP_Intel
Moderator
893 Views

Hi,


We 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 and Regards,

Pendyala Sesha Srinivas


0 Kudos
Reply