Live data from Hacker News

Show HN: SIMD Viterbi Decoder in Rust

github.com

11–12 of 12 posts

Re: Show HN: SIMD Viterbi Decoder in Rust

#11
post #7

Earlier quoted context omitted.

I got caught out by my Australianism! "How do you find the speed of the Rust version of your FEC vs, the C version?" translates from "Australian" to "English" as: "What is the speed of the Rust version of your FEC vs, the C version? Though it was interesting to know how you do it. I'm interested in the speed, as I once looked into using Rust for a signal processing project, but ultimately went with C++ because the te…

Oh! Gotcha! I put a table in the README that lays it all out https://github.com/brian-armstrong/fec#performance tldr: My library matches or beats libfec's SSE2 assembly for convolutional codes and pretty steadily beats it in Reed-Solomon. For the convolutional codes, my crate is using a generic, templated decoder rather than hand-written assembly, so it was nice to see that I could match the performance.

Nice! Thanks too for putting the work into this library.

Re: Show HN: SIMD Viterbi Decoder in Rust

#12
post #8

I was looking at the reed Solomon implementation. I've done a few of those in the past! I note that you are using logs for multiplication. I always used to use a 64kb table for direct lookup, though maybe that isn't faster on modern processors? Next LDPC codes?

Interesting. I'll have to give it a try. If I understand your suggestion, you're saying that rather than doing 2 lookups for logs, then an addition, and then another lookup to exp back, we could just precompute the whole thing for any 2 arguments and do one lookup in a table? It's worth noting that some of the operations already use the mul_log format which just does an add with wraparound, but I could certainly see the big table option helping when we truly need field.mul

As far as LDPC, I'd love to, but I need to get a better understanding of them first. I'll probably go for Turbo next just because conceptually they feel closer to the convolutional codes I have already. But time willing, it'd be fun to do both.

Post reply on HN