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

Adopt SIMD abstraction library for Android support #10

Open
robinhundt opened this issue Jan 6, 2022 · 0 comments
Open

Adopt SIMD abstraction library for Android support #10

robinhundt opened this issue Jan 6, 2022 · 0 comments

Comments

@robinhundt
Copy link
Contributor

Related: #9
Motion currently uses x86 simd instructions in three places:

src/motioncore/primitives/aes/aesni_primitives.cpp
27:#include <immintrin.h>

src/test/test_bitmatrix.cpp
33:#include <emmintrin.h>   // this seems unused
 
src/motioncore/utility/bit_matrix.cpp
38:#include <immintrin.h>

the bit_matrix implementation seems to use sse2 instructions (code using AVX is unconditionally disabled and labeled as buggy). The AES implementation seems to use sse2 and AES-NI instructions.
During the last meeting, we discussed using simde as an abstraction library. The problem however is, that it doesn't support AES. There is however a library which supports this use case: sse2neon. While it's not as broad as simde, it supports exactly what we need to enable Android support.

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

No branches or pull requests

1 participant