Skip to content
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

Speed up adjust_data and remove fast_cexpf. #107

Merged
merged 1 commit into from
Nov 14, 2017

Conversation

argilo
Copy link
Collaborator

@argilo argilo commented Nov 13, 2017

This change builds on top of #106 and gives another significant speedup simply by moving the expensive complex exponentiations out of the innermost loop of adjust_data.

The speedup is around 12% on Intel, and on my Raspberry Pi 3 the CPU utilization is reduced to around 50%.

Since complex exponentiations are no longer a bottleneck, I removed fast_cexpf.

@argilo argilo requested a review from awesie November 13, 2017 13:01
@argilo
Copy link
Collaborator Author

argilo commented Nov 13, 2017

Bit error rates are the same before & after this change, so I expect it's correct.

@pclov3r
Copy link

pclov3r commented Nov 13, 2017

Looks like this PR is removing the unsafe math optimizations?

If so perhaps that should be removed from the readme as well.

@argilo
Copy link
Collaborator Author

argilo commented Nov 13, 2017

@pclov3r I haven't completely removed USE_FAST_MATH yet; it still reduces the size of the FIR filter. I'll remove that in a future PR.

@awesie
Copy link
Contributor

awesie commented Nov 13, 2017

This looks good to me. Feel free to merge with #106 once it is ready.

@argilo argilo changed the base branch from post-fft-sync to experimental November 14, 2017 00:50
@argilo argilo merged commit 3753071 into experimental Nov 14, 2017
@argilo argilo deleted the adjust-data-speedup branch November 14, 2017 00:50
@argilo argilo mentioned this pull request Nov 14, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants