-
-
Notifications
You must be signed in to change notification settings - Fork 8
Quaddtype gives core dump on linux #105
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
Comments
Thank you for reporting this issue! I can see why you're encountering a core dump when using the SLEEF backend on your Sandybridge architecture. My instinct says it is happening because SLEEF's quad precision implementation is likely compiled with AVX2 or AVX512 instructions, but your Sandybridge CPU only supports up to AVX (not the newer AVX2+ instruction sets). When the code tries to execute those unsupported instructions, you get the "Illegal instruction" error and core dump. Looking at the SLEEF README, I see this is a known limitation with their SIMD implementation. SLEEF is designed to use various vector extensions (SSE2, SSE4, AVX, AVX2, AVX512F) on x86_64, but it appears the runtime CPU detection might not be properly preventing execution of incompatible code paths on your Sandybridge CPU. If you want to use the SLEEF backend, you'll might need to recompile SLEEF with flags to disable higher SIMD instructions: cmake -S . -B build -DSLEEF_BUILD_QUAD=ON \
-DSLEEF_BUILD_SHARED_LIBS=ON \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DSLEEF_DISABLE_AVX2=ON \
-DSLEEF_DISABLE_AVX512=ON Thanks for bringing this to my attention - I hadn't tested on older x86_64 architectures like Sandybridge. |
Ah, interesting. I actually tried on my much newer laptop too, but the package could not be found. I now looked closer and it is simply that on that laptop I have python 3.13, so there are no wheels available for it. When I compile from source, things work. |
Awesome, do give it a try and would love your feedback |
OK, best to close indeed since this is a known upstream issue |
When trying to follow the basic instructions on the
README
, I get a core dump the moment I try to do any calculation:Things do seem to work with the
longdouble
backend.I tried to install the source code (i.e., also compile sleef on my machine), but that gives the same error.
In case it helps, my numpy runtime:
The text was updated successfully, but these errors were encountered: