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