srsRAN Docker Build Issue with -DAUTO_DETECT_ISA=False #779
-
Hiii srsRAN Community, I'm facing an issue while compiling srsRAN in Docker. On my VM, I resolved an ISA-related error by adding 76.44 [ 23%] Building CXX object lib/cu_cp/mobility_manager/CMakeFiles/srsran_cu_cp_mobility_manager.dir/mobility_manager_impl.cpp.o
76.82 In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:99,
76.82 from /src/lib/phy/upper/equalization/../../../srsvec/simd.h:37,
76.82 from /src/lib/phy/upper/equalization/equalize_mmse_1xn.h:28,
76.82 from /src/lib/phy/upper/equalization/channel_equalizer_generic_impl.cpp:27:
76.82 /usr/lib/gcc/x86_64-linux-gnu/11/include/fmaintrin.h: In function 'srsran::simd_f_t srsran::srsran_simd_f_fma(srsran::simd_f_t, srsran::simd_f_t, srsran::simd_f_t)':
76.82 /usr/lib/gcc/x86_64-linux-gnu/11/include/fmaintrin.h:63:1: error: inlining failed in call to 'always_inline' '__m256 _mm256_fmadd_ps(__m256, __m256, __m256)': target specific option mismatch
76.82 63 | _mm256_fmadd_ps (__m256 __A, __m256 __B, __m256 __C)
76.82 | ^~~~~~~~~~~~~~~
76.82 In file included from /src/lib/phy/upper/equalization/equalize_mmse_1xn.h:28,
76.82 from /src/lib/phy/upper/equalization/channel_equalizer_generic_impl.cpp:27:
76.82 /src/lib/phy/upper/equalization/../../../srsvec/simd.h:434:25: note: called from here
76.82 434 | return _mm256_fmadd_ps(a, b, acc);
76.82 | ~~~~~~~~~~~~~~~^~~~~~~~~~~
76.85 make[2]: *** [lib/phy/upper/equalization/CMakeFiles/srsran_channel_equalizer.dir/build.make:76: lib/phy/upper/equalization/CMakeFiles/srsran_channel_equalizer.dir/channel_equalizer_generic_impl.cpp.o] Error 1
76.85 make[1]: *** [CMakeFiles/Makefile2:10907: lib/phy/upper/equalization/CMakeFiles/srsran_channel_equalizer.dir/all] Error 2
76.85 make[1]: *** Waiting for unfinished jobs....
76.85 [ 23%] Building CXX object lib/phy/upper/channel_processors/pusch/CMakeFiles/srsran_pusch_processor.dir/pusch_processor_validator_impl.cpp.o
77.82 [ 23%] Building CXX object lib/phy/upper/channel_processors/pusch/CMakeFiles/srsran_pusch_processor.dir/pusch_decoder_hw_impl.cpp.o
78.31 [ 23%] Building CXX object lib/support/CMakeFiles/srsran_support.dir/executors/task_worker.cpp.o
78.55 [ 23%] Building CXX object lib/phy/upper/channel_processors/pusch/CMakeFiles/srsran_pusch_processor.dir/ulsch_demultiplex_impl.cpp.o
78.72 [ 24%] Building CXX object lib/support/CMakeFiles/srsran_support.dir/executors/task_worker_pool.cpp.o
79.33 [ 24%] Building CXX object lib/support/CMakeFiles/srsran_support.dir/executors/unique_thread.cpp.o
79.65 [ 24%] Linking CXX static library libsrsran_cu_cp_mobility_manager.a
79.66 [ 24%] Built target srsran_cu_cp_mobility_manager
79.67 [ 24%] Building CXX object lib/support/CMakeFiles/srsran_support.dir/backtrace.cpp.o
79.69 [ 24%] Building CXX object lib/support/CMakeFiles/srsran_support.dir/bit_encoding.cpp.o
80.04 [ 24%] Building CXX object lib/support/CMakeFiles/srsran_support.dir/byte_buffer.cpp.o
80.09 [ 24%] Linking CXX static library libsrsran_pusch_processor.a
80.10 [ 24%] Building CXX object lib/support/CMakeFiles/srsran_support.dir/byte_buffer_chain.cpp.o
80.12 [ 24%] Built target srsran_pusch_processor
80.13 [ 24%] Building CXX object lib/support/CMakeFiles/srsran_support.dir/config_yaml.cpp.o
80.44 [ 24%] Building CXX object lib/support/CMakeFiles/srsran_support.dir/cpu_architecture_info.cpp.o
80.51 [ 24%] Building CXX object lib/support/CMakeFiles/srsran_support.dir/event_tracing.cpp.o
81.26 [ 24%] Building CXX object lib/support/CMakeFiles/srsran_support.dir/signal_handling.cpp.o
81.55 [ 24%] Building CXX object lib/support/CMakeFiles/srsran_support.dir/sysinfo.cpp.o
81.59 [ 24%] Building CXX object lib/support/CMakeFiles/srsran_support.dir/timers.cpp.o
81.63 [ 24%] Building CXX object lib/scheduler/config/CMakeFiles/sched_config_manager.dir/sched_config_manager.cpp.o
81.65 [ 24%] Building CXX object lib/support/CMakeFiles/srsran_support.dir/math_utils.cpp.o
83.89 [ 24%] Built target sched_config_manager
84.15 [ 24%] Linking CXX static library libsrsran_support.a
84.20 [ 24%] Built target srsran_support
84.20 make: *** [Makefile:146: all] Error 2
------
failed to solve: process "/bin/sh -c if [ -z \"$NUM_CORES\" ]; then NUM_CORES=$(nproc); fi && LIB_UPPER=$(echo $LIB | tr '[:lower:]' '[:upper:]') && export ${LIB_UPPER}_DIR=\"/opt/${LIB}/${LIB_VERSION}\" && /src/docker/scripts/builder.sh -m \"-j${NUM_CORES} install\" -DBUILD_TESTS=True -DENABLE_${LIB_UPPER}=On -DCMAKE_CXX_FLAGS=\"-march=${ARCH}\" -DCMAKE_INSTALL_PREFIX=/opt/srs -DAUTO_DETECT_ISA=False -DCMAKE_CXX_FLAGS=\"-march=native\" ${EXTRA_CMAKE_ARGS} /src" did not complete successfully: exit code: 2 Here's the relevant Dockerfile snippet:
Has anyone encountered this before or has any suggestions? Any help would be greatly appreciated. Additional informaionIn the past, I added If I don't add srsran_gnb | --== srsRAN gNB (commit ) ==--
srsran_gnb |
srsran_gnb |
srsran_gnb | The PRACH detector will not meet the performance requirements with the configuration {Format 0, ZCZ 0, SCS 1.25kHz, Rx ports 1}.
srsran_gnb | srsRAN ERROR: The CPU does not support the required CPU features that were configured during compile time: sse4.1(ok) avx(ok) avx2(ok) fma(na) pclmul(ok)
srsran_gnb |
srsran_gnb exited with code 1 |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 1 reply
-
Hi all, Just following up on my previous message about the Docker build issue. I also tried changing the GCC and G++ versions from 11 to 10, as well as following the suggestions from this discussion, but the problem persists. Any additional insights or advice would be greatly appreciated. |
Beta Was this translation helpful? Give feedback.
-
Hi all, I managed to resolve the previous build issue by commenting out two lines in the Dockerfile:
However, I'm now facing a new problem when trying to run the gNB with ZMQ. Here’s the error: srsran_gnb | --== srsRAN gNB (commit ) ==--
srsran_gnb |
srsran_gnb | The PRACH detector will not meet the performance requirements with the configuration {Format 0, ZCZ 0, SCS 1.25kHz, Rx ports 1}.
srsran_gnb | Failed to load RF plugin libsrsran_radio_zmq.so: libsrsran_radio_zmq.so: cannot open shared object file: No such file or directory
srsran_gnb | Factory for radio type zmq not found. Make sure to select a valid type.
srsran_gnb | srsRAN ERROR: Unable to create radio session.
srsran_gnb exited with code 1
I've noticed that
Does anyone have insights into resolving the "radio plugin not found" error or ensuring that ZMQ is properly configured? Thank you! |
Beta Was this translation helpful? Give feedback.
Here's the complete Dockerfile that addresses the issues I mentioned: