Skip to content

Cleanup and AVX10 Support #75

Cleanup and AVX10 Support

Cleanup and AVX10 Support #75

Workflow file for this run

name: codegen
on:
- pull_request
jobs:
install-pspamm:
name: install-pspamm
runs-on: ubuntu-24.04
steps:
- name: apt-get
run: |
set -euo pipefail
sudo apt-get update
- name: setup-python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: checkout-pspamm
uses: actions/checkout@v4
- name: pip-pspamm
run: |
pip install .
- name: dry-run-pspamm
run: |
set +e
pspamm-generator
retcode=$?
set -e
if [ $retcode -ne 2 ]; then
echo "Unexpected exit code."
exit 1
fi
echo "Success!"
pspamm-codegen-avx:
name: pspamm-codegen-avx
runs-on: ubuntu-24.04
needs: install-pspamm
steps:
- name: apt-get
run: |
set -euo pipefail
sudo apt-get update
sudo apt-get install g++ qemu-user-static
- name: setup-python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: checkout-pspamm
uses: actions/checkout@v4
- name: pip-pspamm
run: |
pip install .
- name: pspamm-tests-generate
run: |
cd tests/
python unit_test.py hsw256
python unit_test.py hsw128
- name: pspamm-tests-compile
run: |
cd tests/
g++ -static -mavx2 build/hsw256_testsuite.cpp -o build/hsw256-test
g++ -static -mavx2 build/hsw128_testsuite.cpp -o build/hsw128-test
- name: pspamm-tests-run
run: |
cd tests/
qemu-x86_64-static -cpu Haswell build/hsw256-test
qemu-x86_64-static -cpu Haswell build/hsw128-test
pspamm-codegen-avx512-no-run:
name: pspamm-codegen-avx512-no-run
runs-on: ubuntu-24.04
needs: install-pspamm
steps:
- name: apt-get
run: |
set -euo pipefail
sudo apt-get update
sudo apt-get install g++ qemu-user-static
- name: setup-python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: checkout-pspamm
uses: actions/checkout@v4
- name: pip-pspamm
run: |
pip install .
- name: pspamm-tests-generate
run: |
cd tests/
python unit_test.py knl512
python unit_test.py knl256
python unit_test.py knl128
- name: pspamm-tests-compile
run: |
cd tests/
g++ -static -mavx512f build/knl512_testsuite.cpp -o build/knl512-test
g++ -static -mavx512f build/knl256_testsuite.cpp -o build/knl256-test
g++ -static -mavx512f build/knl128_testsuite.cpp -o build/knl128-test
# disabled, since qemu doesn't support AVX512F (yet) with of Ubuntu 24.04
# - name: pspamm-tests-run
# run: |
# cd tests/
# qemu-x86_64-static -cpu Skylake-Server build/knl512-test
# qemu-x86_64-static -cpu Skylake-Server build/knl256-test
# qemu-x86_64-static -cpu Skylake-Server build/knl128-test
pspamm-codegen-aarch64:
name: pspamm-codegen-aarch64
runs-on: ubuntu-24.04
needs: install-pspamm
steps:
- name: apt-get
run: |
set -euo pipefail
sudo apt-get update
sudo apt-get install g++-aarch64-linux-gnu qemu-user-static
- name: setup-python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: checkout-pspamm
uses: actions/checkout@v4
- name: pip-pspamm
run: |
pip install .
- name: pspamm-tests-generate
run: |
cd tests/
python unit_test.py arm128
- name: pspamm-tests-compile
run: |
cd tests/
aarch64-linux-gnu-g++ -static -march=armv8.2-a build/arm128_testsuite.cpp -o build/arm128-test
- name: pspamm-tests-run
run: |
cd tests/
qemu-aarch64-static -cpu max build/arm128-test
pspamm-codegen-armsve:
name: pspamm-codegen-armsve
runs-on: ubuntu-24.04
needs: install-pspamm
# include vector lengths for SVE manually (for now)
strategy:
fail-fast: false
matrix:
vectorlen:
- 128
- 256
- 512
- 1024
- 2048
steps:
- name: apt-get
run: |
set -euo pipefail
sudo apt-get update
sudo apt-get install g++-aarch64-linux-gnu qemu-user-static
- name: setup-python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: checkout-pspamm
uses: actions/checkout@v4
- name: pip-pspamm
run: |
pip install .
- name: pspamm-tests-generate
run: |
cd tests/
python unit_test.py arm_sve${{matrix.vectorlen}}
- name: pspamm-tests-compile
run: |
cd tests/
aarch64-linux-gnu-g++ -static -march=armv8.2-a+sve -msve-vector-bits=${{matrix.vectorlen}} build/arm_sve${{matrix.vectorlen}}_testsuite.cpp -o build/arm_sve${{matrix.vectorlen}}-test
- name: pspamm-tests-run
run: |
cd tests/
qemu-aarch64-static -cpu max,sve${{matrix.vectorlen}}=on,sve-default-vector-length=-1 build/arm_sve${{matrix.vectorlen}}-test