mirror of
https://github.com/boostorg/ublas.git
synced 2026-01-20 05:02:42 +00:00
Auxiliary functions for extents and strides were using different functions. Additionally, many tags were used to distinguish between different tensor types. This patch simplifies interfaces of different core functions and unifies functions that can process different types of extent and stride types.
100 lines
4.2 KiB
YAML
100 lines
4.2 KiB
YAML
# Copyright (c) 2020 Mohammad Ashar Khan
|
|
# Copyright (c) 2021 Cem Bassoy
|
|
# Distributed under Boost Software License, Version 1.0
|
|
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
|
|
|
|
name: "Linux"
|
|
|
|
on:
|
|
push:
|
|
paths-ignore:
|
|
- '**.md'
|
|
- 'doc/**'
|
|
pull_request:
|
|
paths-ignore:
|
|
- '**.md'
|
|
- 'doc/**'
|
|
|
|
jobs:
|
|
build:
|
|
name: Ubuntu 20.04 "cxx=${{matrix.config.cxx}}, std=c++${{matrix.config.cxxstd}}, variant=c++${{matrix.config.variant}}"
|
|
runs-on: ubuntu-20.04
|
|
strategy:
|
|
fail-fast: true
|
|
# If any compiler fails to compile, continue CI for next compiler in matrix instead of failing early
|
|
matrix:
|
|
config:
|
|
- { name: clang, cc: clang-10, cxx: clang++-10, cxxstd: 20, variant: debug, opt: off}
|
|
- { name: clang, cc: clang-11, cxx: clang++-11, cxxstd: 20, variant: debug, opt: off}
|
|
- { name: clang, cc: clang-10, cxx: clang++-10, cxxstd: 20, variant: release, opt: speed, cxxflags: -fopenmp, ldflags: -lgomp=libomp5}
|
|
- { name: clang, cc: clang-11, cxx: clang++-11, cxxstd: 20, variant: release, opt: speed, cxxflags: -fopenmp, ldflags: -lgomp=libomp5}
|
|
- { name: gcc, cc: gcc-10, cxx: g++-10, cxxstd: 20, variant: debug, opt: off}
|
|
- { name: gcc, cc: gcc-10, cxx: g++-10, cxxstd: 20, variant: release, opt: speed, cxxflags: -fopenmp, ldflags: -lgomp}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Install g++-10
|
|
if: matrix.config.cxx == 'g++-10'
|
|
run: sudo apt update && sudo apt-get install -y g++-10 libomp-dev
|
|
|
|
- name: Install Clang 10
|
|
if: matrix.config.cxx == 'clang++-10'
|
|
run: sudo apt-get update && sudo apt-get install -y clang-10
|
|
|
|
- name: Install Clang 11
|
|
if: matrix.config.cxx == 'clang++-11'
|
|
run: sudo apt-get update && sudo apt-get install -y clang-11
|
|
|
|
- name: Git Clone Boost.uBlas
|
|
run: |
|
|
cd ${GITHUB_WORKSPACE}
|
|
cd ..
|
|
|
|
git clone -b master --depth 1 https://github.com/boostorg/boost.git boost-root
|
|
cd boost-root
|
|
echo "BOOST_ROOT=${PWD}" >> ${GITHUB_ENV}
|
|
echo $BOOST_ROOT
|
|
|
|
git submodule update --init --depth=1 --jobs 8 tools/build
|
|
git submodule update --init --depth=1 --jobs 8 libs/config
|
|
git submodule update --init --depth=1 --jobs 8 tools/boostdep
|
|
|
|
mkdir -p libs/numeric/
|
|
cp -rp ${GITHUB_WORKSPACE}/. libs/numeric/ublas
|
|
python tools/boostdep/depinst/depinst.py -g " --depth=1" -I benchmarks numeric/ublas
|
|
|
|
- name: Bootstrap Boost and Compile Boost
|
|
run: |
|
|
cd $BOOST_ROOT
|
|
./bootstrap.sh
|
|
./b2 -j8 headers
|
|
echo "using ${{ matrix.config.name }} : : ${{ matrix.config.cxx }} ;" >> ~/user-config.jam;
|
|
|
|
# - name: Test Benchmarks
|
|
# run: |
|
|
# cd $BOOST_ROOT
|
|
# cd libs/numeric/ublas
|
|
# $BOOST_ROOT/b2 -j 4 benchmarks toolset=clang cxxstd=${{matrix.config.cxxstd}} cxxflags="-O3"
|
|
|
|
- name: Test Tensor Examples
|
|
run: |
|
|
cd $BOOST_ROOT/libs/numeric/ublas
|
|
if [ -z "$cxxflags" ]
|
|
then
|
|
$BOOST_ROOT/b2 -j8 examples/tensor toolset=${{matrix.config.name}} cxxstd=${{matrix.config.cxxstd}} variant=${{matrix.config.variant}} optimization=${{matrix.config.opt}}
|
|
else
|
|
$BOOST_ROOT/b2 -j8 examples/tensor toolset=${{matrix.config.name}} cxxstd=${{matrix.config.cxxstd}} variant=${{matrix.config.variant}} optimization=${{matrix.config.opt}} cxxflags="${{matrix.config.cxxflags}}" linkflags="${{matrix.config.ldflags}}"
|
|
fi
|
|
|
|
- name: Test Tensor Unit-Tests
|
|
run: |
|
|
cd $BOOST_ROOT/libs/numeric/ublas
|
|
if [ -z "$cxxflags" ]
|
|
then
|
|
$BOOST_ROOT/b2 -j8 test/tensor toolset=${{matrix.config.name}} cxxstd=${{matrix.config.cxxstd}} variant=${{matrix.config.variant}} optimization=${{matrix.config.opt}}
|
|
else
|
|
$BOOST_ROOT/b2 -j8 test/tensor toolset=${{matrix.config.name}} cxxstd=${{matrix.config.cxxstd}} variant=${{matrix.config.variant}} optimization=${{matrix.config.opt}} cxxflags="${{matrix.config.cxxflags}}" linkflags="${{matrix.config.ldflags}}"
|
|
fi
|
|
|