Skip to content

Feat/fp16/math 1 reinstoring #3916

Feat/fp16/math 1 reinstoring

Feat/fp16/math 1 reinstoring #3916

Workflow file for this run

####################################################################################################
## EVE - Expressive Vector Engine
## Copyright : EVE Project Contributors
## SPDX-License-Identifier: BSL-1.0
####################################################################################################
name: EVE - Unit Tests
on:
pull_request:
branches:
- main
concurrency:
group: unit-${{ github.ref }}
cancel-in-progress: true
jobs:
##################################################################################################
## Special non-arch-specific tests
##################################################################################################
special:
runs-on: ubuntu-latest
container:
image: ghcr.io/jfalcou/compilers:v10
options: -u root
strategy:
fail-fast: false
matrix:
cfg:
- { comp: clang, arch: x86 , opts: "-mavx2 -O3 -DEVE_SPECIAL_TESTS" }
- { comp: gcc , arch: x86 , opts: "-mavx2 -O3 -DEVE_SPECIAL_TESTS" }
steps:
- name: Print Runner Info
run: |
echo "CPU cores: $(nproc)"
echo "Memory: $(free -h | grep '^Mem:' | awk '{print $2}')"
echo "Available disk space: $(df -h / | tail -1 | awk '{print $4 "/" $2}')"
- name: Fetch current branch
uses: actions/[email protected]
- name: Prepare EVE with ${{ matrix.cfg.comp }} @ ${{ matrix.cfg.arch }} with ${{ matrix.cfg.opts }}
run: |
mkdir build
cd build
cmake .. -G Ninja -DEVE_OPTIONS="${{ matrix.cfg.opts }}" -DEVE_USE_PCH=0 \
-DCMAKE_TOOLCHAIN_FILE=../cmake/toolchain/${{ matrix.cfg.comp }}.${{ matrix.cfg.arch }}.cmake
- name: Compile Unit Tests
run: |
cd build
ninja -j 4 unit.internals.float16.exe
- name: Running Unit Tests
run: |
cd build
ctest --output-on-failure -j 4 --timeout 3600 -R unit.internals.float16.exe
##################################################################################################
## Check no PCH mode
##################################################################################################
no_pch:
runs-on: ubuntu-latest
container:
image: ghcr.io/jfalcou/compilers:v10
options: -u root
strategy:
fail-fast: false
matrix:
cfg:
- { comp: clang, arch: x86 , opts: "-msse2" }
- { comp: gcc , arch: x86 , opts: "-msse2" }
steps:
- name: Print Runner Info
run: |
echo "CPU cores: $(nproc)"
echo "Memory: $(free -h | grep '^Mem:' | awk '{print $2}')"
echo "Available disk space: $(df -h / | tail -1 | awk '{print $4 "/" $2}')"
- name: Fetch current branch
uses: actions/[email protected]
- name: Prepare EVE with ${{ matrix.cfg.comp }} @ ${{ matrix.cfg.arch }} with ${{ matrix.cfg.opts }}
run: |
mkdir build
cd build
cmake .. -G Ninja -DEVE_OPTIONS="${{ matrix.cfg.opts }}" -DEVE_USE_PCH=0 \
-DCMAKE_TOOLCHAIN_FILE=../cmake/toolchain/${{ matrix.cfg.comp }}.${{ matrix.cfg.arch }}.cmake
- name: "Chunk 1: Compile"
run: |
cd build
ninja unit.core.exe -j 4
- name: "Chunk 1: Run"
run: |
cd build
ctest --output-on-failure -j 4 --timeout 3600 -R "^unit\.core\."
- name: "Chunk 1: Cleanup"
run: |
cd build
ninja clean
- name: "Chunk 2: Compile"
run: |
cd build
ninja unit.api.exe unit.math.exe -j 4
- name: "Chunk 2: Run"
run: |
cd build
ctest --output-on-failure -j 4 --timeout 3600 -R "^unit\.api\.|^unit\.math\."
- name: "Chunk 2: Cleanup"
run: |
cd build
ninja clean
- name: "Chunk 3: Compile"
run: |
cd build
ninja unit.arch.exe unit.meta.exe unit.internals.exe unit.polynomial.exe unit.combinatorial.exe unit.bessel.exe unit.elliptic.exe unit.memory.exe unit.special.exe unit.algo.exe examples.exe -j 4
- name: "Chunk 3: Run"
run: |
cd build
ctest --output-on-failure -j 4 --timeout 3600 -R "^unit\.arch\.|^unit\.meta\.|^unit\.internals\.|^unit\.polynomial\.|^unit\.combinatorial\.|^unit\.bessel\.|^unit\.elliptic\.|^unit\.memory\.|^unit\.special\.|^unit\.algo\.|^examples\."
##################################################################################################
## Check External dependencies
##################################################################################################
externals:
runs-on: ubuntu-latest
container:
image: ghcr.io/jfalcou/compilers:v10
options: -u root
strategy:
fail-fast: false
matrix:
cfg:
- { comp: clang, arch: x86 , opts: "-mavx2 -mf16c" }
- { comp: gcc , arch: x86 , opts: "-msse2" }
steps:
- name: Print Runner Info
run: |
echo "CPU cores: $(nproc)"
echo "Memory: $(free -h | grep '^Mem:' | awk '{print $2}')"
echo "Available disk space: $(df -h / | tail -1 | awk '{print $4 "/" $2}')"
- name: Install KUMI
run: |
mkdir 3rdparty
cd 3rdparty
git clone https://github.com/jfalcou/kumi.git
cd kumi
mkdir build
cd build
cmake .. -G Ninja
cmake --install . --prefix /usr
- name: Install RABERU
run: |
cd 3rdparty
git clone https://github.com/jfalcou/raberu.git
cd raberu
mkdir build
cd build
cmake .. -G Ninja
cmake --install . --prefix /usr
- name: Fetch current branch
uses: actions/[email protected]
- name: Prepare EVE with ${{ matrix.cfg.comp }} @ ${{ matrix.cfg.arch }} with ${{ matrix.cfg.opts }}
run: |
mkdir build
cd build
cmake .. -G Ninja -DEVE_OPTIONS="${{ matrix.cfg.opts }} -DEVE_USE_EXTERNAL_DEPENDENCIES" \
-DCMAKE_TOOLCHAIN_FILE=../cmake/toolchain/${{ matrix.cfg.comp }}.${{ matrix.cfg.arch }}.cmake
- name: "Chunk 1: Compile"
run: |
cd build
ninja unit.core.exe -j 4
- name: "Chunk 1: Run"
run: |
cd build
ctest --output-on-failure -j 4 --timeout 3600 -R "^unit\.core\."
- name: "Chunk 1: Cleanup"
run: |
cd build
ninja clean
- name: "Chunk 2: Compile"
run: |
cd build
ninja unit.api.exe unit.math.exe -j 4
- name: "Chunk 2: Run"
run: |
cd build
ctest --output-on-failure -j 4 --timeout 3600 -R "^unit\.api\.|^unit\.math\."
- name: "Chunk 2: Cleanup"
run: |
cd build
ninja clean
- name: "Chunk 3: Compile"
run: |
cd build
ninja unit.arch.exe unit.meta.exe unit.internals.exe unit.polynomial.exe unit.combinatorial.exe unit.bessel.exe unit.elliptic.exe unit.memory.exe unit.special.exe unit.algo.exe examples.exe -j 4
- name: "Chunk 3: Run"
run: |
cd build
ctest --output-on-failure -j 4 --timeout 3600 -R "^unit\.arch\.|^unit\.meta\.|^unit\.internals\.|^unit\.polynomial\.|^unit\.combinatorial\.|^unit\.bessel\.|^unit\.elliptic\.|^unit\.memory\.|^unit\.special\.|^unit\.algo\.|^examples\."
##################################################################################################
## RISC-V Targets
##################################################################################################
riscv:
runs-on: ubuntu-latest
container:
image: ghcr.io/jfalcou/compilers:v9b
options: -u root
strategy:
fail-fast: false
matrix:
cfg:
- { comp: clang , arch: riscv, runner: "run_rvv128", opts: "-mrvv-vector-bits=128 -march=rv64gcv -O3" }
- { comp: clang , arch: riscv, runner: "run_rvv128_fhmin", opts: "-mrvv-vector-bits=128 -march=rv64gcv_zfhmin_zvfhmin -O3" }
- { comp: clang , arch: riscv, runner: "run_rvv256", opts: "-mrvv-vector-bits=256 -march=rv64gcv_zfh_zvfh -O3" }
steps:
- name: Print Runner Info
run: |
echo "CPU cores: $(nproc)"
echo "Memory: $(free -h | grep '^Mem:' | awk '{print $2}')"
echo "Available disk space: $(df -h / | tail -1 | awk '{print $4 "/" $2}')"
- name: Fetch current branch
uses: actions/[email protected]
- name: Running CMake for ${{ matrix.cfg.comp }} on ${{ matrix.cfg.arch }} with ${{ matrix.cfg.opts }}
run: |
mkdir build && cd build
cmake .. -G Ninja -DEVE_RUNNER_SCRIPT=${{ matrix.cfg.runner }} -DEVE_OPTIONS="${{ matrix.cfg.opts }}" -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchain/${{ matrix.cfg.comp }}.${{ matrix.cfg.arch }}.cmake
- name: Compiling Unit Tests
run: cd build && ninja unit.meta.exe unit.arch.exe unit.core.bit_cast.exe unit.api.regular.wide.exe unit.core.simd_cast.exe unit.core.count_true.exe unit.memory.store.exe unit.memory.store_equivalent.exe -j 4
- name: Compiling Big Unit Tests
run: cd build && ninja unit.api.compress.exe -j 2
- name: Running Unit Tests
run: cd build && ctest --output-on-failure -j 4 --timeout 3600 -R "^unit.meta.*.exe|^unit.arch.*.exe|unit.core.bit_cast.exe|unit.api.regular.wide.exe|unit.core.simd_cast.exe|^unit.api.compress.*|unit.core.count_true.exe|unit.memory.store.*"
##################################################################################################
## ARMv7
##################################################################################################
armv7:
runs-on: ubuntu-latest
container:
image: ghcr.io/jfalcou/compilers:v10
options: -u root
strategy:
fail-fast: false
matrix:
cfg:
- { comp: clang, arch: arm, opts: -Wno-psabi }
steps:
- name: Print Runner Info
run: |
echo "CPU cores: $(nproc)"
echo "Memory: $(free -h | grep '^Mem:' | awk '{print $2}')"
echo "Available disk space: $(df -h / | tail -1 | awk '{print $4 "/" $2}')"
- name: Fetch current branch
uses: actions/[email protected]
- name: Running CMake for ${{ matrix.cfg.comp }} on ${{ matrix.cfg.arch }} with ${{ matrix.cfg.opts }}
run: |
mkdir build && cd build
cmake .. -G Ninja -DEVE_OPTIONS="${{ matrix.cfg.opts }}" -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchain/${{ matrix.cfg.comp }}.${{ matrix.cfg.arch }}.cmake
- name: "Chunk 1: Compile"
run: |
cd build
ninja unit.core.exe -j 4
- name: "Chunk 1: Run"
run: |
cd build
ctest --output-on-failure -j 4 --timeout 3600 -R "^unit\.core\."
- name: "Chunk 1: Cleanup"
run: |
cd build
ninja clean
- name: "Chunk 2: Compile"
run: |
cd build
ninja unit.api.exe unit.math.exe -j 4
- name: "Chunk 2: Run"
run: |
cd build
ctest --output-on-failure -j 4 --timeout 3600 -R "^unit\.api\.|^unit\.math\."
- name: "Chunk 2: Cleanup"
run: |
cd build
ninja clean
- name: "Chunk 3: Compile"
run: |
cd build
ninja unit.arch.exe unit.meta.exe unit.internals.exe unit.polynomial.exe unit.combinatorial.exe unit.bessel.exe unit.elliptic.exe unit.memory.exe unit.special.exe unit.algo.exe examples.exe -j 4
- name: "Chunk 3: Run"
run: |
cd build
ctest --output-on-failure -j 4 --timeout 3600 -R "^unit\.arch\.|^unit\.meta\.|^unit\.internals\.|^unit\.polynomial\.|^unit\.combinatorial\.|^unit\.bessel\.|^unit\.elliptic\.|^unit\.memory\.|^unit\.special\.|^unit\.algo\.|^examples\."
##################################################################################################
## Full emulation tests
##################################################################################################
nosimd:
runs-on: ubuntu-latest
container:
image: ghcr.io/jfalcou/compilers:v10
options: -u root
strategy:
fail-fast: false
matrix:
cfg:
- { comp: clang , arch: x86 , opts: -DEVE_NO_SIMD }
- { comp: gcc , arch: x86 , opts: -DEVE_NO_SIMD }
steps:
- name: Print Runner Info
run: |
echo "CPU cores: $(nproc)"
echo "Memory: $(free -h | grep '^Mem:' | awk '{print $2}')"
echo "Available disk space: $(df -h / | tail -1 | awk '{print $4 "/" $2}')"
- name: Fetch current branch
uses: actions/[email protected]
- name: Running CMake for ${{ matrix.cfg.comp }} on ${{ matrix.cfg.arch }} with ${{ matrix.cfg.opts }}
run: |
mkdir build && cd build
cmake .. -G Ninja -DEVE_OPTIONS="${{ matrix.cfg.opts }}" -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchain/${{ matrix.cfg.comp }}.${{ matrix.cfg.arch }}.cmake
- name: "Chunk 1: Compile"
run: |
cd build
ninja unit.core.exe -j 4
- name: "Chunk 1: Run"
run: |
cd build
ctest --output-on-failure -j 4 --timeout 3600 -R "^unit\.core\."
- name: "Chunk 1: Cleanup"
run: |
cd build
ninja clean
- name: "Chunk 2: Compile"
run: |
cd build
ninja unit.api.exe unit.math.exe -j 4
- name: "Chunk 2: Run"
run: |
cd build
ctest --output-on-failure -j 4 --timeout 3600 -R "^unit\.api\.|^unit\.math\."
- name: "Chunk 2: Cleanup"
run: |
cd build
ninja clean
- name: "Chunk 3: Compile"
run: |
cd build
ninja unit.arch.exe unit.meta.exe unit.internals.exe unit.polynomial.exe unit.combinatorial.exe unit.bessel.exe unit.elliptic.exe unit.memory.exe unit.special.exe unit.algo.exe examples.exe -j 4
- name: "Chunk 3: Run"
run: |
cd build
ctest --output-on-failure -j 4 --timeout 3600 -R "^unit\.arch\.|^unit\.meta\.|^unit\.internals\.|^unit\.polynomial\.|^unit\.combinatorial\.|^unit\.bessel\.|^unit\.elliptic\.|^unit\.memory\.|^unit\.special\.|^unit\.algo\.|^examples\."
##################################################################################################
## Mac OS X Targets
##################################################################################################
macosx:
runs-on: [macos-15]
strategy:
fail-fast: false
matrix:
cfg:
- { comp: 'clang', opts: "-Wno-psabi -march=armv8.7-a+fp16" }
steps:
- name: Print Runner Info
run: |
system_profiler SPHardwareDataType | grep -E "(Memory|Cores)"
df -h /System/Volumes/Data
- name: Fetch current branch
uses: actions/checkout@v4
- name: Running CMake for ${{ matrix.cfg.comp }}
run: |
mkdir build && cd build
cmake .. -G Ninja -DEVE_OPTIONS="${{ matrix.cfg.opts }}" -DCMAKE_TOOLCHAIN_FILE="../cmake/toolchain/${{ matrix.cfg.comp }}.osx.cmake"
- name: Compiling Unit Tests
run: cd build && ninja unit.exe -j 2
- name: Running Unit Tests
run: cd build && ctest --output-on-failure -j 2 --timeout 3600 -E ^doc.*.exe
##################################################################################################
## Windows Targets - Deactivated for now
##################################################################################################
# msvc:
# runs-on: [windows-2022]
# strategy:
# fail-fast: false
# matrix:
# cfg:
# - { mode: Debug, options: "-DEVE_NO_FORCEINLINE"}
# steps:
# - name: Fetch current branch
# uses: actions/[email protected]
# - name: Running CMake for MSVC ${{ matrix.cfg.mode }} ${{ matrix.cfg.options }}
# run: |
# mkdir build && cd build
# cmake -G "Visual Studio 17 2022" -A x64 .. -DCMAKE_CXX_FLAGS="${{ matrix.cfg.options }}"
# - name: Compiling Unit Tests
# run: |
# cd build
# cmake --build . --target unit.arch.exe --config ${{ matrix.cfg.mode }} --parallel 2
# cmake --build . --target unit.meta.exe --config ${{ matrix.cfg.mode }} --parallel 2
# cmake --build . --target unit.internals.exe --config ${{ matrix.cfg.mode }} --parallel 2
# - name: Running Tests
# run: |
# cd build
# ctest -C ${{ matrix.cfg.mode }} --output-on-failure -R ^unit.arch.*.exe
# ctest -C ${{ matrix.cfg.mode }} --output-on-failure -R ^unit.meta.*.exe
# ctest -C ${{ matrix.cfg.mode }} --output-on-failure -R ^unit.internals.*.exe
##################################################################################################
## Host 1 - Pre-Skylake SIMD ISA - clang
##################################################################################################
x86-clang:
runs-on: [self-hosted, generic-x86]
container:
image: ghcr.io/jfalcou/compilers:v10
options: -u root
strategy:
fail-fast: false
matrix:
cfg:
- { comp: clang , arch: x86, opts: -msse4.2 }
- { comp: clang , arch: x86, opts: -mavx -mf16c }
- { comp: clang , arch: x86, opts: -mavx2 }
steps:
- name: Fetch current branch
uses: actions/[email protected]
- name: Running CMake for ${{ matrix.cfg.comp }} on ${{ matrix.cfg.arch }} with ${{ matrix.cfg.opts }}
run: |
mkdir build && cd build
cmake .. -G Ninja -DEVE_OPTIONS="${{ matrix.cfg.opts }}" -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchain/${{ matrix.cfg.comp }}.${{ matrix.cfg.arch }}.cmake
- name: Compiling Unit Tests
run: cd build && ninja unit.exe -j 10
- name: Running Unit Tests
run: cd build && ctest --output-on-failure -j 10 --timeout 3600 -E ^doc.*.exe
##################################################################################################
## Host 1 - PPC & ARM SVE256/512 Tests
##################################################################################################
other-arch:
needs: x86-clang
runs-on: [self-hosted, generic-x86]
container:
image: ghcr.io/jfalcou/compilers:v10
options: -u root
strategy:
fail-fast: false
matrix:
cfg:
- { comp: gcc, arch: sve , opts: -Wno-psabi}
- { comp: gcc, arch: sve2 , opts: -Wno-psabi}
- { comp: gcc, arch: ppc64 , opts: -Wno-psabi}
steps:
- name: Fetch current branch
uses: actions/[email protected]
- name: Prepare EVE with ${{ matrix.cfg.comp }} @ ${{ matrix.cfg.arch }} with ${{ matrix.cfg.opts }}
run: |
mkdir build
cd build
cmake .. -G Ninja -DEVE_OPTIONS="${{ matrix.cfg.opts }}" \
-DCMAKE_TOOLCHAIN_FILE=../cmake/toolchain/${{ matrix.cfg.comp }}.${{ matrix.cfg.arch }}.cmake
- name: Compiling Unit Tests
run: cd build && ninja unit.exe -j 10
- name: Running Unit Tests
run: cd build && ctest --output-on-failure -j 10 --timeout 3600 -E ^doc.*.exe
##################################################################################################
## Host 1 - Pre-Skylake SIMD ISA - g++
##################################################################################################
x86-gcc:
needs: other-arch
runs-on: [self-hosted, generic-x86]
container:
image: ghcr.io/jfalcou/compilers:v10
options: -u root
strategy:
fail-fast: false
matrix:
cfg:
- { comp: gcc , arch: x86, opts: -msse4.2 }
- { comp: gcc , arch: x86, opts: -mavx }
- { comp: gcc , arch: x86, opts: -mavx2 -mf16c }
steps:
- name: Fetch current branch
uses: actions/[email protected]
- name: Running CMake for ${{ matrix.cfg.comp }} on ${{ matrix.cfg.arch }} with ${{ matrix.cfg.opts }}
run: |
mkdir build && cd build
cmake .. -G Ninja -DEVE_OPTIONS="${{ matrix.cfg.opts }}" -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchain/${{ matrix.cfg.comp }}.${{ matrix.cfg.arch }}.cmake
- name: Compiling Unit Tests
run: cd build && ninja unit.exe -j 10
- name: Running Unit Tests
run: cd build && ctest --output-on-failure -j 10 --timeout 3600 -E ^doc.*.exe
##################################################################################################
## Host 2 - Post-Skylake SIMD ISA
##################################################################################################
avx512:
runs-on: [self-hosted, avx512]
container:
image: ghcr.io/jfalcou/compilers:v10
options: -u root
strategy:
fail-fast: false
matrix:
cfg:
- { comp: clang , arch: x86 , opts: -march=skylake-avx512 }
- { comp: gcc , arch: x86 , opts: -march=skylake-avx512 }
steps:
- name: Fetch current branch
uses: actions/[email protected]
- name: Running CMake for ${{ matrix.cfg.comp }} on ${{ matrix.cfg.arch }} with ${{ matrix.cfg.opts }}
run: |
mkdir build && cd build
cmake .. -G Ninja -DEVE_OPTIONS="${{ matrix.cfg.opts }}" -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchain/${{ matrix.cfg.comp }}.${{ matrix.cfg.arch }}.cmake
- name: Compiling Unit Tests
run: cd build && ninja unit.exe -j 5
- name: Running Unit Tests
run: cd build && ctest --output-on-failure -j 4 --timeout 3600 -E ^doc.*.exe
##################################################################################################
## Host 2 - Pre-Skylake SIMD ISA - Special cases
##################################################################################################
other-cases:
needs: avx512
runs-on: [self-hosted, avx512]
container:
image: ghcr.io/jfalcou/compilers:v10
options: -u root
strategy:
fail-fast: false
matrix:
cfg:
- { comp: clang , arch: x86 , opts: "-mavx2 -mbmi2 -DEVE_USE_BMI_ON_AVX2" }
- { comp: gcc , arch: x86 , opts: "-mavx2 -mbmi2 -DEVE_USE_BMI_ON_AVX2" }
steps:
- name: Fetch current branch
uses: actions/[email protected]
- name: Running CMake for ${{ matrix.cfg.comp }} on ${{ matrix.cfg.arch }} with ${{ matrix.cfg.opts }}
run: |
mkdir build && cd build
cmake .. -G Ninja -DEVE_OPTIONS="${{ matrix.cfg.opts }}" -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchain/${{ matrix.cfg.comp }}.${{ matrix.cfg.arch }}.cmake
- name: Compiling Unit Tests
run: cd build && ninja unit.exe -j 5
- name: Running Unit Tests
run: cd build && ctest --output-on-failure -j 4 --timeout 3600 -E ^doc.*.exe