Skip to content

GHA, attempt 3

GHA, attempt 3 #18

Workflow file for this run

name: codegen
on:
- push
- 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_tests_hsw.py
- name: pspamm-tests-compile
run: |
cd tests/
g++ -static -mavx512f build/hsw_testsuite.cpp -o build/hsw-test
- name: pspamm-tests-run
run: |
cd tests/
qemu-x86_64-static -cpu Haswell build/hsw-test
pspamm-codegen-avx512:
name: pspamm-codegen-avx512
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_tests_knl.py
- name: pspamm-tests-compile
run: |
cd tests/
g++ -static -mavx512f build/knl_testsuite.cpp -o build/knl-test
- name: pspamm-tests-run
run: |
cd tests/
qemu-x86_64-static -cpu Skylake-Server build/knl-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_tests_arm.py
- name: pspamm-tests-compile
run: |
cd tests/
aarch64-linux-gnu-g++ -static -march=armv8.2-a build/arm_testsuite.cpp -o build/arm-test
- name: pspamm-tests-run
run: |
cd tests/
qemu-aarch64-static -cpu max build/arm-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:
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_tests_arm_sve.py ${{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