Anybody want to comment on whether all of his unsafe code was actually necessary? Seems bad for rust that safe code is 25x slower.
SIMD requires unsafe for some reason. Not sure exactly why. I don't see why they used unsafe in `add_assign` - an assert!(octets.len() == other.len()) would likely have elided the bounds checks.
RaptorQ and performance optimization in Rust
11–20 of 51 posts
Re: RaptorQ and performance optimization in Rust
#12Very cool efforts here. Curious what the speed is without those instructions present on the cpu, and what hardware this was run on. The concept of a fountain seems interesting but what is a good use case? Variable strength error correction?
Re: RaptorQ and performance optimization in Rust
#13What is the patent situation with Raptor codes nowadays?
Re: RaptorQ and performance optimization in Rust
#14What is the patent situation with Raptor codes nowadays?
Was just coming to ask the same question. Last I remember fountain codes were pretty locked down.
Qualcomm has asserted that these Raptor code-related patents (an early one of which was filed in 2004) are standards essential, and require to be licensed from Qualcomm.[1][2]
The below-linked patent would expire in 2024. However, there are a slew of continuation applications that expire much later than 2024.
Update: additionally, there is at least one earlier-dated patent filed in 1999, which expired in February. [3]
[1] https://datatracker.ietf.org/ipr/2554/
Re: RaptorQ and performance optimization in Rust
#15What is the patent situation with Raptor codes nowadays?
Re: RaptorQ and performance optimization in Rust
#16Very cool efforts here. Curious what the speed is without those instructions present on the cpu, and what hardware this was run on. The concept of a fountain seems interesting but what is a good use case? Variable strength error correction?
Receivers would listen for as many of these packets as they can, as and when they can (the transmission can be "lossy"), and if a receiver pickups up 100 unique packets, any 100 unique packets in any order, it'll have a 99.9% (or something along those lines) chance of decoding the message successfully. Each extra unique packet adds a 9 to the chances.
That's why the "fountain". It's a data fountain, and you can grab any quantity of data off it at any point and still have a good chance of reconstructing the message.
Re: RaptorQ and performance optimization in Rust
#17If anyone is qualified enough to take a crack at it I can try and arrange for sponsorship as well.
Re: RaptorQ and performance optimization in Rust
#18What is the patent situation with Raptor codes nowadays?
We have a license and use them for satellite broadcasting, but my understanding is Qualcomm has made statements in https://datatracker.ietf.org/ipr/1511/ that if you use it for a "wireless wide-area standard (for example, a UMTS-compatible handset or Infrastructure equipment)" you'll be charged a standard royalty fee, otherwise they don't care.
Re: RaptorQ and performance optimization in Rust
#19Earlier quoted context omitted.
We have a license and use them for satellite broadcasting, but my understanding is Qualcomm has made statements in https://datatracker.ietf.org/ipr/1511/ that if you use it for a "wireless wide-area standard (for example, a UMTS-compatible handset or Infrastructure equipment)" you'll be charged a standard royalty fee, otherwise they don't care.
... as long as you use it for implementing a specific IETF specification. At least that how it reads to me?
Re: RaptorQ and performance optimization in Rust
#20Can anyone suggest a good book that would serve as an introduction to finite field arithmetic? I keep randomly running into it (e.g. this post), but don't understand it well enough to follow the discussion.
In case you don't find what you're looking for, here are all lectures on "Information Theory, Pattern Recognition, and Neural Networks": http://videolectures.net/course_information_theory_pattern_r...
I'd be remiss not to mention that the lectures are by the late David MacKay: https://news.ycombinator.com/item?id=11500221