Skip to content

Add EIGENRAND_BUILD_BENCHMARK cmake option #92

Add EIGENRAND_BUILD_BENCHMARK cmake option

Add EIGENRAND_BUILD_BENCHMARK cmake option #92

name: Pull Request Test
on:
pull_request:
branches:
- main
jobs:
build_linux:
name: Build for linux
if: "!contains(github.event.head_commit.message, '[skip linux]')"
runs-on: ${{ matrix.os }}
continue-on-error: true
strategy:
max-parallel: 4
fail-fast: false
matrix:
arch: [DEIGEN_DONT_VECTORIZE, msse2, mssse3, mavx, mavx2]
eigenversion: [3.3.4, 3.3.5, 3.3.6, 3.3.7, 3.3.8, 3.3.9, 3.4.0]
os: [ubuntu-22.04]
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Install dependencies
run: |
git clone https://gitlab.com/libeigen/eigen
pushd eigen
git checkout tags/${{ matrix.eigenversion }}
popd
mv eigen include
- name: Build
continue-on-error: true
run: |
cmake --preset default -DEIGENRAND_CXX_FLAGS="-${{ matrix.arch }}"
cmake --build --preset default
ctest --preset default -N
- name: Tests
run: |
ctest --preset default -R test
ctest --preset default -R accuracy
build_linux_avx512:
name: Build for linux AVX512
if: "!contains(github.event.head_commit.message, '[skip avx]')"
runs-on: ${{ matrix.os }}
continue-on-error: true
strategy:
max-parallel: 4
matrix:
arch: [mavx512dq]
eigenversion: [3.4.0]
os: [ubuntu-22.04]
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Install dependencies
run: |
git clone https://gitlab.com/libeigen/eigen
pushd eigen
git checkout tags/${{ matrix.eigenversion }}
popd
mv eigen include
- name: Build
continue-on-error: true
run: |
cmake --preset default -DEIGENRAND_CXX_FLAGS="-${{ matrix.arch }}"
cmake --build --preset default
ctest --preset default -N
- name: Tests
run: |
ctest --preset default -R test
ctest --preset default -R accuracy
build_macos:
name: Build for macOS
if: "!contains(github.event.head_commit.message, '[skip macos]')"
runs-on: macOS-latest
continue-on-error: true
strategy:
max-parallel: 4
matrix:
arch: [DEIGEN_DONT_VECTORIZE, msse2, mssse3, mavx]
eigenversion: [3.3.4, 3.3.5, 3.3.6, 3.3.7, 3.3.8, 3.3.9, 3.4.0]
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Install dependencies
run: |
wget https://gitlab.com/libeigen/eigen/-/archive/${{ matrix.eigenversion }}/eigen-${{ matrix.eigenversion }}.tar.gz
tar -zxvf eigen-${{ matrix.eigenversion }}.tar.gz
mv eigen-${{ matrix.eigenversion }} include
- name: Build
continue-on-error: true
run: |
cmake --preset default -DEIGENRAND_CXX_FLAGS="-${{ matrix.arch }}"
cmake --build --preset default
ctest --preset default -N
- name: Tests
run: |
ctest --preset default -R test
ctest --preset default -R accuracy
build_windows:
name: Build for Windows
if: "!contains(github.event.head_commit.message, '[skip windows]')"
runs-on: windows-latest
continue-on-error: true
strategy:
max-parallel: 4
matrix:
arch: ['/D EIGEN_DONT_VECTORIZE', '/arch:SSE2', '/arch:AVX', '/arch:AVX2']
eigenversion: [3.3.4, 3.3.5, 3.3.6, 3.3.7, 3.3.8, 3.3.9, 3.4.0]
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Install dependencies
run: |
Invoke-WebRequest -OutFile eigen.tar.gz https://gitlab.com/libeigen/eigen/-/archive/${{ matrix.eigenversion }}/eigen-${{ matrix.eigenversion }}.tar.gz
tar -zxvf eigen.tar.gz
mv eigen-${{ matrix.eigenversion }} include
echo "EIGEN_PATH=$(Get-Location)\include" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf-8 -Append
- name: Build
continue-on-error: true
run: |
cmake --preset windows -DEIGENRAND_CXX_FLAGS="${{ matrix.arch }}"
cmake --build --preset windows
ctest --preset windows -N
- name: Tests
run: |
ctest --preset windows -R test
ctest --preset windows -R accuracy
build_windows_avx512:
name: Build for Windows
if: "!contains(github.event.head_commit.message, '[skip windows-avx]')"
runs-on: windows-latest
continue-on-error: true
strategy:
max-parallel: 4
matrix:
arch: ['/arch:AVX512 /bigobj']
eigenversion: [3.4.0]
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Install dependencies
run: |
Invoke-WebRequest -OutFile eigen.tar.gz https://gitlab.com/libeigen/eigen/-/archive/${{ matrix.eigenversion }}/eigen-${{ matrix.eigenversion }}.tar.gz
tar -zxvf eigen.tar.gz
mv eigen-${{ matrix.eigenversion }} include
echo "EIGEN_PATH=$(Get-Location)\include" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf-8 -Append
- name: Build
continue-on-error: true
run: |
cmake --preset windows -DEIGENRAND_CXX_FLAGS="${{ matrix.arch }}"
cmake --build --preset windows
ctest --preset windows -N
- name: Tests
run: |
ctest --preset windows -R test
ctest --preset windows -R accuracy
reference:
name: Reference
runs-on: ${{ matrix.os }}
strategy:
max-parallel: 4
matrix:
os: [ubuntu-latest, macOS-latest, windows-latest]
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Set up Python3
uses: actions/setup-python@v1
with:
python-version: 3.8
architecture: x64
- name: Test Reference
run: |
pip install scipy
python benchmark/comp_scipy.py