Skip to content

CI: Enable CI on gcc 12.x on Intel SPR#23655

Merged
charris merged 1 commit into
numpy:mainfrom
r-devulap:ci-spr-enable
Apr 24, 2023
Merged

CI: Enable CI on gcc 12.x on Intel SPR#23655
charris merged 1 commit into
numpy:mainfrom
r-devulap:ci-spr-enable

Conversation

@r-devulap

Copy link
Copy Markdown
Member

I haven't been able to reproduce the SDE failures locally, will try to debug CI fails with additional debug info.

@charris charris merged commit e90c836 into numpy:main Apr 24, 2023
@charris

charris commented Apr 24, 2023

Copy link
Copy Markdown
Member

Thanks @r-devulap . Let's see if they persist.

@r-devulap

Copy link
Copy Markdown
Member Author

It failed again (#23659) and my suspicion was right. It fails on older processors without AVX512. https://github.com/numpy/numpy/actions/runs/4800304956/jobs/8541285721?pr=23659

@r-devulap

Copy link
Copy Markdown
Member Author

Confirmed that this is a bug in the Intel SDE. I am able to reproduce this consistently on an older hardware without AVX512. I wonder if we can disable this CI action if we don't detect AVX-512.

@r-devulap

r-devulap commented Apr 25, 2023

Copy link
Copy Markdown
Member Author

minimal reproducer (for my records and to file an SDE bug):

import numpy as np
from numpy.core._multiarray_tests import get_fpu_mode

old = get_fpu_mode()
np.exp(1)
new = get_fpu_mode()
print("old fpu mode =", hex(old))
print("new fpu mode =", hex(new))
$ sde -skx -- python3 test_umath_complex.py
old fpu mode = 0x37f
new fpu mode = 0x77f

SDE version: Intel(R) Software Development Emulator. Version: 9.14.0 external

@charris

charris commented Apr 25, 2023

Copy link
Copy Markdown
Member

I'd be happy to skip the test if there were an easy way to detect the hardware. Any idea how long it will take for Intel to respond to the bug report?

@seberg

seberg commented Apr 28, 2023

Copy link
Copy Markdown
Member

@r-devulap what triggers this bug? After a bit of searching, it sounds like this sets round-down bit which would be wrong and could have weird long-term issues.

Or is this triggered by the test itself? In that case skipping it is fine of course.

@r-devulap

Copy link
Copy Markdown
Member Author

@seberg its a bug in the Intel SDE and nothing to do with NumPy at all. The bug shows up when the CI job intel_spr_sde_test lands on a machine without AVX-512 (My guess is the emulation of some AVX-512 instruction in the SDE modifies the FPU mode bits and doesn't reset it).

@charris Looking at the previous release of SDE, looks like they have a new release out every 6 months roughly. Given v9.21 was released just last week, my guess we will have to wait a few months to have a version with this bug fix which isn't ideal because this CI provides coverage for PR #23435 and #23351 and hence stalls those PR's.

I would like to get those PR's merged sooner rather than later. If the maintainers are okay with it, I propose to disable this CI for now and I can run a nightly job on my local SKX machine until we find a permanent fix for it.

@charris

charris commented Apr 28, 2023

Copy link
Copy Markdown
Member

@r-devulap For the pending PRs, it is probably good enough if it passes now and then :) The only annoyance is that all the failures need to be checked. Maybe we should just disable the CI test for now and rely on your home testing?

@r-devulap

Copy link
Copy Markdown
Member Author

The only annoyance is that all the failures need to be checked. Maybe we should just disable the CI test for now and rely on your home testing?

Yeah, that is extra burden on the maintainers. I will be happy to set up something locally until we find a long term fix.

@r-devulap

Copy link
Copy Markdown
Member Author

See #23682

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

Successfully merging this pull request may close these issues.

3 participants