intel / intel-graphics-compiler

Other
594 stars 155 forks source link

1.0.16747.5: not ready for latest LLVM 18.1.5 (it wants two years old 14.0.6) #329

Closed kloczek closed 4 months ago

kloczek commented 4 months ago

Like it is in title

+ /usr/bin/cmake -B x86_64-redhat-linux-gnu -D BUILD_SHARED_LIBS=ON -D CMAKE_AR=/usr/bin/gcc-ar -D CMAKE_BUILD_TYPE=RelWithDebInfo -D CMAKE_C_FLAGS_RELEASE=-DNDEBUG -D CMAKE_CXX_FLAGS_RELEASE=-DNDEBUG -D CMAKE_Fortran_FLAGS_RELEASE=-DNDEBUG -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_NM=/usr/bin/gcc-nm -D CMAKE_RANLIB=/usr/bin/gcc-ranlib -D CMAKE_VERBOSE_MAKEFILE=ON -D INCLUDE_INSTALL_DIR=/usr/include -D LIB_INSTALL_DIR=/usr/lib64 -D LIB_SUFFIX=64 -D SHARE_INSTALL_PREFIX=/usr/share -D SYSCONF_INSTALL_DIR=/etc -S . -D BUILD_SHARED_LIBS=OFF -D IGC_BUILD__VC_ENABLED=ON -D IGC_OPTION__CLANG_MODE=Prebuilds -D IGC_OPTION__LINK_KHRONOS_SPIRV_TRANSLATOR=ON -D IGC_OPTION__LLD_MODE=Prebuilds -D IGC_OPTION__LLVM_MODE=Prebuilds -D IGC_OPTION__SPIRV_TOOLS_MODE=Prebuilds -D IGC_OPTION__SPIRV_TRANSLATOR_MODE=Prebuilds -D IGC_OPTION__USE_PREINSTALLED_SPIRV_HEADERS=ON -D IGC_OPTION__VC_INTRINSICS_MODE=Source -D INSTALL_GENX_IR=ON -D IGC_OPTION__ARCHITECTURE_TARGET=Linux64 -D LLVM_VERSION_PREFERRED=18.1.5
-- The C compiler identification is GNU 14.1.1
-- The CXX compiler identification is GNU 14.1.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Warning at IGC/CMakeLists.txt:101 (message):
  CMAKE_BUILD_TYPE: Unknown build configuration.  The following
  configurations are available: Debug;Release.

  The "Release" configuration will be used.

  This value has meaning only for single-configuration generators (like
  Make).  It will be ignored for MSVC/XCode.

CMake Deprecation Warning at IGC/MDAutogen/CMakeLists.txt:9 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

-- ================================ IGC Project ================================
-- Build type:  Release (single-configuration generator)
-- Build tools: OFF
--
-- Output directory:
--    "/home/tkloczko/rpmbuild/BUILD/intel-graphics-compiler-igc-1.0.16747.5/x86_64-redhat-linux-gnu/IGC/Release"
-- Install root directory:
--    "/usr"
-- Architecture:
--  - target: Linux64    (detected: Linux64)
--  - host:   Linux64    (detected: Linux64)
--
-- Cross-compilation needed: NO
-- Cross-compilation set:    FALSE
--
-- Advanced:
--  - Link BiF resources:              ON
--  - Building Windows Universal:
-- =============================================================================
-- [LLVM] Current value of CMAKE_CURRENT_SOURCE_DIR : /home/tkloczko/rpmbuild/BUILD/intel-graphics-compiler-igc-1.0.16747.5/IGC
-- [Clang] Will use Clang prebuilds
-- IGC_LLVM_SPIRV_PATHS: /home/tkloczko/rpmbuild/BUILD/intel-graphics-compiler-igc-1.0.16747.5/external/llvm/../../../SPIRV-LLVM-Translator;/home/tkloczko/rpmbuild/BUILD/intel-graphics-compiler-igc-1.0.16747.5/external/llvm/../../../../SPIRV-LLVM-Translator;/home/tkloczko/rpmbuild/BUILD/intel-graphics-compiler-igc-1.0.16747.5/external/llvm/../../../llvm-spirv;/home/tkloczko/rpmbuild/BUILD/intel-graphics-compiler-igc-1.0.16747.5/external/llvm/../../../../llvm-spirv
-- [SPIRV] Will use SPIRV translator prebuilds
-- [LLVM] Current value of CMAKE_CURRENT_SOURCE_DIR : /home/tkloczko/rpmbuild/BUILD/intel-graphics-compiler-igc-1.0.16747.5/IGC
-- [lld] Will use lld prebuilds
-- [LLVM] Current value of CMAKE_CURRENT_SOURCE_DIR : /home/tkloczko/rpmbuild/BUILD/intel-graphics-compiler-igc-1.0.16747.5/IGC
-- [IGC] IGC will take prebuilt LLVM
-- [IGC] Searching for prebuilt LLVM in /llvm_prebuilt_windows_14.0.5;/prebuild-llvm;/opt/intel-llvm-static-14.0.5 and system directories
CMake Error at IGC/cmake/igc_llvm.cmake:14 (find_package):
  Could not find a configuration file for package "LLVM" that is compatible
  with requested version "14.0.5".

  The following configuration files were considered but not accepted:

    /usr/lib64/cmake/llvm/LLVMConfig.cmake, version: 18.1.5
    /lib64/cmake/llvm/LLVMConfig.cmake, version: 18.1.5

Call Stack (most recent call first):
  IGC/CMakeLists.txt:1326 (include)

-- Configuring incomplete, errors occurred!
kloczek commented 4 months ago

Other think is that currently igc cmake seems do not support standard build type RelWithDebInfo https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html

pszymich commented 4 months ago

Hi @kloczek, indeed LLVM 14 is the last production-level supported version. LLVM 15/16 support is being worked on and it's still months away. Given the long timeline, I'm closing the issues as won't do. Supporting RelWithDebInfo is also not planned.

kloczek commented 4 months ago

So in other words igc is useless ..

kloczek commented 3 months ago

Is it any reason why latest LLVM is not supported? 🤔

pszymich commented 3 months ago

We are working on opaque pointers compatibility. Starting with LLVM 16 typed pointers are supported in upstream as a best-effort which does not suit our production quality requirements. Besides the opaque pointers situation, we only switch to a newer LLVM release once we achieve 100% passrate on the new configuration, which takes the majority of the upgrade time.

kloczek commented 3 months ago

Please drop LLVM 16 support because from few months already is available LLVM 18.1.x (latest one is 18.1.6).

pszymich commented 3 months ago

Upgrading to a new LLVM version requires integrating thousands of commits at once and skipping versions multiplies that. This makes the debugging complex and we are working on redesigning the process, eg. to possibly integrate a limited number of commits at a time. Further production quality versions will most likely be announced version-by-version.

kloczek commented 3 months ago

Last 16.x has been release YEAR ago. https://github.com/llvm/llvm-project/releases/tag/llvmorg-16.0.6 Better is to not waste time on update to version which is no longer supported and none of the distros is using as primary LLVM compiler. Only this and nothing more ..