gentooLTO icon indicating copy to clipboard operation
gentooLTO copied to clipboard

Use of Intel® oneAPI DPC++/C++ Compiler (ICX and ICPX)

Open OpenSourceAnarchist opened this issue 3 years ago • 2 comments

Hi all,

It's been awhile since I attempted setting up Gentoo with this overlay, but I was wondering if, for those with Intel CPUs, has anyone attempted to install and use Intel's new C/C++ compiler which is now based on LLVM? You can find a standalone release here: https://www.intel.com/content/www/us/en/developer/articles/tool/oneapi-standalone-components.html#dpcpp-cpp

It's free to use, but is proprietary and requires accepting a EULA. However, they claim anywhere from 15-60% performance improvements compared to GCC or even Clang... I think this might be worth looking into, especially if it can be a drop-in replacement for Clang (it supports all of Clang's flags, if passed after -Xclang). All optimizations can be enabled with the -fast flag (see the reference documentation). You may also want to enable -falign-functions=32 and to look at the reference documentation for more specific compiler and linker options (-fast enables IPO/LTO), but if you want to try other optimization levels, you can mix and match flags like -O3 -ipo4, which should be equivalent to -O3 -flto=4. Take a look at the full Reference Guide!

I wish it was open-source, as that would certainly make its adoption easier, but it still seems worth exploring if their numbers are accurate and generalize outside of benchmarks.

I guess I'm wondering what to change in make.conf to enable this globally, and whether more advanced users (than me) would be willing to temporarily try this compiler out system-wide. I assume other flags might be needed to ensure compatibility with GCCisms (pragmas), similar to packages that need help compiling with Clang.

I don't have access to AMD hardware, but it would be interesting to have users of this repo compare performance of the same program compiled with gcc, clang, AOCC, and icx/icpx. Perhaps we can get a Wiki page going similar to the one that already exists for AOCC, but for icx/icpx.

OpenSourceAnarchist avatar Dec 30 '21 20:12 OpenSourceAnarchist

Currently that compiler doesn't work with an unpatched Meson, I've filed (https://github.com/mesonbuild/meson/issues/8113) with them in 2020 and a patch is floating around to get it working, but upstream demanded some re-work and that stalled this work until this date.

ms178 avatar Aug 05 '22 15:08 ms178

It's cool but I doubt that I would want a propietary compiler on my system

TheMBL09898 avatar Aug 05 '22 19:08 TheMBL09898