Add CUTLASS as an optional backend of schedule/as_matmul #1691
Workflow file for this run
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: CI | |
# Controls when the workflow will run | |
on: | |
# Triggers the workflow on push or pull request events but only for the master branch | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
jobs: | |
build-and-test-gcc-cuda-mkl-pytorch-install: | |
runs-on: self-hosted | |
if: github.event.pull_request.draft == false | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
ssh-key: ${{ secrets.CI }} | |
submodules: true | |
fetch-depth: 0 | |
- name: Build ffi module in Release | |
run: | | |
git submodule foreach --recursive git clean -ffdx | |
git submodule foreach --recursive git reset --hard | |
source /opt/spack/share/spack/setup-env.sh | |
spack load [email protected]%[email protected] [email protected]/ehz25ml [email protected]/uopt2y4 [email protected] java@11 [email protected] | |
source ci-script/prepare-python-environment.sh | |
# -C requires a new enough pip | |
pip3 install --upgrade pip | |
# We may use a LD_PRELOAD-based proxy in a CI runner, but it crashes PyTorch's CMake script, thus reset LD_PRELOAD here | |
LD_PRELOAD= pip3 install . -C--local=with-cuda.toml -C--local=ci-script/with-spack-mkl.toml -C--local=with-pytorch.toml --no-build-isolation | |
- name: Run PyTest | |
run: | | |
source /opt/spack/share/spack/setup-env.sh | |
spack load [email protected]%[email protected] [email protected]/ehz25ml [email protected]/uopt2y4 [email protected] java@11 [email protected] | |
source ci-script/prepare-python-environment.sh | |
# Set OMP_PROC_BIND to make OpenMP happy for 30.schedule/test_auto_fission_fuse.py::test_tune_fission | |
# Setting OMP_NUM_THREADS=256 seems to work around the conflict of PyTorch | |
OMP_NUM_THREADS=256 OMP_PROC_BIND=true srun --exclusive -N 1 -p v100 pytest --color=yes test | |
build-and-test-gcc-minimal-run_in_tree: | |
runs-on: self-hosted | |
if: github.event.pull_request.draft == false | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
ssh-key: ${{ secrets.CI }} | |
submodules: true | |
fetch-depth: 0 | |
- name: Build ffi module in Release | |
run: | | |
git submodule foreach --recursive git clean -ffdx | |
git submodule foreach --recursive git reset --hard | |
source /opt/spack/share/spack/setup-env.sh | |
spack load [email protected]%[email protected] java@11 [email protected] | |
source ci-script/prepare-python-environment.sh | |
mkdir build | |
# certain new GCC 12 warnings are not stable and triggered with false-positive right now, so suppress them here with -Wno-* | |
cmake -G Ninja -B build -S . -DCMAKE_BUILD_TYPE=Release -DFT_WITH_CUDA=OFF -DFT_WITH_MKL=OFF -DFT_WITH_PYTORCH=OFF -DCMAKE_CXX_FLAGS="-Wno-restrict -Wno-array-bounds" | |
cd build && ninja | |
- name: Run PyTest | |
run: | | |
source /opt/spack/share/spack/setup-env.sh | |
spack load [email protected]%[email protected] java@11 [email protected] | |
source ci-script/prepare-python-environment.sh | |
# Set OMP_PROC_BIND to make OpenMP happy for 30.schedule/test_auto_fission_fuse.py::test_tune_fission | |
OMP_PROC_BIND=true PYTHONPATH=build:python:$PYTHONPATH srun --exclusive -N 1 -p v100 pytest --color=yes test | |
build-and-test-clang-run-in-tree: | |
runs-on: self-hosted | |
if: github.event.pull_request.draft == false | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
ssh-key: ${{ secrets.CI }} | |
submodules: true | |
fetch-depth: 0 | |
- name: Build ffi module in Release | |
run: | | |
git submodule foreach --recursive git clean -ffdx | |
git submodule foreach --recursive git reset --hard | |
source /opt/spack/share/spack/setup-env.sh | |
# Clang will find a GCC release to be "compatible" with it, so we need to load a `llvm` built with high enough `gcc` | |
spack load [email protected]%[email protected] java@11 llvm@16%gcc@12 | |
source ci-script/prepare-python-environment.sh | |
mkdir build | |
CC=clang CXX=clang++ cmake -G Ninja -B build -S . -DCMAKE_BUILD_TYPE=Release -DFT_WITH_CUDA=OFF -DFT_WITH_MKL=OFF -DFT_WITH_PYTORCH=OFF | |
cd build && ninja | |
- name: Run PyTest | |
run: | | |
source /opt/spack/share/spack/setup-env.sh | |
spack load [email protected]%[email protected] java@11 llvm@16%gcc@12 | |
source ci-script/prepare-python-environment.sh | |
# Set OMP_PROC_BIND to make OpenMP happy for 30.schedule/test_auto_fission_fuse.py::test_tune_fission | |
OMP_PROC_BIND=true PYTHONPATH=build:python:$PYTHONPATH srun --exclusive -N 1 -p v100 pytest --color=yes test |