-
-
Notifications
You must be signed in to change notification settings - Fork 10.9k
CI: Replace QEMU armhf with native (32-bit compatibility mode) #28653
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
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…sqrt on armhf Guards against passing positive infinity to vrsqrteq_f32 in sqrt operation, which would raise invalid floating-point errors on ARMv7 architectures.
781424d
to
a0c6c20
Compare
Adds an xfail marker to the linspace subnormal test case for ARMv7 and AArch32 platforms. These platforms seem to flush subnormals to zero (FTZ) even when not explicitly enabled via the FPSCR register, causing the test to fail.
107a44b
to
37d82ae
Compare
Fix detection of `FPHP`, `ASIMDHP`, `ASIMDDP`, `ASIMDFHM` features on ARMv8 32-bit mode (aarch32). Fix memory leaks in CPU feature detection on Android by adding missing free() calls.
37d82ae
to
0668e83
Compare
Remove QEMU-based armhf testing as we now use native 32-bit compatibility mode running on ARM64 GitHub runners in a separate implementation.
Thanks Sayed. I'm a bit nervous about a backport, let's see how it goes. |
charris
pushed a commit
to charris/numpy
that referenced
this pull request
Apr 6, 2025
…#28653) * CI: Tests NumPy on 32-bit ARM hard-float (armhf) via compatibility mode * BUG, SIMD: Fix floating-point errors with positive infinity input in sqrt on armhf Guards against passing positive infinity to vrsqrteq_f32 in sqrt operation, which would raise invalid floating-point errors on ARMv7 architectures. * TEST: Mark linspace subnormal test as xfail on ARM32 platforms Adds an xfail marker to the linspace subnormal test case for ARMv7 and AArch32 platforms. These platforms seem to flush subnormals to zero (FTZ) even when not explicitly enabled via the FPSCR register, causing the test to fail. * BUG, SIMD: Fix ARMv8 feature detection in 32-bit mode Fix detection of `FPHP`, `ASIMDHP`, `ASIMDDP`, `ASIMDFHM` features on ARMv8 32-bit mode (aarch32). Fix memory leaks in CPU feature detection on Android by adding missing free() calls. * CI: Remove QEMU-based armhf testing Remove QEMU-based armhf testing as we now use native 32-bit compatibility mode running on ARM64 GitHub runners in a separate implementation.
Seems good for now, no worries. I will follow up on any new related issues. Thank you Charles for the quick merge and backport. |
MaanasArora
pushed a commit
to MaanasArora/numpy
that referenced
this pull request
Apr 11, 2025
…#28653) * CI: Tests NumPy on 32-bit ARM hard-float (armhf) via compatibility mode * BUG, SIMD: Fix floating-point errors with positive infinity input in sqrt on armhf Guards against passing positive infinity to vrsqrteq_f32 in sqrt operation, which would raise invalid floating-point errors on ARMv7 architectures. * TEST: Mark linspace subnormal test as xfail on ARM32 platforms Adds an xfail marker to the linspace subnormal test case for ARMv7 and AArch32 platforms. These platforms seem to flush subnormals to zero (FTZ) even when not explicitly enabled via the FPSCR register, causing the test to fail. * BUG, SIMD: Fix ARMv8 feature detection in 32-bit mode Fix detection of `FPHP`, `ASIMDHP`, `ASIMDDP`, `ASIMDFHM` features on ARMv8 32-bit mode (aarch32). Fix memory leaks in CPU feature detection on Android by adding missing free() calls. * CI: Remove QEMU-based armhf testing Remove QEMU-based armhf testing as we now use native 32-bit compatibility mode running on ARM64 GitHub runners in a separate implementation.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
00 - Bug
05 - Testing
component: CI
component: SIMD
Issues in SIMD (fast instruction sets) code or machinery
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR enhances support for ARM platforms with several important fixes:
Native ARMv7/armhf Testing: Adds a new CI workflow that tests NumPy on 32-bit ARM hard-float (armhf) using 32-bit compatibility mode on ARM64 GitHub runners, replacing the previous QEMU-based approach for more reliable and faster testing.
ARMv8 32-bit Feature Detection: Fixes detection of advanced ARMv8 features (FPHP, ASIMDHP, ASIMDDP, ASIMDFHM) when running in 32-bit mode (aarch32), and addresses memory leaks in CPU feature detection on Android.
ARM Floating-Point Error Handling: Adds protection against floating-point errors when processing positive infinity values in SIMD sqrt operations on ARMv7 architectures.
Subnormal Number Handling: Adds an xfail marker for linspace tests with subnormal numbers on ARM32 platforms, addressing the platform-specific behavior where subnormals are flushed to zero.
relates #24548, #28635