<p dir="ltr">Hi Thomas,</p>
<p dir="ltr">Thank you for submitting this patch at. Finally :)<br>
It promises a very good improvement for the OsmoBTS performance.</p>
<p dir="ltr">May I suggest you to check in the test cases into a test or contrib directory of libosmocore? This will help ensure that we do not loose them and that they stay in sync with the code. Ideally, we should also run validity checks on "make check" as well.</p>

<p dir="ltr">29 апр. 2014 г. 8:13 пользователь "Thomas Tsou" <tom@tsou.cc> написал:<br>
><br>
> Hi all,<br>
><br>
> This patch set adds to libosmocore an optimized Viterbi decodeer for<br>
> architecture specific (Intel SSE) and non-specific cases. The<br>
> implementation covers codes with constraint lengths of K=5 and K=7 and<br>
> rates 1/4 to 3/4, which make up the majority of GSM use cases. Speedup<br>
> from the current implementation is in the range of 5 to 20 depending on<br>
> the processor and code type. API is unchanged.<br>
><br>
> Tested on Haswell (i7-4770K) and Atom (D2550). Additional test codes<br>
> from osmo-bts are included. Further tests for AWGN bit-error-rate<br>
> and benchmarks can be found in the following repository.<br>
><br>
> <a href="https://github.com/ttsou/osmo-conv-test">https://github.com/ttsou/osmo-conv-test</a><br>
><br>
> Here are some examples.<br>
><br>
> Bit error test for GPRS CS2 with SNR of 5 dB and 100000 bursts.<br>
><br>
> $ ./conv_test -c 2 -e -r 5 -i 100000<br>
><br>
> =================================================<br>
> [+] Testing: GPRS CS2<br>
> [.] Specs: (N=2, K=5, non-recursive, flushed, not punctured)<br>
> [.] Input length  : ret = 290  exp = 290 -> OK<br>
> [.] Output length : ret = 588  exp = 588 -> OK<br>
><br>
> [.] BER tests:<br>
> [..] Testing base:<br>
> [..] Input BER.......................... 0.042443<br>
> [..] Output BER......................... 0.000006<br>
> [..] Output FER......................... 0.001350 (135)<br>
> [..] Testing SIMD:<br>
> [..] Input BER.......................... 0.042460<br>
> [..] Output BER......................... 0.000005<br>
> [..] Output FER......................... 0.001240 (124)<br>
><br>
> Timed AFS benchmark with 8 threads and 100000 bursts per thread.<br>
><br>
> $ ./conv_test -b -c 10 -j 8 -i 100000<br>
><br>
> =================================================<br>
> [+] Testing: GSM TCH/AFS 6.7<br>
> [.] Specs: (N=4, K=5, recursive, flushed, punctured)<br>
> [.] Input length  : ret = 140  exp = 140 -> OK<br>
> [.] Output length : ret = 448  exp = 448 -> OK<br>
><br>
> [.] Performance benchmark:<br>
> [..] Encoding / Decoding 800000 bursts on 8 thread(s):<br>
> [..] Testing base:<br>
> [..] Elapsed time....................... 4.320001 secs<br>
> [..] Rate............................... 25.925920 Mbps<br>
> [..] Testing SIMD:<br>
> [..] Elapsed time....................... 0.458272 secs<br>
> [..] Rate............................... 244.396341 Mbps<br>
> [..] Speedup............................ 9.426718<br>
><br>
>  -TT<br>
</p>