Describe the issue:
There is a POWER-specific test that checks if feature detection is working correctly. This test reports:
E AssertionError: Failure Detection
E NAME: 'VSX'
E ACTUAL: True
E DESIRED: False
E
(Full error log below.)
The output of np.show_config() reports the platform does have VSX.
>>> import numpy as np
>>> np.show_config()
[...]
"SIMD Extensions": {
"found": [
"VSX",
"VSX2",
"VSX3",
"VSX4"
]
}
}
Here is the output of lscpu:
(venv) debian@scipy:~/numpy$ lscpu
Architecture: ppc64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Big Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Model name: POWER10 (architected), altivec supported
Model: 2.0 (pvr 0080 0200)
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 8
Virtualization features:
Hypervisor vendor: KVM
Virtualization type: para
Caches (sum of all):
L1d: 256 KiB (8 instances)
L1i: 384 KiB (8 instances)
NUMA:
NUMA node(s): 1
NUMA node0 CPU(s): 0-7
Vulnerabilities:
Gather data sampling: Not affected
Ghostwrite: Not affected
Indirect target selection: Not affected
Itlb multihit: Not affected
L1tf: Mitigation; RFI Flush, L1D private per thread
Mds: Not affected
Meltdown: Mitigation; RFI Flush, L1D private per thread
Mmio stale data: Not affected
Old microcode: Not affected
Reg file data sampling: Not affected
Retbleed: Not affected
Spec rstack overflow: Not affected
Spec store bypass: Mitigation; Kernel entry/exit barrier (eieio)
Spectre v1: Mitigation; __user pointer sanitization, ori31 speculation barrier enabled
Spectre v2: Mitigation; Software count cache flush (hardware accelerated), Software link stack flush
Srbds: Not affected
Tsa: Not affected
Tsx async abort: Not affected
Vmscape: Not affected
Here is the output of cat /proc/cpuinfo:
(venv) debian@scipy:~/numpy$ cat /proc/cpuinfo
processor : 0
cpu : POWER10 (architected), altivec supported
clock : 2750.000000MHz
revision : 2.0 (pvr 0080 0200)
processor : 1
cpu : POWER10 (architected), altivec supported
clock : 2750.000000MHz
revision : 2.0 (pvr 0080 0200)
processor : 2
cpu : POWER10 (architected), altivec supported
clock : 2750.000000MHz
revision : 2.0 (pvr 0080 0200)
processor : 3
cpu : POWER10 (architected), altivec supported
clock : 2750.000000MHz
revision : 2.0 (pvr 0080 0200)
processor : 4
cpu : POWER10 (architected), altivec supported
clock : 2750.000000MHz
revision : 2.0 (pvr 0080 0200)
processor : 5
cpu : POWER10 (architected), altivec supported
clock : 2750.000000MHz
revision : 2.0 (pvr 0080 0200)
processor : 6
cpu : POWER10 (architected), altivec supported
clock : 2750.000000MHz
revision : 2.0 (pvr 0080 0200)
processor : 7
cpu : POWER10 (architected), altivec supported
clock : 2750.000000MHz
revision : 2.0 (pvr 0080 0200)
timebase : 512000000
platform : pSeries
model : IBM pSeries (emulated by qemu)
machine : CHRP IBM pSeries (emulated by qemu)
MMU : Radix
Note that this is running inside of a VM, and is a big-endian ppc64.
Reproduce the code example:
# Run this in Bash:
spin test -- -k 'Test_POWER_Features and test_features'
Error message:
(venv) debian@scipy:~/numpy$ spin test -- -k 'Test_POWER_Features and test_features'
Invoking `build` prior to running tests:
$ /home/debian/numpy/venv/bin/python vendored-meson/meson/meson.py compile -C build
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /home/debian/numpy/venv/bin/ninja -C /home/debian/numpy/build
ninja: Entering directory `/home/debian/numpy/build'
[1/1] Generating numpy/generate-version with a custom command
Saving version to numpy/version.py
$ /home/debian/numpy/venv/bin/python vendored-meson/meson/meson.py install --only-changed -C build --destdir ../build-install
$ export PYTHONPATH="/home/debian/numpy/build-install/usr/lib/python3/dist-packages"
$ /home/debian/numpy/venv/bin/python -P -c 'import numpy'
$ cd /home/debian/numpy/build-install/usr/lib/python3/dist-packages
$ /home/debian/numpy/venv/bin/python -P -m pytest -m 'not slow' -k 'Test_POWER_Features and test_features'
========================================================== test session starts ==========================================================
platform linux -- Python 3.13.11, pytest-7.4.0, pluggy-1.6.0
rootdir: /home/debian/numpy
configfile: pytest.ini
plugins: cov-4.1.0, hypothesis-6.142.2, xdist-3.8.0, timeout-2.4.0
collected 52462 items / 52461 deselected / 1 selected
numpy/_core/tests/test_cpu_features.py F [100%]
=============================================================== FAILURES ================================================================
___________________________________________________ Test_POWER_Features.test_features ___________________________________________________
self = <test_cpu_features.Test_POWER_Features object at 0x3fffac976fd0>
def test_features(self):
self.load_flags()
for gname, features in self.features_groups.items():
test_features = [self.cpu_have(f) for f in features]
assert_features_equal(__cpu_features__.get(gname), all(test_features), gname)
for feature_name in self.features:
cpu_have = self.cpu_have(feature_name)
npy_have = __cpu_features__.get(feature_name)
> assert_features_equal(npy_have, cpu_have, feature_name)
E AssertionError: Failure Detection
E NAME: 'VSX'
E ACTUAL: True
E DESIRED: False
E
###########################################
### Extra debugging information
###########################################
-------------------------------------------
--- NumPy Detections
-------------------------------------------
{MMX: False, SSE: False, SSE2: False, SSE3: False, SSSE3: False, SSE41: False, POPCNT: False, SSE42: False, X86_V2: False, AVX: False, F16C: False, XOP: False, FMA4: False, FMA3: False, AVX2: False, LAHF: False, CX16: False, MOVBE: False, BMI: False, BMI2: False, LZCNT: False, GFNI: False, VPCLMULQDQ: False, VAES: False, X86_V3: False, AVX512F: False, AVX512CD: False, AVX512ER: False, AVX512PF: False, AVX5124FMAPS: False, AVX5124VNNIW: False, AVX512VPOPCNTDQ: False, AVX512VL: False, AVX512BW: False, AVX512DQ: False, AVX512VNNI: False, AVX512IFMA: False, AVX512VBMI: False, AVX512VBMI2: False, AVX512BITALG: False, AVX512FP16: False, AVX512BF16: False, AVX512_KNL: False, AVX512_KNM: False, AVX512_SKX: False, X86_V4: False, AVX512_CLX: False, AVX512_CNL: False, AVX512_ICL: False, AVX512_SPR: False, VSX: True, VSX2: True, VSX3: True, VSX4: True, VX: False, VXE: False, VXE2: False, NEON: False, NEON_FP16: False, NEON_VFPV4: False, ASIMD: False, FPHP: False, ASIMDHP: False, ASIMDDP: False, ASIMDFHM: False, SVE: False, RVV: False, LSX: False}
-------------------------------------------
--- SYS / CPUINFO
-------------------------------------------
processor : 0
cpu : POWER10 (architected), altivec supported
clock : 2750.000000MHz
revision : 2.0 (pvr 0080 0200)
E
processor : 1
cpu : POWER10 (architected), altivec supported
clock : 2750.000000MHz
revision : 2.0 (pvr 0080 0200)
E
processor : 2
cpu : POWER10 (architected), altivec supported
clock : 2750.000000MHz
revision : 2.0 (pvr 0080 0200)
E
processor : 3
cpu : POWER10 (architected), altivec supported
clock : 2750.000000MHz
revision : 2.0 (pvr 0080 0200)
E
processor : 4
cpu : POWER10 (architected), altivec supported
clock : 2750.000000MHz
revision : 2.0 (pvr 0080 0200)
E
processor : 5
cpu : POWER10 (architected), altivec supported
clock : 2750.000000MHz
revision : 2.0 (pvr 0080 0200)
E
processor : 6
cpu : POWER10 (architected), altivec supported
clock : 2750.000000MHz
revision : 2.0 (pvr 0080 0200)
E
processor : 7
cpu : POWER10 (architected), altivec supported
clock : 2750.000000MHz
revision : 2.0 (pvr 0080 0200)
E
timebase : 512000000
platform : pSeries
model : IBM pSeries (emulated by qemu)
machine : CHRP IBM pSeries (emulated by qemu)
MMU : Radix
....
-------------------------------------------
--- SYS / AUXV
-------------------------------------------
AT_DCACHEBSIZE: 0x80
AT_ICACHEBSIZE: 0x80
AT_UCACHEBSIZE: 0x0
AT_SYSINFO_EHDR: 0x3fffae974000
AT_L1I_CACHESIZE: 49152
AT_L1I_CACHEGEOMETRY: 0x80
AT_L1D_CACHESIZE: 32768
AT_L1D_CACHEGEOMETRY: 0x80
AT_L2_CACHESIZE: 0
AT_L2_CACHEGEOMETRY: 0x0
AT_L3_CACHESIZE: 0
AT_L3_CACHEGEOMETRY: 0x0
AT_MINSIGSTKSZ: 2528
AT_HWCAP: 0xdc0065c2
AT_PAGESZ: 4096
AT_CLKTCK: 100
AT_PHDR: 0x13db40040
AT_PHENT: 56
AT_PHNUM: 9
AT_BASE: 0x3fffae983000
AT_FLAGS: 0x0
AT_ENTRY: 0x13db5f150
AT_UID: 1001
AT_EUID: 1001
AT_GID: 1001
AT_EGID: 1001
AT_SECURE: 0
AT_RANDOM: 0x3fffc2193d70
AT_HWCAP2: 0xbef60000
AT_EXECFN: /bin/true
AT_PLATFORM: power10
AT_BASE_PLATFORM: power10
AT_RSEQ_FEATURE_SIZE: 28
AT_RSEQ_ALIGN: 32
cpu_have = False
feature_name = 'VSX'
npy_have = True
self = <test_cpu_features.Test_POWER_Features object at 0x3fffac976fd0>
numpy/_core/tests/test_cpu_features.py:87: AssertionError
======================================================== short test summary info ========================================================
FAILED numpy/_core/tests/test_cpu_features.py::Test_POWER_Features::test_features - AssertionError: Failure Detection
================================================= 1 failed, 52461 deselected in 16.85s ==================================================
Python and NumPy Versions:
2.5.0.dev0+git20251227.4b3b270
3.13.11 (main, Dec 8 2025, 11:58:53) [GCC 15.2.0]
Runtime Environment:
[{'numpy_version': '2.5.0.dev0+git20251227.4b3b270',
'python': '3.13.11 (main, Dec 8 2025, 11:58:53) [GCC 15.2.0]',
'uname': uname_result(system='Linux', node='scipy', release='6.17.10+deb14-powerpc64', version='#1 SMP PREEMPT Debian 6.17.10-1 (2025-12-02)', machine='ppc64')},
{'simd_extensions': {'baseline': [],
'found': ['VSX', 'VSX2', 'VSX3', 'VSX4'],
'not_found': []}},
{'ignore_floating_point_errors_in_matmul': False},
{'architecture': 'POWER4',
'filepath': '/usr/lib/powerpc64-linux-gnu/openblas-pthread/libopenblas_power4p-r0.3.29.so',
'internal_api': 'openblas',
'num_threads': 8,
'prefix': 'libopenblas',
'threading_layer': 'pthreads',
'user_api': 'blas',
'version': '0.3.29'}]
How does this issue affect you or how did you find it:
I was tracking down a number of ppc64 test failures in SciPy, and trying to figure out if any of them originate from downstream dependencies such as Cython or NumPy. For this reason I am running NumPy's test suite.
I saw three test failures, and this one seemed most serious:
FAILED numpy/_core/tests/test_cpu_features.py::Test_POWER_Features::test_features - AssertionError: Failure Detection
FAILED numpy/_core/tests/test_dtype.py::TestMonsterType::test_dict_recursion
FAILED numpy/linalg/tests/test_linalg.py::TestDet::test_sq_cases - AssertionError: In test case: <LinalgCase: csingle>
The other test failures appear to already have been reported at #29918 and #29114.
Describe the issue:
There is a POWER-specific test that checks if feature detection is working correctly. This test reports:
(Full error log below.)
The output of
np.show_config()reports the platform does have VSX.Here is the output of lscpu:
Here is the output of
cat /proc/cpuinfo:Note that this is running inside of a VM, and is a big-endian ppc64.
Reproduce the code example:
Error message:
Python and NumPy Versions:
2.5.0.dev0+git20251227.4b3b270
3.13.11 (main, Dec 8 2025, 11:58:53) [GCC 15.2.0]
Runtime Environment:
[{'numpy_version': '2.5.0.dev0+git20251227.4b3b270',
'python': '3.13.11 (main, Dec 8 2025, 11:58:53) [GCC 15.2.0]',
'uname': uname_result(system='Linux', node='scipy', release='6.17.10+deb14-powerpc64', version='#1 SMP PREEMPT Debian 6.17.10-1 (2025-12-02)', machine='ppc64')},
{'simd_extensions': {'baseline': [],
'found': ['VSX', 'VSX2', 'VSX3', 'VSX4'],
'not_found': []}},
{'ignore_floating_point_errors_in_matmul': False},
{'architecture': 'POWER4',
'filepath': '/usr/lib/powerpc64-linux-gnu/openblas-pthread/libopenblas_power4p-r0.3.29.so',
'internal_api': 'openblas',
'num_threads': 8,
'prefix': 'libopenblas',
'threading_layer': 'pthreads',
'user_api': 'blas',
'version': '0.3.29'}]
How does this issue affect you or how did you find it:
I was tracking down a number of ppc64 test failures in SciPy, and trying to figure out if any of them originate from downstream dependencies such as Cython or NumPy. For this reason I am running NumPy's test suite.
I saw three test failures, and this one seemed most serious:
The other test failures appear to already have been reported at #29918 and #29114.