Skip to content

feat(bench): add matrix3x3 argument passing benchmark #149

feat(bench): add matrix3x3 argument passing benchmark

feat(bench): add matrix3x3 argument passing benchmark #149

name: build pull request
on:
pull_request:
branches:
- '**'
paths-ignore:
- docs/**
- '**/*.md'
jobs:
linux-xenial:
runs-on: ubuntu-latest
strategy:
matrix:
compiler: [clang4]
steps:
- name: Git checkout
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Building (debug-x86)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x86 -build'
- name: Running unit tests (debug-x86)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x86 -unit_test'
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1
with:
args: 'python3 make.py -ci -clean_only'
- name: Building (debug-x64)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x64 -build'
- name: Running unit tests (debug-x64)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x64 -unit_test'
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1
with:
args: 'python3 make.py -ci -clean_only'
- name: Building (release-x86)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x86 -build'
- name: Running unit tests (release-x86)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x86 -unit_test'
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1
with:
args: 'python3 make.py -ci -clean_only'
- name: Building (release-x64)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -build'
- name: Running unit tests (release-x64)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -unit_test'
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1
with:
args: 'python3 make.py -ci -clean_only'
- name: Building (release-x64 nosimd)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -nosimd -build'
- name: Running unit tests (release-x64 nosimd)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -nosimd -unit_test'
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1
with:
args: 'python3 make.py -ci -clean_only'
- name: Building (release-x64 AVX)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -avx -build'
- name: Running unit tests (release-x64 AVX)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -avx -unit_test'
linux-bionic:
runs-on: ubuntu-latest
strategy:
matrix:
compiler: [gcc5, gcc6, gcc7, gcc8, clang5, clang6, clang7, clang8, clang9, clang10]
steps:
- name: Git checkout
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Building (debug-x86)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x86 -build'
- name: Running unit tests (debug-x86)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x86 -unit_test'
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1
with:
args: 'python3 make.py -ci -clean_only'
- name: Building (debug-x64)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x64 -build'
- name: Running unit tests (debug-x64)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x64 -unit_test'
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1
with:
args: 'python3 make.py -ci -clean_only'
- name: Building (release-x86)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x86 -build'
- name: Running unit tests (release-x86)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x86 -unit_test'
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1
with:
args: 'python3 make.py -ci -clean_only'
- name: Building (release-x64)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -build'
- name: Running unit tests (release-x64)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -unit_test'
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1
with:
args: 'python3 make.py -ci -clean_only'
- name: Building (release-x64 nosimd)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -nosimd -build'
- name: Running unit tests (release-x64 nosimd)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -nosimd -unit_test'
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1
with:
args: 'python3 make.py -ci -clean_only'
- name: Building (release-x64 AVX)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -avx -build'
- name: Running unit tests (release-x64 AVX)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -avx -unit_test'
linux-focal:
runs-on: ubuntu-latest
strategy:
matrix:
compiler: [gcc9, gcc10, gcc11, clang11, clang12, clang13, clang14]
steps:
- name: Git checkout
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Building (debug-x86)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x86 -build'
- name: Running unit tests (debug-x86)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x86 -unit_test'
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1
with:
args: 'python3 make.py -ci -clean_only'
- name: Building (debug-x64)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x64 -build'
- name: Running unit tests (debug-x64)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x64 -unit_test'
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1
with:
args: 'python3 make.py -ci -clean_only'
- name: Building (release-x86)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x86 -build'
- name: Running unit tests (release-x86)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x86 -unit_test'
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1
with:
args: 'python3 make.py -ci -clean_only'
- name: Building (release-x64)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -build'
- name: Running unit tests (release-x64)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -unit_test'
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1
with:
args: 'python3 make.py -ci -clean_only'
- name: Building (release-x64 nosimd)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -nosimd -build'
- name: Running unit tests (release-x64 nosimd)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -nosimd -unit_test'
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1
with:
args: 'python3 make.py -ci -clean_only'
- name: Building (release-x64 AVX)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -avx -build'
- name: Running unit tests (release-x64 AVX)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -avx -unit_test'
linux-lunar:
runs-on: ubuntu-latest
strategy:
matrix:
compiler: [gcc12, gcc13, clang15, clang16, clang17, clang18]
steps:
- name: Git checkout
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Building (debug-x86)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v2
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x86 -build'
- name: Running unit tests (debug-x86)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v2
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x86 -unit_test'
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v2
with:
args: 'python3 make.py -ci -clean_only'
- name: Building (debug-x64)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v2
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x64 -build'
- name: Running unit tests (debug-x64)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v2
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x64 -unit_test'
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v2
with:
args: 'python3 make.py -ci -clean_only'
- name: Building (release-x86)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v2
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x86 -build'
- name: Running unit tests (release-x86)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v2
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x86 -unit_test'
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v2
with:
args: 'python3 make.py -ci -clean_only'
- name: Building (release-x64)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v2
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -build'
- name: Running unit tests (release-x64)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v2
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -unit_test'
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v2
with:
args: 'python3 make.py -ci -clean_only'
- name: Building (release-x64 nosimd)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v2
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -nosimd -build'
- name: Running unit tests (release-x64 nosimd)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v2
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -nosimd -unit_test'
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v2
with:
args: 'python3 make.py -ci -clean_only'
- name: Building (release-x64 AVX)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v2
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -avx -build'
- name: Running unit tests (release-x64 AVX)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v2
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -avx -unit_test'
osx-11:
runs-on: macos-11
strategy:
matrix:
compiler: [xcode12, xcode13]
steps:
- name: Git checkout
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Setup ${{ matrix.compiler }} compiler
run: ./tools/setup_osx_compiler.sh ${{ matrix.compiler }}
- name: Building (debug-x64)
run: python3 make.py -ci -compiler osx -config Debug -cpu x64 -build
- name: Running unit tests (debug-x64)
run: python3 make.py -ci -compiler osx -config Debug -cpu x64 -unit_test
- name: Clean
run: python3 make.py -ci -clean_only
- name: Building (release-x64)
run: python3 make.py -ci -compiler osx -config Release -cpu x64 -build
- name: Running unit tests (release-x64)
run: python3 make.py -ci -compiler osx -config Release -cpu x64 -unit_test
- name: Clean
run: python3 make.py -ci -clean_only
- name: Building (release-x64 nosimd)
run: python3 make.py -ci -compiler osx -config Release -cpu x64 -nosimd -build
- name: Running unit tests (release-x64 nosimd)
run: python3 make.py -ci -compiler osx -config Release -cpu x64 -nosimd -unit_test
- name: Clean
run: python3 make.py -ci -clean_only
- name: Building for iOS (debug-arm64)
run: python3 make.py -ci -compiler ios -config Debug -build
- name: Clean
run: python3 make.py -ci -clean_only
- name: Building for iOS (release-arm64)
run: python3 make.py -ci -compiler ios -config Release -build
- name: Clean
run: python3 make.py -ci -clean_only
- name: Building for iOS (release-arm64 nosimd)
run: python3 make.py -ci -compiler ios -config Release -build -nosimd
osx-12:
runs-on: macos-12
strategy:
matrix:
compiler: [xcode14]
steps:
- name: Git checkout
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Setup ${{ matrix.compiler }} compiler
run: ./tools/setup_osx_compiler.sh ${{ matrix.compiler }}
- name: Building (debug-x64)
run: python3 make.py -ci -compiler osx -config Debug -cpu x64 -build
- name: Running unit tests (debug-x64)
run: python3 make.py -ci -compiler osx -config Debug -cpu x64 -unit_test
- name: Clean
run: python3 make.py -ci -clean_only
- name: Building (release-x64)
run: python3 make.py -ci -compiler osx -config Release -cpu x64 -build
- name: Running unit tests (release-x64)
run: python3 make.py -ci -compiler osx -config Release -cpu x64 -unit_test
- name: Clean
run: python3 make.py -ci -clean_only
- name: Building (release-x64 nosimd)
run: python3 make.py -ci -compiler osx -config Release -cpu x64 -nosimd -build
- name: Running unit tests (release-x64 nosimd)
run: python3 make.py -ci -compiler osx -config Release -cpu x64 -nosimd -unit_test
- name: Clean
run: python3 make.py -ci -clean_only
- name: Building for iOS (debug-arm64)
run: python3 make.py -ci -compiler ios -config Debug -build
- name: Clean
run: python3 make.py -ci -clean_only
- name: Building for iOS (release-arm64)
run: python3 make.py -ci -compiler ios -config Release -build
- name: Clean
run: python3 make.py -ci -clean_only
- name: Building for iOS (release-arm64 nosimd)
run: python3 make.py -ci -compiler ios -config Release -build -nosimd
emscripten:
runs-on: ubuntu-latest
steps:
- name: Git checkout
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Build (debug)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-linux-emscripten:v1
with:
args: 'python3 make.py -ci -compiler emscripten -config debug -build'
# Don't run debug unit tests, they are too slow and sometime time out
# - name: Unit tests (debug)
# run: python3 make.py -ci -compiler emscripten -config debug -unit_test
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-linux-emscripten:v1
with:
args: 'python3 make.py -ci -clean_only'
- name: Build (release)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-linux-emscripten:v1
with:
args: 'python3 make.py -ci -compiler emscripten -config release -build'
- name: Unit tests (release)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-linux-emscripten:v1
with:
args: 'python3 make.py -ci -compiler emscripten -config release -unit_test'
vs2019:
runs-on: windows-2019
strategy:
matrix:
compiler: [vs2019, vs2019-clang]
build_config: [debug, release]
cpu: [x86, x64, arm64]
simd: [-simd, -nosimd, -avx]
exclude:
# Don't run arm64 with clang
- compiler: vs2019-clang
cpu: arm64
# Don't run AVX with arm64
- cpu: arm64
simd: -avx
steps:
- name: Git checkout
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Building (${{ matrix.build_config }}-${{ matrix.cpu }})
run: python3 make.py -ci -compiler ${{ matrix.compiler }} -config ${{ matrix.build_config }} -cpu ${{ matrix.cpu }} -build ${{ matrix.simd }}
- name: Running unit tests (${{ matrix.build_config }}-${{ matrix.cpu }})
run: python3 make.py -ci -compiler ${{ matrix.compiler }} -config ${{ matrix.build_config }} -cpu ${{ matrix.cpu }} -unit_test ${{ matrix.simd }}
vs2022:
runs-on: windows-2022
strategy:
matrix:
compiler: [vs2022, vs2022-clang]
build_config: [debug, release]
cpu: [x86, x64, arm64]
simd: [-simd, -nosimd, -avx]
exclude:
# Don't run arm64 with clang
- compiler: vs2022-clang
cpu: arm64
# Don't run AVX with arm64
- cpu: arm64
simd: -avx
steps:
- name: Git checkout
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Building (${{ matrix.build_config }}-${{ matrix.cpu }})
run: python3 make.py -ci -compiler ${{ matrix.compiler }} -config ${{ matrix.build_config }} -cpu ${{ matrix.cpu }} -build ${{ matrix.simd }}
- name: Running unit tests (${{ matrix.build_config }}-${{ matrix.cpu }})
run: python3 make.py -ci -compiler ${{ matrix.compiler }} -config ${{ matrix.build_config }} -cpu ${{ matrix.cpu }} -unit_test ${{ matrix.simd }}