-
Notifications
You must be signed in to change notification settings - Fork 50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Performance degrades when symbols count is big #8
Comments
Thanks for the report! Yes, you're totally right about this. I've tested it up to ~200 symbol count and it works well there. I should have noted that it's only linear for another order of magnitude or so. The reason it doesn't keep scaling past that, at the moment, is that I haven't implemented the sparse matrix support that you need at that size. Right now everything is using dense matrices |
Do you have any plan to implement the sparse matrix version anytime soon? |
Ya, I started on a sparse matrix implementation. Hopefully, I'll have something working this weekend |
I merged a bunch of optimizations. You can reproduce these numbers with the Before optimizations:
After optimizations
There's still a bit of work to be done finishing the optimizations, but it scales much better now |
Tried to reproduce your benchmark with my implementation.
There is still room for improvement. |
Cool, good to know! edit forgot yours is private. Any tips on what you did to scale to high symbol counts? |
Just pushed some further optimizations. This seems like it's about as far as it's easy to push the implementation, so going to close this. Happy to merge PRs to further improve it though:
|
|
Hi, I've got a c++ implementation of RaptorQ. It's a part of another project and private now, but it will be released eventually.
First, great work. You have achieved a really nice performance on
10K
bytes.But I have concerns about performance with bigger symbol_count.
For
10K
data andsymbol_size=512
,symbol_count
should be20
.I've tried to change
elements
to512 * 50000
in youencode 10KB
benchmark, and it doesn't seem to finish in a reasonable amount of time.Am I doing something wrong?
I'm running it with
cargo bench --features benchmarking
.Have you tested that
it did make the codec to scale linearly to larger blocks
?As I recall rfc is quite cryptic about details critical for performance.
The text was updated successfully, but these errors were encountered: