Hi Tom,
Thank you for explainations!
Potential Viterbi optimization using SIMD methods is
substantial as I
demonstrated many years ago. The implementation does require
separation of puncturing and Viterbi. Unfortunately, the has code
experienced code rot since then. Admittedly, I accept much of that
blame.
I think it would be really good to have/use your Viterbi implementation
inside the libosmocoding. Regarding to some remarks to your code, I am
ready to fix them (such as malloc -> talloc).
Moreover, recently I had a conversation with Alexander Chemeris. He also
mentioned your implementation, which would be better to use in embedded
platforms (such as UmSITE) due to performance reasons.
In summary, my concern is about the implementation and
not the API.
Perhaps we could pull the puncturing into the library as Max suggests.
Then, separately, consider performance changes to the internal
puncturing and Viterbi implementations.
So, my suggestion is to:
1) Extend your code with encoding capabilities.
2) Merge Viterbi transcoder with the libosmocoding.
3) Merge libosmocoding into libosmocore as a sub-library
or spawn a separate repository.
Any opinions?
With best regards,
Vadim Yanitskiy.
2016-10-13 1:54 GMT+07:00 Tom Tsou <tom(a)tsou.cc>cc>:
> On Wed, Oct 12, 2016 at 10:58 AM, Max <msuraev(a)sysmocom.de> wrote:
> > Is there some microbenchmark available? Perhaps we can use it to improve
> > generated code?
>
Potential Viterbi optimization using SIMD methods is
substantial as I
demonstrated many years ago. The implementation does require
separation of puncturing and Viterbi. Unfortunately, the has code
experienced code rot since then. Admittedly, I accept much of that
blame.
>
> =================================================
> [+] Testing: GSM TCH/AFS 6.7
> [.] Specs: (N=4, K=5, recursive, flushed, punctured)
> [.] Input length : ret = 140 exp = 140 -> OK
> [.] Output length : ret = 448 exp = 448 -> OK
>
> [.] Performance benchmark:
> [..] Encoding / Decoding 800000 bursts on 8 thread(s):
> [..] Testing base:
> [..] Elapsed time....................... 4.320001 secs
> [..] Rate............................... 25.925920 Mbps
> [..] Testing SIMD:
> [..] Elapsed time....................... 0.458272 secs
> [..] Rate............................... 244.396341 Mbps
> [..] Speedup............................ 9.426718
>
>
http://lists.osmocom.org/pipermail/openbsc/2014-April/007365.html
>
> -TT
>