Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update setup and improve arch detection / support for linux #44

Merged

Conversation

adrianeboyd
Copy link
Contributor

@adrianeboyd adrianeboyd commented Nov 27, 2020

Update cythonize in setup

Remove detailed numpy constraints from pyproject.toml

Improve arch detection / support for linux and darwin:

linux:

  • For aarch64:
    • Set default to cortexa57
    • Change default compiler to gcc
  • For ppc64le:
    • Set default to power9
    • Change default compiler to gcc
  • For x86_64:
    • Detect support for znver1, znver2, and skylake-avx512 flags
    • Add alternative to x86_64 without znver2 as zx86_64_no_zen2
    • Set default to generic (no flags supported or detection fails)
  • For remaining:
    • Set default to generic instead of x86_64

darwin:

  • Set default to generic for non-x86_64

* For `aarch64`: set default to `cortexa57`
  * Change default compiler to `gcc`
* For `ppc64le`: set default to `power9`
  * Change default compiler to `gcc`
* For `x86_64`:
  * Detect support for `znver2` and `skylake-avx512` flags
  * Add alternative to `x86_64` without `znver2` as `zx86_64_no_znver2`
  * Set default to `x86_64_no_skx` (neither flag supported or detection
    fails)
* For remaining: set default to `generic` instead of `x86_64`
@adrianeboyd adrianeboyd reopened this Nov 30, 2020
* Update cythonize setup
* Exclude generated .c files
* Clean up imports
* Remove detailed numpy build constraints from `pyproject.toml` because
  it is too difficult to maintain for many architectures
  * These constraints are more a reflection of what is available on
    pypi as binary wheels rather than any real build requirements that
    it is necessary for users to follow when building from source
  * Users building their own binary packages will need to enforce the
    constraints that make sense in their environments, e.g., the `conda`
    compatible numpy pins

* Keep the build constraints in `build-constraints.txt` for use with our
  builds
  * Our builds with wheelwright are built against the earliest
    compatible binary versions of numpy on pypi
  * These constraints are documented within the distribution
@adrianeboyd adrianeboyd changed the title Improve arch detection / support for linux Update setup and improve arch detection / support for linux Dec 1, 2020
* Refactor compiler flag check
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant