about ArmRAL 26.01 check and examples crash on RPi-4 and RK3588

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: scrambling
58/88 Test #58: scrambling ...........................***Exception: Illegal  0.01 sec
      Start 59: seq_generator
59/88 Test #59: seq_generator ........................***Exception: Illegal  0.01 sec
      Start 60: crc
60/88 Test #60: crc ..................................***Exception: Illegal  0.01 sec
      Start 61: tail_biting_convolutional_decoding
61/88 Test #61: tail_biting_convolutional_decoding ...***Exception: Illegal  0.01 sec
      Start 62: tail_biting_convolutional_encoding
62/88 Test #62: tail_biting_convolutional_encoding ...***Exception: Illegal  0.01 sec
      Start 64: ldpc_decoding
64/88 Test #64: ldpc_decoding ........................***Exception: Illegal  0.03 sec
      Start 69: polar_crc_attachment
69/88 Test #69: polar_crc_attachment .................***Exception: Illegal  0.01 sec
      Start 70: polar_decoder
70/88 Test #70: polar_decoder ........................***Exception: Illegal  0.01 sec
      Start 87: polar_awgn
87/88 Test #87: polar_awgn ...........................***Exception: Illegal  0.01 sec

90% tests passed, 9 tests failed out of 88

Total Test time (real) = 401.90 sec

The 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

Parents
  • 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.

    If your platform does support cryptographic instructions, you should see the following in /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

Reply
  • 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.

    If your platform does support cryptographic instructions, you should see the following in /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

Children
No data