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

Add SVE support #199

Open
bkmgit opened this issue Dec 20, 2022 · 3 comments
Open

Add SVE support #199

bkmgit opened this issue Dec 20, 2022 · 3 comments

Comments

@bkmgit
Copy link
Contributor

bkmgit commented Dec 20, 2022

Would be happy to add this if it would be of interest. Can initially test this in CI using QEMU emulation.

@lemire
Copy link
Member

lemire commented Dec 20, 2022

That's a great project. It will take some time, but given that every system with SVE has NEON, one could start with the NEON kernel (called arm64) and create a new one for processors with SVE. A tricky part that I do not know how to resolve at this time would be runtime detection of SVE instructions. It may not be possible to do so... that is, the binary might have a hard requirement on SVE once built.

@clausecker
Copy link
Collaborator

clausecker commented Dec 20, 2022

I had thought about NEON support before. As NEON does not have an equivalent to the vpcompressb instruction nor anything like pdep or pext, reengineering of the code will be required to make it work. At least the compress operations will have to be emulated somehow.

A tricky part that I do not know how to resolve at this time would be runtime detection of SVE instructions. It may not be possible to do so... that is, the binary might have a hard requirement on SVE once built.

Support for SVE is indicated in ELF auxiliary vectors which can be queried with operating system specific functions.

@bkmgit
Copy link
Contributor Author

bkmgit commented Dec 23, 2022

Thanks. Will start on this next week. Tests can be done on Graviton 3, Yitian 710, A64FX and Exynos 2200.

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

3 participants