-
Notifications
You must be signed in to change notification settings - Fork 85
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
Check out libsimdpp, it should help supporting multiple platforms #3
Comments
Other possible approach https://gcc.gnu.org/wiki/FunctionMultiVersioning |
Unfortunately this only solves dynamic dispatch problem and simplifies infrastructure for multiple instruction set support. The fact that one needs to use different SIMD instructions for each instruction set is not addressed. |
@p12tic you are right. But lets authors decide. And Pillow is written in C. |
Sorry, I don't believe that is possible to rewrite some complicated parts on the higher level and keep original performance. For example, in the next release, I'm going to heavily use Also, as @funny-falcon said, Pillow and whole Python toolchain is written is C. I'm not sure if it possible to use C++ and also I don't familiar with it at all. |
Co-authored-by: nulano <nulano@nulano.eu>
Do not install NumPy on Python 3.11 So that's how I was supposed to resolve that merge conflict. Thank you.
Optimise palettes with more than 128 colors
Restored unimplemented DXGI format test
Free comment when returning early
Hi, just noticed this new SIMDified library in development through a Hacker News post. If cross-platform SIMD support is among your objectives, I think you should check out libsimdpp (https://github.com/p12tic/libsimdpp). It allows you to write the SIMD code once, then compile it for different instruction sets, combine the resulting object files into single library and then dispatch depending on the actual CPU type on runtime. For relatively simple code such as image processing such multi-platform support would be straightforward. At the moment libsimdpp already supports the most popular SIMD instruction sets: SSE2 to SSE4.1, XOP, AVX, AVX2, AVX512F, NEON and Altivec, with AVX512BW/DQ, MIPS MSA and POWER7/8 VSX support being in development.
Disclosure: I'm the author of libsimdpp.
The text was updated successfully, but these errors were encountered: