Skip to content

Remove [c,z]syr2 from tests since they are not in RefBLAS #88

Remove [c,z]syr2 from tests since they are not in RefBLAS

Remove [c,z]syr2 from tests since they are not in RefBLAS #88

Workflow file for this run

name: CMake
on:
pull_request:
paths:
- '.github/workflows/cmake.yml'
- '**CMakeLists.txt'
- '**.cmake'
- '**test_*'
- 'include/**'
env:
CXXFLAGS: "-Wall -pedantic"
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
blaspp_DIR: ${{github.workspace}}/blaspp
tlapack_DIR: ${{github.workspace}}/tlapack
Catch2_DIR: ${{github.workspace}}/Catch2
defaults:
run:
shell: bash
jobs:
test-tlapack-templates:
# Use GNU compilers
# The CMake configure and build commands are platform agnostic and should work equally
# well on Windows or Mac. You can convert this to a matrix build if you need
# cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: ubuntu-latest
env:
CXXFLAGS: "-Wall -pedantic -D TEST_REAL_TYPES=\"float, double, long double\" -D TEST_CPLX_TYPES=\"std::complex<float>, std::complex<double>, std::complex<long double>\""
steps:
- name: Checkout testBLAS
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
- name: Checkout Catch2
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
repository: catchorg/Catch2
ref: 6e79e682b726f524310d55dec8ddac4e9c52fb5f # v3.4.0
path: Catch2
- name: Checkout <T>LAPACK
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
repository: tlapack/tlapack
path: tlapack
- name: Install ninja-build tool
uses: seanmiddleditch/gha-setup-ninja@16b940825621068d98711680b6c3ff92201f8fc0 # v3
- name: Build and install <T>LAPACK
working-directory: ${{env.tlapack_DIR}}
run: |
cmake -Bbuild -G Ninja -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF -DCMAKE_INSTALL_PREFIX=${{env.tlapack_DIR}}
cmake --build build --target install
- name: Configure testBLAS
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: >
cmake -B build -GNinja
-D CMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
-D TESTBLAS_BLAS=tlapack
-D Catch2_DIR=${{env.Catch2_DIR}}
-D tlapack_DIR=${{env.tlapack_DIR}}
- name: Build testBLAS
# Build your program with the given configuration
run: cmake --build build --config ${{env.BUILD_TYPE}}
# Mind that the job won't fail if only this step fails
- name: Run tests
working-directory: ${{github.workspace}}/build
continue-on-error: true
run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure
test-reference-BLAS:
runs-on: ubuntu-latest
steps:
- name: Checkout testBLAS
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
- name: Checkout Catch2
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
repository: catchorg/Catch2
ref: 6e79e682b726f524310d55dec8ddac4e9c52fb5f # v3.4.0
path: Catch2
- name: Checkout BLAS++
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
with:
repository: icl-utk-edu/blaspp
ref: f8f983d5b45a8f366aae41fbe9888b14cbae20f8 # v2023.08.25
path: blaspp
- name: Install ninja-build tool
uses: seanmiddleditch/gha-setup-ninja@16b940825621068d98711680b6c3ff92201f8fc0 # v3
- name: Install Reference BLAS
run: sudo apt install libblas-dev liblapack-dev
- name: Build and install BLAS++
working-directory: ${{env.blaspp_DIR}}
run: |
cmake -B build -G Ninja -D CMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -Dbuild_tests=OFF -DCMAKE_INSTALL_PREFIX=${{env.blaspp_DIR}}
cmake --build build --target install
- name: Configure testBLAS
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: >
cmake -B build -G Ninja
-D CMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
-D Catch2_DIR=${{env.Catch2_DIR}}
-D blaspp_DIR=${{env.blaspp_DIR}}
- name: Build testBLAS
# Build your program with the given configuration
run: cmake --build build --config ${{env.BUILD_TYPE}}
# Mind that the job won't fail if only this step fails
- name: Run tests
working-directory: ${{github.workspace}}/build
continue-on-error: true
run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure
test-blaspp-wrappers:
runs-on: ubuntu-latest
env:
CXXFLAGS: "-Wall -pedantic -D BLAS_USE_TEMPLATE"
steps:
- name: Checkout testBLAS
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
- name: Checkout Catch2
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
repository: catchorg/Catch2
ref: 6e79e682b726f524310d55dec8ddac4e9c52fb5f # v3.4.0
path: Catch2
- name: Checkout BLAS++
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
with:
repository: icl-utk-edu/blaspp
ref: f8f983d5b45a8f366aae41fbe9888b14cbae20f8 # v2023.08.25
path: blaspp
- name: Install ninja-build tool
uses: seanmiddleditch/gha-setup-ninja@16b940825621068d98711680b6c3ff92201f8fc0 # v3
- name: Build and install BLAS++
working-directory: ${{env.blaspp_DIR}}
run: |
cmake -B build -G Ninja -D CMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -Dbuild_tests=OFF -DCMAKE_INSTALL_PREFIX=${{env.blaspp_DIR}}
cmake --build build --target install
- name: Configure testBLAS
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: >
cmake -B build -G Ninja
-D CMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
-D Catch2_DIR=${{env.Catch2_DIR}}
-D blaspp_DIR=${{env.blaspp_DIR}}
- name: Build testBLAS
# Build your program with the given configuration
run: cmake --build build --config ${{env.BUILD_TYPE}}
# Mind that the job won't fail if only this step fails
- name: Run tests
working-directory: ${{github.workspace}}/build
continue-on-error: true
run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure
test-mkl:
runs-on: ubuntu-latest
env:
CXX: icpx
CXXFLAGS: "-Wall -pedantic -fp-model=precise"
steps:
- name: Intel Apt repository
timeout-minutes: 1
run: |
# download the key to system keyring
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
# add signed entry to apt sources and configure the APT client to use Intel repository:
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt update
- name: Checkout testBLAS
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
- name: Checkout Catch2
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
repository: catchorg/Catch2
ref: 6e79e682b726f524310d55dec8ddac4e9c52fb5f # v3.4.0
path: Catch2
- name: Checkout BLAS++
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
with:
repository: icl-utk-edu/blaspp
ref: f8f983d5b45a8f366aae41fbe9888b14cbae20f8 # v2023.08.25
path: blaspp
- name: Install ninja-build tool
uses: seanmiddleditch/gha-setup-ninja@16b940825621068d98711680b6c3ff92201f8fc0 # v3
- name: Install Intel oneAPI
timeout-minutes: 5
run: sudo apt install intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic intel-oneapi-mkl
- name: Setup Intel oneAPI environment
run: |
source /opt/intel/oneapi/setvars.sh
printenv >> $GITHUB_ENV
- name: Build and install BLAS++
working-directory: ${{env.blaspp_DIR}}
run: |
cmake -B build -G Ninja -D CMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -Dbuild_tests=OFF -DCMAKE_INSTALL_PREFIX=${{env.blaspp_DIR}}
cmake --build build --target install
- name: Configure testBLAS
run: >
cmake -B build -G Ninja
-D CMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
-D Catch2_DIR=${{env.Catch2_DIR}}
-D blaspp_DIR=${{env.blaspp_DIR}}
- name: Build testBLAS
# Build your program with the given configuration
run: cmake --build build --config ${{env.BUILD_TYPE}}
# Mind that the job won't fail if only this step fails
- name: Run tests
working-directory: ${{github.workspace}}/build
continue-on-error: true
run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure
test-blis:
runs-on: ubuntu-latest
env:
blis_DIR: ${{github.workspace}}/blis
lapack_DIR: ${{github.workspace}}/lapack
LD_LIBRARY_PATH: "/usr/local/lib/"
CXXFLAGS: "-Wall -pedantic -D LAPACK_FORTRAN_ADD_"
steps:
- name: Checkout testBLAS
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
- name: Checkout Catch2
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
repository: catchorg/Catch2
ref: 6e79e682b726f524310d55dec8ddac4e9c52fb5f # v3.4.0
path: Catch2
- name: Checkout BLAS++
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
with:
repository: icl-utk-edu/blaspp
ref: f8f983d5b45a8f366aae41fbe9888b14cbae20f8 # v2023.08.25
path: blaspp
- name: Checkout LAPACK
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
with:
repository: Reference-LAPACK/lapack
ref: 7866626840f5d5e7e27f027a55182da8b3303872 # v3.11.0
path: lapack
- name: Install ninja-build tool
uses: seanmiddleditch/gha-setup-ninja@16b940825621068d98711680b6c3ff92201f8fc0 # v3
- name: Install BLIS
run: sudo apt install libblis-dev
- name: Build and install LAPACK
working-directory: ${{env.lapack_DIR}}
run: |
cmake -B build -G Ninja -D CMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -D CMAKE_INSTALL_PREFIX=${{env.lapack_DIR}} -D USE_OPTIMIZED_BLAS=ON -D BLA_VENDOR=FLAME
cmake --build build --target install
- name: Build and install BLAS++
working-directory: ${{env.blaspp_DIR}}
run: |
cmake -B build -G Ninja -D CMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBLA_VENDOR=FLAME -Dbuild_tests=OFF -DCMAKE_INSTALL_PREFIX=${{env.blaspp_DIR}} -D CMAKE_CXX_FLAGS="${{env.CXXFLAGS}} -D LAPACK_FORTRAN_ADD_" -D LAPACK_LIBRARIES="${{env.lapack_DIR}}/lib/liblapack.a;-lgfortran"
cmake --build build --target install
- name: Configure testBLAS
run: >
cmake -B build -G Ninja
-D CMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
-D Catch2_DIR=${{env.Catch2_DIR}}
-D blaspp_DIR=${{env.blaspp_DIR}}
- name: Build testBLAS
# Build your program with the given configuration
run: cmake --build build --config ${{env.BUILD_TYPE}}
# Mind that the job won't fail if only this step fails
- name: Run tests
working-directory: ${{github.workspace}}/build
continue-on-error: true
run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure
test-openblas:
runs-on: ubuntu-latest
env:
CXXFLAGS: "-Wall -pedantic -D LAPACK_FORTRAN_ADD_"
steps:
- name: Checkout testBLAS
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
- name: Checkout Catch2
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
repository: catchorg/Catch2
ref: 6e79e682b726f524310d55dec8ddac4e9c52fb5f # v3.4.0
path: Catch2
- name: Checkout BLAS++
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
with:
repository: icl-utk-edu/blaspp
ref: f8f983d5b45a8f366aae41fbe9888b14cbae20f8 # v2023.08.25
path: blaspp
- name: Install ninja-build tool
uses: seanmiddleditch/gha-setup-ninja@16b940825621068d98711680b6c3ff92201f8fc0 # v3
- name: Install OpenBLAS
run: sudo apt install libopenblas-dev
- name: Build and install BLAS++
working-directory: ${{env.blaspp_DIR}}
run: |
cmake -B build -G Ninja -D CMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBLA_VENDOR=OpenBLAS -Dbuild_tests=OFF -DCMAKE_INSTALL_PREFIX=${{env.blaspp_DIR}}
cmake --build build --target install
- name: Configure testBLAS
run: >
cmake -B build -G Ninja
-D CMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
-D Catch2_DIR=${{env.Catch2_DIR}}
-D blaspp_DIR=${{env.blaspp_DIR}}
- name: Build testBLAS
# Build your program with the given configuration
run: cmake --build build --config ${{env.BUILD_TYPE}}
# Mind that the job won't fail if only this step fails
- name: Run tests
working-directory: ${{github.workspace}}/build
continue-on-error: true
run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure