Skip to content

MAINT: Support python 314rc1 #9148

MAINT: Support python 314rc1

MAINT: Support python 314rc1 #9148

Workflow file for this run

name: Linux SIMD tests
# This file is meant for testing different SIMD-related build options and
# optimization levels. See `meson_options.txt` for the available build options.
#
# Jobs and their purposes:
#
# - baseline_only:
# Focuses on completing as quickly as possible and acts as a filter for other, more resource-intensive jobs.
# Utilizes only the default baseline targets (e.g., SSE3 on X86_64) without enabling any runtime dispatched features.
#
# - old_gcc:
# Tests the oldest supported GCC version with default CPU/baseline/dispatch settings.
#
# - without_optimizations:
# Completely disables all SIMD optimizations and other compiler optimizations such as loop unrolling.
#
# - native:
# Tests against the host CPU features set as the baseline without enabling any runtime dispatched features.
# Intended to assess the entire NumPy codebase against host flags, even for code sections lacking handwritten SIMD intrinsics.
#
# - without_avx512/avx2/fma3:
# Uses runtime SIMD dispatching but disables AVX2, FMA3, and AVX512.
# Intended to evaluate 128-bit SIMD extensions without FMA support.
#
# - without_avx512:
# Uses runtime SIMD dispatching but disables AVX512.
# Intended to evaluate 128-bit/256-bit SIMD extensions.
#
# - intel_sde:
# Executes only the SIMD tests for various AVX512 SIMD extensions under the Intel Software Development Emulator (SDE).
#
on:
pull_request:
branches:
- main
- maintenance/**
defaults:
run:
shell: 'script -q -e -c "bash --noprofile --norc -eo pipefail {0}"'
env:
TERM: xterm-256color
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
baseline_only:
# To enable this workflow on a fork, comment out:
if: github.repository == 'numpy/numpy'
runs-on: ubuntu-latest
env:
MESON_ARGS: "-Dallow-noblas=true -Dcpu-dispatch=none"
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: recursive
fetch-tags: true
persist-credentials: false
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: '3.11'
- uses: ./.github/meson_actions
name: Build/Test
old_gcc:
if: github.event_name != 'push'
needs: [baseline_only]
runs-on: ubuntu-latest
env:
MESON_ARGS: "-Dallow-noblas=true"
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: recursive
fetch-tags: true
persist-credentials: false
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: '3.11'
- name: Install GCC9/10
run: |
echo "deb http://archive.ubuntu.com/ubuntu focal main universe" | sudo tee /etc/apt/sources.list.d/focal.list
sudo apt update
sudo apt install -y g++-9 g++-10
- name: Enable gcc-9
run: |
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 1
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 1
- uses: ./.github/meson_actions
name: Build/Test against gcc-9
- name: Enable gcc-10
run: |
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 2
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 2
- uses: ./.github/meson_actions
name: Build/Test against gcc-10
arm64_simd:
if: github.repository == 'numpy/numpy'
needs: [baseline_only]
runs-on: ubuntu-22.04-arm
strategy:
fail-fast: false
matrix:
config:
- name: "baseline only"
args: "-Dallow-noblas=true -Dcpu-dispatch=none"
- name: "with ASIMD"
args: "-Dallow-noblas=true -Dcpu-baseline=asimd"
- name: "native"
args: "-Dallow-noblas=true -Dcpu-baseline=native -Dcpu-dispatch=none"
name: "ARM64 SIMD - ${{ matrix.config.name }}"
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: recursive
fetch-tags: true
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: '3.11'
- name: Install dependencies
run: |
python -m pip install -r requirements/build_requirements.txt
python -m pip install pytest pytest-xdist hypothesis typing_extensions pytest-timeout
- name: Build
run: |
spin build -- ${{ matrix.config.args }}
- name: Test
run: |
spin test -- --timeout=600 --durations=10
specialize:
needs: [baseline_only]
runs-on: ubuntu-latest
if: github.event_name != 'push'
continue-on-error: true
strategy:
fail-fast: false
matrix:
BUILD_PROP:
- [
"without optimizations",
"-Dallow-noblas=true -Ddisable-optimization=true",
"3.12"
]
- [
"native",
"-Dallow-noblas=true -Dcpu-baseline=native -Dcpu-dispatch=none",
"3.11"
]
- [
"without avx512",
"-Dallow-noblas=true -Dcpu-dispatch=SSSE3,SSE41,POPCNT,SSE42,AVX,F16C,AVX2,FMA3",
"3.11"
]
- [
"without avx512/avx2/fma3",
"-Dallow-noblas=true -Dcpu-dispatch=SSSE3,SSE41,POPCNT,SSE42,AVX,F16C",
"3.11"
]
env:
MESON_ARGS: ${{ matrix.BUILD_PROP[1] }}
name: "${{ matrix.BUILD_PROP[0] }}"
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: recursive
fetch-tags: true
persist-credentials: false
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: "${{ matrix.BUILD_PROP[2] }}"
- uses: ./.github/meson_actions
name: Build/Test
intel_sde_avx512:
needs: [baseline_only]
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: recursive
fetch-tags: true
persist-credentials: false
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: '3.11'
- name: Install Intel SDE
run: |
curl -o /tmp/sde.tar.xz https://downloadmirror.intel.com/788820/sde-external-9.27.0-2023-09-13-lin.tar.xz
mkdir /tmp/sde && tar -xvf /tmp/sde.tar.xz -C /tmp/sde/
sudo mv /tmp/sde/* /opt/sde && sudo ln -s /opt/sde/sde64 /usr/bin/sde
- name: Install dependencies
run: |
python -m pip install -r requirements/build_requirements.txt
python -m pip install pytest pytest-xdist hypothesis typing_extensions
- name: Build
run: CC=gcc-13 CXX=g++-13 spin build -- -Denable-openmp=true -Dallow-noblas=true -Dcpu-baseline=avx512_skx -Dtest-simd='BASELINE,AVX512_KNL,AVX512_KNM,AVX512_SKX,AVX512_CLX,AVX512_CNL,AVX512_ICL,AVX512_SPR'
- name: Meson Log
if: always()
run: cat build/meson-logs/meson-log.txt
- name: SIMD tests (SKX)
run: |
export NUMPY_SITE=$(realpath build-install/usr/lib/python*/site-packages/)
export PYTHONPATH="$PYTHONPATH:$NUMPY_SITE"
cd build-install &&
sde -skx -- python -c "import numpy; numpy.show_config()" &&
sde -skx -- python -m pytest $NUMPY_SITE/numpy/_core/tests/test_simd*
- name: linalg/ufunc/umath tests (TGL)
run: |
export NUMPY_SITE=$(realpath build-install/usr/lib/python*/site-packages/)
export PYTHONPATH="$PYTHONPATH:$NUMPY_SITE"
cd build-install &&
sde -tgl -- python -c "import numpy; numpy.show_config()" &&
sde -tgl -- python -m pytest $NUMPY_SITE/numpy/_core/tests/test_umath* \
$NUMPY_SITE/numpy/_core/tests/test_ufunc.py \
$NUMPY_SITE/numpy/_core/tests/test_multiarray.py \
$NUMPY_SITE/numpy/linalg/tests/test_*
intel_sde_spr:
needs: [baseline_only]
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: recursive
fetch-tags: true
persist-credentials: false
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: '3.11'
- name: Install Intel SDE
run: |
curl -o /tmp/sde.tar.xz https://downloadmirror.intel.com/788820/sde-external-9.27.0-2023-09-13-lin.tar.xz
mkdir /tmp/sde && tar -xvf /tmp/sde.tar.xz -C /tmp/sde/
sudo mv /tmp/sde/* /opt/sde && sudo ln -s /opt/sde/sde64 /usr/bin/sde
- name: Install dependencies
run: |
python -m pip install -r requirements/build_requirements.txt
python -m pip install pytest pytest-xdist hypothesis typing_extensions
- name: Build
run: CC=gcc-13 CXX=g++-13 spin build -- -Denable-openmp=true -Dallow-noblas=true -Dcpu-baseline=avx512_spr
- name: Meson Log
if: always()
run: cat build/meson-logs/meson-log.txt
- name: SIMD tests (SPR)
run: |
export NUMPY_SITE=$(realpath build-install/usr/lib/python*/site-packages/)
export PYTHONPATH="$PYTHONPATH:$NUMPY_SITE"
cd build-install &&
sde -spr -- python -c "import numpy; numpy.show_config()" &&
sde -spr -- python -m pytest $NUMPY_SITE/numpy/_core/tests/test_simd*
- name: linalg/ufunc/umath tests on Intel SPR
run: |
export NUMPY_SITE=$(realpath build-install/usr/lib/python*/site-packages/)
export PYTHONPATH="$PYTHONPATH:$NUMPY_SITE"
cd build-install &&
sde -spr -- python -c "import numpy; numpy.show_config()" &&
sde -spr -- python -m pytest $NUMPY_SITE/numpy/_core/tests/test_umath* \
$NUMPY_SITE/numpy/_core/tests/test_ufunc.py \
$NUMPY_SITE/numpy/_core/tests/test_multiarray.py \
$NUMPY_SITE/numpy/linalg/tests/test_*
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy