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

LLVM Plugin support with ICPX / DPCPP

fodinabor
Beginner
1,554 Views

Hi,

I'm currently researching some compiler optimizations for the CPU backend of the hipSYCL project inside a Clang & LLVM plugin. As we have to heavily rely on the compiler's auto-vectorizer, I wanted to have a look at whether I could take advantage of ICPX's promised performance benefits as it's based on LLVM and I guess there are others out there who'd benefit from this.

To do so, I'd have to be able to compile the plugin either against ICPX directly, thus requiring the necessary dev files (headers & libs), or find an API and ABI compatible LLVM version to build against and then just use the plugin with ICPX.

As the latter is very brittle, given there probably are some not easily observable changes in ICPX and guessing a good LLVM version being non-trivial, too.

Thus I'd like to ask whether there's any chance to get access to the required (binary) dev files or there's any other opportunity to use LLVM plugins with the production compilers.

Thanks!
Joachim

0 Kudos
7 Replies
NoorjahanSk_Intel
Moderator
1,510 Views

Hi,


Thanks for reaching out to us.


>>whether there's any chance to get access to the required (binary) dev files


You can use icpx/dpcpp from opensource oneAPI to get the dev files but access to required Intel oneAPI (binary) dev files may not be possible.


You can refer the below link regarding opensource oneAPI:

https://www.oneapi.io/open-source/


Thanks & Regards

Noorjahan.


0 Kudos
NoorjahanSk_Intel
Moderator
1,461 Views

Hi,


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


Thanks & Regards,

Noorjahan.


0 Kudos
fodinabor
Beginner
1,446 Views

Hi,

I know I could use the https://github.com/intel/llvm project and build the plugin against that.

But to my knowledge, this Open Source project is mostly a staging repository and does not contain the vectorizer optimizations that bring the promised performance uplift compared to upstream LLVM. So to be able to take advantage of these improvements in conjunction with the LLVM plugin, to my knowledge, I'd have to directly build against and use the binary distributions of ICPX / DPCPP.

Please correct me if anything of the above is wrong, but right now, I don't think the inquiry is solved.

Being able to build the plugin does not require the full compiler to be open-sourced, but just shipping some additional files, that also don't expose much more of trade secrets than the binary distribution does already. Those additional files are shipped in a separate package for most other projects, so only those that need them, have to install them.

I'd really appreciate, if adding those development files would be considered!

Greetings,

Joachim

0 Kudos
NoorjahanSk_Intel
Moderator
1,431 Views

Hi,


We are looking into it. We will get back to you soon.


Thanks & Regards

Noorjahan.


0 Kudos
cw_intel
Moderator
1,382 Views

Thanks for contacting us. We will let you know soon.


0 Kudos
cw_intel
Moderator
1,057 Views

Hi,


I'm sorry to say that we can’t ship it since this involves Intel IP.


Thanks


0 Kudos
cw_intel
Moderator
975 Views

Hi,


We will no longer respond to this thread.  If you require additional assistance from Intel, please start a new thread. Any further interaction in this thread will be considered community only.


Thanks


0 Kudos
Reply