When running the ARM library simulation, Turbo decoding works as expected, but LDPC does not. developer.arm.com/.../2310
We have experimented with differing values for demod_ulp, but this is the best performance we see. ARM RAL Turbo compares to MATLAB, LDPC falls waaaaaay short.
It appears that the ARM implementation of 5G LDPC is broken. We have initiated a support ticket, but received no response. Is anyone else seeing this?
It also does not seem to be something recent that broke it. Similar performance with releases 24.04, 24.07, and 24.10 of the ARM RAL library.
Dear Dale,
Thank you for bringing this to our attention. We have recently released version 24.10 of the library (https://gitlab.arm.com/networking/ral/-/releases/armral-24.10) and there has been some work on LDPC since 23.10, although it may not address the issue you have identified.
Please may I ask where you raised the support ticket, so that we can follow up internally?
Many thanks,
Nick
Case number 03488095, ARM RAN Acceleration Library LDPC Simulation Not Functioning Properly.
Okay, just got a response that ARM doesn't do support cases for the free ARM RAN library any more. I guess the forum is our only hope! (No pressure.)
Thank you for the case number, Dale. We will investigate the decoding performance issue -- I have been able to reproduce the sort of graph you have attached here.
Thank you again for raising this. We have merged a fix for LDPC decoding into the upstream RAL repository https://gitlab.arm.com/networking/ral and we intend to include this in a subsequent release of ArmRAL. Please let us know if this addresses the reported issue for you.
We tested the updated code, and while it is much improved, it still suffers quite the loss over a MATLAB model of the min-sum algorithm. While the MATLAB is floating point, generally 6 to 8 fixed point precision will get a lot closer, while the current implementation is a good 1.5 dB to the right of MATLAB. I was actually hoping for the curve to be to the *left* of MATLAB min-sum, if a scaled min-sum had been implemented.
At least it seems to be correcting quite a few errors now. The decoding speed is decent as well.