<aside> 🪄

Pixi Advent Calendar 2025 11日目の記事です。

</aside>

先週のおさらい

<aside> ⚠️

conda numpy と pypi numpy は実は構成が異なる

https://pypackaging-native.github.io/key-issues/native-dependencies/blas_openmp/

https://pypackaging-native.github.io/key-issues/native-dependencies/blas_openmp/

<aside> 👼🏻

俯瞰すると,pixi/conda と PyPI は低レベルの依存関係に異なるアプローチをしています.

🪄 pixi: conda-forgeエコシステムを利用した virtual environment レベルでの vendoring

🐍 pip: self-contained wheel レベルでの vendoring

</aside>

pixi で PyPI package を管理する

</aside>

TL;DR

pypi と conda 両方の packageを複数環境に分けて飼える pixi の特性を活かして、pypi (OpenBLAS | AOCL) | conda (OpenBLAS | MKL) numpy をまとめて比較する簡易ベンチマークを作りました.

https://github.com/denkiwakame/numpy-blas-bench

各BLAS backend の numpy package 対応状況はこんな感じでしょうか(2025.12)

BLAS 公式pypi wheel conda-forge 備考
OpenBLAS pypi / conda 標準
MKL https://www.amd.com/es/developer/zen-software-studio/applications/python-libraries-with-aocl.html
AOCL 🚧 対応中 AMD独自配布
Python 3.11/3.12 のみ
https://www.amd.com/es/developer/zen-software-studio/applications/python-libraries-with-aocl.html
Apple Accelerate https://numpy.org/devdocs/release/2.0.0-notes.html#macos-accelerate-support-including-the-ilp64

<aside> 🕵🏻

全選手入場

</aside>

1. pip で入る numpy (OpenBLAS)

1-a. OpenBLAS

ふつうの pip install numpy で入るやつです.

numpy

Linux platform(linux-64)

numpy の中で BLAS は指定されおり(scipy-openblas)これは OpenBLASです.

pixi add python==3.11
pixi add numpy --pypi
pypi-numpy [main●] % pixi run python -c "import numpy; print(numpy.__config__.show())";
  "Build Dependencies": {
    "blas": {
      "name": "scipy-openblas",
      "found": true,
      "version": "0.3.28",
      "detection method": "pkgconfig",
      "include directory": "/opt/_internal/cpython-3.13.0/lib/python3.13/site-packages/scipy_openblas64/include",
      "lib directory": "/opt/_internal/cpython-3.13.0/lib/python3.13/site-packages/scipy_openblas64/lib",
      "openblas configuration": "OpenBLAS 0.3.28  USE64BITINT DYNAMIC_ARCH NO_AFFINITY Haswell MAX_THREADS=64",
      "pc file directory": "/project/.openblas"
    },

1-b. Apple Accelerate

numpy2.0.0+では、MacOSの場合 Apple Accelerate 版がインストールされるようです。