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

intel C++ compiler (windows): icx/dpcpp or icl?

fonis
Novice
799 Views

I have installed Intel oneAPI base tool kit which comes with intel C++ compilers.

 

On "Intel oneAPI command prompt for Intel 64 for Visual Studio 2019", I can invoke either of dpcpp  and icx to compile C++ code. 

 

What's really the difference between the two? is it that for data parallel C++ code I need to use dpcpp and I can use either of the two for C++ code? Also, how icx/dpcpp compare with classic C++ compiler (icl on windows)?

 

There is some discussion on the thread major differences between dpcpp-and icx but it does not really answer my question.

0 Kudos
1 Solution
NoorjahanSk_Intel
Moderator
740 Views

Hi,

Thanks for reaching out to us.

 

ICX is Intel's next-gen compiler based on Clang /LLVM technology plus Intel proprietary optimizations and code generation.

 

The DPC++ Compiler compiles C++ and SYCL source files with code for both CPU and different accelerators.

DPCPP is built upon ICX as the underlying C++ Compiler with dpcpp driver.

 

Please refer to the below link for more details:

https://www.intel.com/content/www/us/en/develop/documentation/oneapi-dpcpp-cpp-compiler-dev-guide-and-reference/top/compiler-setup/use-the-command-line/invoke-the-compiler.html

 

ICC(Linux)/ICL(windows) is a classic compiler used to compile applications on CPU targets.

ICL and ICC are independent of icx/dpcpp and neither of them invokes each other

ICX enables OpenMP TARGET offload to Intel GPU targets.

 

Please refer to the below link for more details:

https://www.intel.com/content/www/us/en/develop/documentation/cpp-compiler-developer-guide-and-reference/top/compiler-setup/use-the-command-line/invoke-the-compiler.html

 

Thanks & Regards,

Noorjahan.

 

View solution in original post

2 Replies
NoorjahanSk_Intel
Moderator
741 Views

Hi,

Thanks for reaching out to us.

 

ICX is Intel's next-gen compiler based on Clang /LLVM technology plus Intel proprietary optimizations and code generation.

 

The DPC++ Compiler compiles C++ and SYCL source files with code for both CPU and different accelerators.

DPCPP is built upon ICX as the underlying C++ Compiler with dpcpp driver.

 

Please refer to the below link for more details:

https://www.intel.com/content/www/us/en/develop/documentation/oneapi-dpcpp-cpp-compiler-dev-guide-and-reference/top/compiler-setup/use-the-command-line/invoke-the-compiler.html

 

ICC(Linux)/ICL(windows) is a classic compiler used to compile applications on CPU targets.

ICL and ICC are independent of icx/dpcpp and neither of them invokes each other

ICX enables OpenMP TARGET offload to Intel GPU targets.

 

Please refer to the below link for more details:

https://www.intel.com/content/www/us/en/develop/documentation/cpp-compiler-developer-guide-and-reference/top/compiler-setup/use-the-command-line/invoke-the-compiler.html

 

Thanks & Regards,

Noorjahan.

 

NoorjahanSk_Intel
Moderator
693 Views

Hi,


Thanks for accepting our solution. If you need any additional information, please post a new question as this thread will no longer be monitored by Intel.


Thanks & Regards,

Noorjahan.


0 Kudos
Reply