Update docker build to cuda 12.3.1 #175
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and Test | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
workflow_dispatch: | |
jobs: | |
build-and-test-cpu-cli: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
compiler: [g++, clang++, cl] | |
redistributable: [OFF, ON] | |
exclude: | |
- os: ubuntu-latest | |
compiler: cl | |
- os: macos-latest | |
compiler: cl | |
- os: macos-latest | |
compiler: g++ | |
- os: windows-latest | |
compiler: g++ | |
- os: windows-latest | |
compiler: clang++ | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: 'true' | |
- name: Prep Build | |
shell: bash | |
run: | | |
set -e | |
echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV | |
echo "SCAMP_ENABLE_BINARY_DISTRIBUTION=${{ matrix.redistributable }}" >> $GITHUB_ENV | |
- name: Build SCAMP | |
shell: bash | |
run: | | |
set -e | |
cd $GITHUB_WORKSPACE | |
mkdir build && cd build | |
cmake .. | |
cmake --build . --config Release --parallel 2 | |
if [ -f "./Release/SCAMP.exe" ]; then | |
cp ./Release/SCAMP.exe . | |
fi | |
- name: Basic Tests SCAMP | |
shell: bash | |
run: | | |
set -e | |
cd $GITHUB_WORKSPACE/test | |
./run_tests.sh ../build/SCAMP /dev/null "--no_gpu=true --num_cpu_workers=2" | |
- name: Extended Tests SCAMP | |
shell: bash | |
run: | | |
set -e | |
python3 -m pip install numpy pandas tqdm | |
cd $GITHUB_WORKSPACE/test | |
python3 ./run_tests.py --executable "../build/SCAMP" --extra_args "--no_gpu --num_cpu_workers=2" | |
build-and-test-arch-emulation: | |
strategy: | |
fail-fast: false | |
matrix: | |
# TODO(zpzim): Windows is disabled for now because it is flaky. | |
#os: [ubuntu-latest, windows-latest] | |
#compiler: [g++, clang++, cl] | |
os: [ubuntu-latest] | |
compiler: [g++, clang++] | |
#exclude: | |
# - os: ubuntu-latest | |
# compiler: cl | |
# - os: windows-latest | |
# compiler: g++ | |
# - os: windows-latest | |
# compiler: clang++ | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: 'true' | |
- name: Setup SDE binaries | |
uses: petarpetrovt/setup-sde@v2.3 | |
with: | |
sdeVersion: 9.27.0 | |
- name: Prep Build | |
shell: bash | |
run: | | |
set -e | |
echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV | |
echo "SCAMP_ENABLE_BINARY_DISTRIBUTION=ON" >> $GITHUB_ENV | |
if [ "${{ matrix.os }}" = "windows-latest" ]; then | |
SDE_PATH=`cygpath -u $SDE_PATH` | |
echo $SDE_PATH | |
echo "SDE_BINARY_PATH=${SDE_PATH}/sde.exe" >> $GITHUB_ENV | |
else | |
echo "SDE_BINARY_PATH=${SDE_PATH}/sde64" >> $GITHUB_ENV | |
fi | |
- name: Build SCAMP | |
shell: bash | |
run: | | |
set -e | |
cd $GITHUB_WORKSPACE | |
mkdir build && cd build | |
cmake .. | |
cmake --build . --config Release --parallel 2 | |
if [ -f "./Release/SCAMP.exe" ]; then | |
cp ./Release/SCAMP.exe . | |
fi | |
- name: Intel x86 Emulation Tests | |
shell: bash | |
run: | | |
set -e | |
cd $GITHUB_WORKSPACE/test | |
./run_intel_emulation_tests.sh "../build/SCAMP" ${SDE_BINARY_PATH} | |
build-and-test-cpu-distributed: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
compiler: [g++, clang++] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: 'recursive' | |
- name: Prep Build | |
run: | | |
echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV | |
if [ "${{ matrix.compiler }}" = "g++" ]; then | |
echo "CC=gcc" >> $GITHUB_ENV | |
elif [ "${{ matrix.compiler }}" = "clang++" ]; then | |
echo "CC=clang" >> $GITHUB_ENV | |
fi | |
- name: Build SCAMP Distributed | |
shell: bash | |
run: | | |
set -e | |
cd $GITHUB_WORKSPACE | |
mkdir build && cd build | |
cmake -DBUILD_CLIENT_SERVER=1 .. | |
cmake --build . --config Release --parallel 2 | |
- name: Distributed Tests SCAMP | |
shell: bash | |
run: | | |
set -e | |
python3 -m pip install numpy pandas tqdm | |
cd $GITHUB_WORKSPACE/test | |
../build/src/distributed/SCAMPserver & | |
../build/src/distributed/SCAMPclient & | |
sleep 10 | |
./run_tests.sh ../build/src/distributed/SCAMP_distributed /dev/null | |
python3 ./run_tests.py --executable ../build/src/distributed/SCAMP_distributed --matrix_sizes --window_sizes 100 --extra_args "--no_gpu --num_cpu_workers=1 --distributed_tile_size=1500" | |
build-and-test-cpu-pyscamp: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
redistributable: [OFF, ON] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: 'true' | |
- name: Set up Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: '3.x' | |
- name: Prep Build | |
shell: bash | |
run: | | |
set -e | |
echo "SCAMP_ENABLE_BINARY_DISTRIBUTION=${{ matrix.redistributable }}" >> $GITHUB_ENV | |
- name: Build pyscamp | |
shell: bash | |
run: | | |
set -e | |
cd $GITHUB_WORKSPACE | |
python3 -m pip install numpy pandas tqdm setuptools | |
python3 setup.py sdist | |
python3 -m pip install -v dist/* | |
- name: pyscamp Test | |
shell: bash | |
run: | | |
set -e | |
cd $GITHUB_WORKSPACE/test | |
python3 test_pyscamp.py | |
python3 ./run_tests.py --executable pyscamp | |
build-cuda-cli: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest] | |
compiler: [g++, clang++, cl] | |
exclude: | |
- os: ubuntu-latest | |
compiler: cl | |
- os: windows-latest | |
compiler: g++ | |
- os: windows-latest | |
compiler: clang++ | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: 'true' | |
- uses: Jimver/cuda-toolkit@v0.2.6 | |
id: cuda-toolkit | |
with: | |
cuda: '11.7.0' | |
- name: Prep Build | |
run: echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV | |
- name: Build SCAMP | |
shell: bash | |
run: | | |
set -e | |
cd $GITHUB_WORKSPACE | |
mkdir build && cd build | |
cmake -DFORCE_CUDA=1 .. | |
cmake --build . --config Release --parallel 2 | |
build-and-test-cuda: | |
runs-on: self-hosted | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: 'true' | |
- name: Build SCAMP with CUDA | |
shell: bash | |
run: | | |
set -e | |
cd $GITHUB_WORKSPACE | |
mkdir build && cd build | |
cmake -DFORCE_CUDA=1 .. | |
cmake --build . --config Release --parallel 2 | |
- name: Basic CUDA Tests SCAMP | |
shell: bash | |
run: | | |
set -e | |
cd $GITHUB_WORKSPACE/test | |
./run_tests.sh ../build/SCAMP /dev/null "--num_cpu_workers=0" | |
- name: Extended Tests SCAMP | |
shell: bash | |
run: | | |
set -e | |
cd $GITHUB_WORKSPACE/test | |
python3 ./run_tests.py --executable "../build/SCAMP" --force_gpu --extra_args " --num_cpu_workers=0" |