Hi, ARM Experts:
I had spend some time on using ArmRAL 26.01 to build up an OFDM Modem.
But got some problems about check test cases and examples.
below is my HW and SW configuration.
Case A:
HW : Rpi-4, Cortex-A72 x4
SW : Debian GNU/Linux, Linux 6.12.75, GCC: 12.3.0
Case B:
HW : OrangePi-5 Max, Cortex-A76 x4 + Cortex-A55 x4
SW: Ubuntu, Linux 6.1.43, GCC: 12.3.0
---------------------------------------------------------------------------------------
ArmRAL 26.01 build with "cmake cmake -DBUILD_TESTING=On -DBUILD_EXAMPLES=On -DCMAKE_BUILD_TYPE=Debug .."
after build code finish and run "make check" and "make run_examples", I got some errors.
make check results:
In Case A, reports errors. below is the error lists.
Start 58: scrambling58/88 Test #58: scrambling ...........................***Exception: Illegal 0.01 sec Start 59: seq_generator59/88 Test #59: seq_generator ........................***Exception: Illegal 0.01 sec Start 60: crc60/88 Test #60: crc ..................................***Exception: Illegal 0.01 sec Start 61: tail_biting_convolutional_decoding61/88 Test #61: tail_biting_convolutional_decoding ...***Exception: Illegal 0.01 sec Start 62: tail_biting_convolutional_encoding62/88 Test #62: tail_biting_convolutional_encoding ...***Exception: Illegal 0.01 sec Start 64: ldpc_decoding64/88 Test #64: ldpc_decoding ........................***Exception: Illegal 0.03 sec Start 69: polar_crc_attachment69/88 Test #69: polar_crc_attachment .................***Exception: Illegal 0.01 sec Start 70: polar_decoder70/88 Test #70: polar_decoder ........................***Exception: Illegal 0.01 sec Start 87: polar_awgn87/88 Test #87: polar_awgn ...........................***Exception: Illegal 0.01 sec
90% tests passed, 9 tests failed out of 88Total Test time (real) = 401.90 secThe following tests FAILED: 58 - scrambling (ILLEGAL) 59 - seq_generator (ILLEGAL) 60 - crc (ILLEGAL) 61 - tail_biting_convolutional_decoding (ILLEGAL) 62 - tail_biting_convolutional_encoding (ILLEGAL) 64 - ldpc_decoding (ILLEGAL) 69 - polar_crc_attachment (ILLEGAL) 70 - polar_decoder (ILLEGAL) 87 - polar_awgn (ILLEGAL)
In Case B, make check reports no error.
make run_examples results:
both has the same error in Case A and Case B.
segmentation fault:
fft_cf32_f16_example 1024
fft_f16_cf32_example 1024
fft_2d_f16_cf32_example 32 32
Do I make some mistake ??
BR, Akio
Hi Akio,
Case A:The default build of ArmRAL 26.01 enables cryptographic instructions by passing the following flag to the compiler: -march=armv8-a+crypto. It is possible that the Rpi-4 does not support these instructions, which would explain the "Exception: Illegal" error you are seeing. Unfortunately, it is not possible to build ArmRAL 26.01 without the cryptographic instructions.
-march=armv8-a+crypto
If your platform does support cryptographic instructions, you should see the following in /proc/cpuinfo:
/proc/cpuinfo
Features: ... aes pmull sha1 sha2 ...
Case B:You have not done anything wrong, this is a known issue in ArmRAL 26.01. You can safely ignore these crashes unless you intend to use ArmRAL’s half-precision floating-point support (fp16).
ArmRAL’s Fast Fourier Transform planner returns an error when fp16 support is requested but not enabled. The examples do not correctly handle this error, which results in the segmentation fault you are observing.
Kevin