CI/BUG: add native jobs for s390x, fix bug in pack_inner#30819
CI/BUG: add native jobs for s390x, fix bug in pack_inner#30819AlekseiNikiforovIBM wants to merge 10 commits intonumpy:mainfrom
pack_inner#30819Conversation
|
@sandeepgupta12 ptal |
|
So, currently clang tests are failing on ppc64le and s390x, and clang and gcc tests with forced vectorization fail on s390x. Can we proceed with these workflows now or should tests be fixed first? I'm already looking into s390x failures. |
|
This change fixes s390x tests with forced zvector: I could also split it into a separate PR if you'd like. Now there are only some failures when clang is used. |
rgommers
left a comment
There was a problem hiding this comment.
Thanks @AlekseiNikiforovIBM. This is a bit tricky to review (let's blame the GitHub UI), so it'd be great if you could revert the name change and leave it at linux-ppc64le.yml for now. That will make the diff much smaller, and it'll be visible what you tweaked in the ppc64le job.
| fail-fast: false | ||
| matrix: | ||
| config: | ||
| - name: "GCC (ppc64le)" |
There was a problem hiding this comment.
This whole job matrix is ppc64le, so this name change seem a bit unnecessary
There was a problem hiding this comment.
It looks like it takes title of workflow file, and then job name. Without this change there will be two jobs named "Native ppc64le and s390x Linux Test / GCC", one for ppc64le and one for s390x.
There was a problem hiding this comment.
Good catch, export doesn't survive across job steps
.github/workflows/linux-ppc64le.yml
Outdated
| - name: "GCC with zvector (s390x)" | ||
| args: "-Dallow-noblas=false -Dcpu-baseline=vx" | ||
| - name: "clang with zvector (s390x)" | ||
| args: "-Dallow-noblas=false -Dcpu-baseline=vx" |
There was a problem hiding this comment.
We had two jobs under QEMU; four seems a little excessive - can you do GCC and Clang with zvector here (or vice versa?
There was a problem hiding this comment.
They produce different results, so I think it's better to have all 4 of them. Considering issues with clang, maybe clang jobs should be dropped until all issues when compiling with clang are resolved?
There was a problem hiding this comment.
With clang 18, ppc64le tests are passing. See here- https://github.com/numpy/numpy/actions/runs/21948675141/job/63393053952
There was a problem hiding this comment.
I don't see clang-18 being used there. I see gcc. From linked build log:
C compiler for the host machine: cc (gcc 13.3.0 "cc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0")
C linker for the host machine: cc ld.bfd 2.42
C++ compiler for the host machine: c++ (gcc 13.3.0 "c++ (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0")
C++ linker for the host machine: c++ ld.bfd 2.42
Clang-20 logs for comparison:
C compiler for the host machine: clang-20 (clang 20.1.2 "Ubuntu clang version 20.1.2 (0ubuntu1~24.04.2)")
C linker for the host machine: clang-20 ld.bfd 2.42
C++ compiler for the host machine: clang++-20 (clang 20.1.2 "Ubuntu clang version 20.1.2 (0ubuntu1~24.04.2)")
C++ linker for the host machine: clang++-20 ld.bfd 2.42
A single PR seems fine to me, thanks. |
pack_inner
f3fa0c1 to
7f05a2d
Compare
Add parameters for runner and compiler
Only 16-byte vectorization path is tested for big endian.
It contains fixes for numpy testsuite, compared to default clang-18
7f05a2d to
d3779d0
Compare
Too many tests still fail and need investigation.
|
I've disabled clang builds and tests for s390x while there are still too many issues to be fixed. I think enabling them later would be a good choice. |
9bf91ef to
9dfb90e
Compare
Newer clang from Fedora 43 builds numpy and passes tests better than clang from Ubuntu 24.04
AT_HWCAP is now a hex number and needs to be decoded. https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=e5893e6349541d871e8a25120bca014551d13ff5 Use /prc/cpuinfo to obtain same information.
Too many failing tests which need to be looked at.
bae121c to
c9693ef
Compare
|
I've updated PR. I've used docker and fedora:43 image to build and test numpy with clang. Fedora has newer clang, and maybe clang is patched differently there, so there are no miscompilations detected by testsuite. Only 1 test failed and was needed to be fixed:
Luckily, on s390x a copy of output is available in Unfortunately, I don't think similar output is available for ppc64le. Hex output of I've also bumped zvector build to enable everything up to VXE2. There still were 65 failing tests for ppc64le when building with clang: I disabled ppc64le clang build for now. It'd be better to have those tests fixed or disabled first, or some other build environment used. @rgommers please take one more look. |
Rename workflow linux-ppc64le.yml into linux-actionspz.yml.
Copy and update ppc64le workflow for s390x.
Disable qemu-based workflows for s390x.
Fix big endian issue in
pack_inner.Closes: #30817
@mkumatag @rgommers