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

Optimize EnOsc with vectorization #308

Open
danngreen opened this issue Jul 19, 2024 · 0 comments
Open

Optimize EnOsc with vectorization #308

danngreen opened this issue Jul 19, 2024 · 0 comments
Labels
Modules Relating to the built-in modules (including 4ms)

Comments

@danngreen
Copy link
Member

EnOsc::Oscillator::Process<twist_mode, warp_mode, block_size> calculates a block of samples for one oscillator. Looking at the generated assembly, no vector operations are used (only floating-point).
Measuring it shows it takes the majority of the time to execute.

Since the block size is always a multiple of 4, we could try to re-write this so that the compiler generates NEON instructions, or use CMSIS DSP library (or try NE10 or simde).

@danngreen danngreen added the Modules Relating to the built-in modules (including 4ms) label Aug 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Modules Relating to the built-in modules (including 4ms)
Projects
None yet
Development

No branches or pull requests

1 participant