ROOT 6.26/04: Compilation failure related to AVX512 on Ubuntu 14.04


Hello experts,

I am trying to compile ROOT 6.26/04 on ubuntu14.04. I am running into a issue with compiling root/roofit/batchcompute code. The compiler throws out a bunch of invalid register operand errors that lists avx512 related instructions. I am able to circumvent this and compile successfully by going into root/roofit/batchcompute/CMakeLists.txt and commenting the following lines:

  # AVX512 is only supported in gcc 6+
  # We focus on AVX512 capable processors that support at least the skylake-avx512 instruction sets.
  if(NOT (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 6)
    ROOT_LINKER_LIBRARY(RooBatchCompute_AVX512  src/RooBatchCompute.cxx src/ComputeFunctions.cxx TYPE SHARED DEPENDENCIES RooBatchCompute)
    target_compile_options(RooBatchCompute_AVX512  PRIVATE ${common-flags} -march=skylake-avx512 -DRF_ARCH=AVX512)
  endif()

Is this the correct way to address the problem? What else can be done without altering the source code?

Cheers!

ROOT Version: 6.26/04
Platform: Ubuntu 14.04
Compiler: GCC 11.3.0, C++17


Welcome to the ROOT Forum! And yes, I think it’s the only way to address the issue

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.