Skip to content

Commit

Permalink
Add workflow for building test across plantforms & pytorch & CUDA (#38)
Browse files Browse the repository at this point in the history
* workflow for pypi publish

* workflow for building wheels on github

---------

Co-authored-by: Ruilong Li <[email protected]>
Co-authored-by: Vickie Ye <[email protected]>
  • Loading branch information
3 people authored Oct 13, 2023
1 parent ee9f1b6 commit 88577be
Showing 1 changed file with 139 additions and 0 deletions.
139 changes: 139 additions & 0 deletions .github/workflows/building.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
name: Building Wheels

on: [workflow_dispatch]

jobs:

wheel:
runs-on: ${{ matrix.os }}
environment: production

strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04, windows-2019]
# support version based on: https://download.pytorch.org/whl/torch/
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']
torch-version: [1.11.0, 1.12.0, 1.13.0, 2.0.0]
cuda-version: ['cu113', 'cu115', 'cu116', 'cu117', 'cu118']
exclude:
- torch-version: 1.11.0
python-version: '3.11'
- torch-version: 1.11.0
cuda-version: 'cu116'
- torch-version: 1.11.0
cuda-version: 'cu117'
- torch-version: 1.11.0
cuda-version: 'cu118'

- torch-version: 1.12.0
python-version: '3.11'
- torch-version: 1.12.0
cuda-version: 'cu115'
- torch-version: 1.12.0
cuda-version: 'cu117'
- torch-version: 1.12.0
cuda-version: 'cu118'

- torch-version: 1.13.0
cuda-version: 'cu102'
- torch-version: 1.13.0
cuda-version: 'cu113'
- torch-version: 1.13.0
cuda-version: 'cu115'
- torch-version: 1.13.0
cuda-version: 'cu118'

- torch-version: 2.0.0
python-version: '3.7'
- torch-version: 2.0.0
cuda-version: 'cu102'
- torch-version: 2.0.0
cuda-version: 'cu113'
- torch-version: 2.0.0
cuda-version: 'cu115'
- torch-version: 2.0.0
cuda-version: 'cu116'

- os: windows-2019
cuda-version: 'cu102'
- os: windows-2019
torch-version: 1.13.0
python-version: '3.11'

# - os: windows-2019
# torch-version: 1.13.0
# cuda-version: 'cu117'
# python-version: '3.9'



steps:
- uses: actions/checkout@v3

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}

- name: Upgrade pip
run: |
pip install --upgrade setuptools
pip install ninja
- name: Free up disk space
if: ${{ runner.os == 'Linux' }}
run: |
sudo rm -rf /usr/share/dotnet
- name: Install CUDA ${{ matrix.cuda-version }}
if: ${{ matrix.cuda-version != 'cpu' }}
run: |
bash .github/workflows/cuda/${{ runner.os }}.sh ${{ matrix.cuda-version }}
- name: Install PyTorch ${{ matrix.torch-version }}+${{ matrix.cuda-version }}
run: |
pip install torch==${{ matrix.torch-version }} --extra-index-url https://download.pytorch.org/whl/${{ matrix.cuda-version }}
python -c "import torch; print('PyTorch:', torch.__version__)"
python -c "import torch; print('CUDA:', torch.version.cuda)"
python -c "import torch; print('CUDA Available:', torch.cuda.is_available())"
- name: Patch PyTorch static constexpr on Windows
if: ${{ runner.os == 'Windows' }}
run: |
Torch_DIR=`python -c 'import os; import torch; print(os.path.dirname(torch.__file__))'`
sed -i '31,38c\
TORCH_API void lazy_init_num_threads();' ${Torch_DIR}/include/ATen/Parallel.h
shell: bash

- name: Set version
if: ${{ runner.os != 'macOS' }}
run: |
VERSION=`sed -n 's/^__version__ = "\(.*\)"/\1/p' gsplat/version.py`
TORCH_VERSION=`echo "pt${{ matrix.torch-version }}" | sed "s/..$//" | sed "s/\.//g"`
CUDA_VERSION=`echo ${{ matrix.cuda-version }}`
echo "New version name: $VERSION+$TORCH_VERSION$CUDA_VERSION"
sed -i "s/$VERSION/$VERSION+$TORCH_VERSION$CUDA_VERSION/" gsplat/version.py
shell:
bash

- name: Install main package for CPU
if: ${{ matrix.cuda-version == 'cpu' }}
run: |
BUILD_NO_CUDA=1 pip install .
- name: Build wheel
run: |
pip install wheel
source .github/workflows/cuda/${{ runner.os }}-env.sh ${{ matrix.cuda-version }}
python setup.py bdist_wheel --dist-dir=dist
shell: bash # `source` does not exist in windows powershell

- name: Test wheel
run: |
cd dist
ls -lah
pip install *.whl
python -c "import gsplat; print('gsplat:', gsplat.__version__)"
cd ..
shell: bash # `ls -lah` does not exist in windows powershell

0 comments on commit 88577be

Please sign in to comment.