Skip to content

ENH, BLD: use wheels to get BLAS implementations #24857

@mattip

Description

@mattip

In PR #24839, we began using scipy-openblas wheels in the CI build/test cycles. In order to use these in wheel building as well, we need to declare a dependency, so that pip install numpy in all its variations (build a wheel, build an sdist, install a wheel, install from an sdist) will

  • install scipy-openblas befor compiling
  • ship a modified _distributor_init.py (or add a _distributor_init_local.py) to import scipy-openblas before numpy
  • find the scipy-openblas.pc file when building
  • declare a dependency in the metadata of the numpy wheel/sdist

This is tricky since (take from the short discussion starting in this comment

  • There are two variants: scipy-openblas32 and scipy-openblas64. Which to use as the canonical dependency? It seems at least for NumPy this is easy: always use the ILP64 package.
  • How to allow changing that choice for a different variant (if not the 32/64 problem, then say MKL, or Accelerate, or None for platforms where OpenBLAS is not appropriate)?

We cannot currently have different metadata in the sdist than we have in the wheel on PyPI. There are some ideas in the draft PEP 725. Or perhaps we could have a meta-package scipy-openblasX?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions