-
Notifications
You must be signed in to change notification settings - Fork 4
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
Question about multi-threading #2
Comments
Parallelisation inside one symbolIt should be possible to parallelise this for loop inside the butterfly.
For codes with a large constraint length like Cassini (K=15, NUMSTATES = 2^(K-2) = 8192), there should be performance improvements with multithreading if the overhead is low enough. (Probably wouldn't be beneficial K is small and the NUMSTATES is small). Parallelisation between all symbolsAs for parallising the entire decoding of the symbol frame
Branch error metrics for each symbol is calculated from the error metrics from the previous symbol. I'm not sure how you would eliminate or work around this data dependency to make parallelisation possible. ViterbiDecoderCpp/include/viterbi/viterbi_decoder_scalar.h Lines 109 to 134 in 1758604
You could calculate the branch errors for each symbol in parallel ViterbiDecoderCpp/include/viterbi/viterbi_decoder_scalar.h Lines 67 to 83 in 1758604
and then do some kind of reduction (add error, find min error, repeat) to get the final decison bits (this part would not be parallel). |
I wonder whether it is possible to achieve further acceleration of decoding one frame by using multi-threading. Have you studied this question? Thanks in advance!
The text was updated successfully, but these errors were encountered: