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

arm Neon vector backend #19

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

arm Neon vector backend #19

wants to merge 2 commits into from

Conversation

Tarinn
Copy link

@Tarinn Tarinn commented Nov 3, 2022

This adds a new vector backend that utilizes arm neon SIMD instructions to implement the parallel formulae, conforming to the avx2 implementation. Other files outside of of the new neon backend are updated to be able to use this backend when the required feature flag is set. The new backend is largely a copy of the avx2 backend with the instructions changed to arm neon, and other changes from the 'base' avx2 implementation mainly focus on the need to split a 256 bit vector into two 128 bit ones and differences in structure of input/output of arm neon instructions.

On a Raspberry Pi 4, the recorded speed-up of serial vs vector backend was around 20% for relevant benchmarks of variable-time multiplication.

@rubdos
Copy link

rubdos commented Dec 2, 2022

@Tarinn I think you should squash the last two commits into d822a2c, since that last one accidentally committed a bunch of large files that you removed later.

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.

2 participants