Skip to content

Build numpy without a fixed SIMD baseline in the Docker image - #94

Merged
Robbie1977 merged 1 commit into
mainfrom
numpy-no-simd-baseline
Aug 26, 2026
Merged

Build numpy without a fixed SIMD baseline in the Docker image#94
Robbie1977 merged 1 commit into
mainfrom
numpy-no-simd-baseline

Conversation

@Robbie1977

Copy link
Copy Markdown
Contributor

v1.22.40 fails to start on the VFB Rancher/k8s hosts:
RuntimeError: NumPy was built with baseline optimizations: (X86_V2) but your machine doesn't support: (X86_V2)

No VFBquery code changed. vfb_connect 2.4.1/2.4.2 (21 Aug) dropped the numpy<2.0.0 pin it carried in 2.3.x, so the image now resolves numpy 2.4.x. NumPy 2.4 raised its default x86 baseline to x86-64-v2 (SSE4.2/POPCNT/SSSE3), and every VFB host (parsley, buttermilk, vfbk8s10) is a QEMU VM on the generic qemu64 CPU model, which exposes none of those flags.

This builds numpy from source in the Dockerfile with -Dcpu-baseline=none before the rest of the dependencies are installed. The result has no fixed baseline but keeps X86_V2/V3/V4 as runtime-dispatched targets, so there is no performance cost on hosts that have them. Verified: numpy 2.4.6 built this way imports cleanly and survives the pip install -e . that follows (pandas 3.0.5, vfb_connect 2.4.2). Adds roughly 3 minutes per Docker build. NUMPY_SPEC build-arg allows pinning a version if ever needed.

The underlying fix is the hypervisor CPU type for the VM fleet; once that's done this block can go.

@Robbie1977
Robbie1977 merged commit 389b5fc into main Aug 26, 2026
5 checks passed
@github-actions

Copy link
Copy Markdown

⚠️ 167 test(s) skipped — VFB backend was unreachable

The full suite ran, but 167 test(s) were skipped because the VFB backend (Neo4j / SOLR / Owlery) did not answer during this run.

These are not failures and not a problem with this branch — but those queries went unverified, so a green check here is an incomplete run.

To re-run: open this workflow run and click Re-run all jobs once the backend is healthy (re-running the “Run completeness” check itself does nothing — it has no job behind it).

523 passed, 167 skipped, 338 warnings in 704.89s (0:11:44)

Posted automatically. This comment is removed once a run completes with zero skips.

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.

1 participant