<aside> 🪄
Pixi Advent Calendar 2025 11日目の記事です。
</aside>
<aside> ⚠️
conda numpy と pypi numpy は実は構成が異なる

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>
</aside>
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>
ふつうの pip install 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"
},
numpy2.0.0+では、MacOSの場合 Apple Accelerate 版がインストールされるようです。