mirror of https://github.com/hpcaitech/ColossalAI
[workflow] added cuda extension build test before release (#2598)
* [workflow] added cuda extension build test before release * polish codepull/2600/head
parent
0c03802bff
commit
4d582893a7
24
.bdist.json
24
.bdist.json
|
@ -1,24 +0,0 @@
|
|||
{
|
||||
"build": [
|
||||
{
|
||||
"torch_version": "1.11.0",
|
||||
"cuda_image": "hpcaitech/cuda-conda:10.2"
|
||||
},
|
||||
{
|
||||
"torch_version": "1.11.0",
|
||||
"cuda_image": "hpcaitech/cuda-conda:11.3"
|
||||
},
|
||||
{
|
||||
"torch_version": "1.12.1",
|
||||
"cuda_image": "hpcaitech/cuda-conda:10.2"
|
||||
},
|
||||
{
|
||||
"torch_version": "1.12.1",
|
||||
"cuda_image": "hpcaitech/cuda-conda:11.3"
|
||||
},
|
||||
{
|
||||
"torch_version": "1.12.1",
|
||||
"cuda_image": "hpcaitech/cuda-conda:11.6"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"build": [
|
||||
{
|
||||
"torch_command": "pip install torch==1.12.1+cu102 torchvision==0.13.1+cu102 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu102",
|
||||
"cuda_image": "hpcaitech/cuda-conda:10.2"
|
||||
},
|
||||
{
|
||||
"torch_command": "pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113",
|
||||
"cuda_image": "hpcaitech/cuda-conda:11.3"
|
||||
},
|
||||
{
|
||||
"torch_command": "pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu116",
|
||||
"cuda_image": "hpcaitech/cuda-conda:11.6"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
name: Check CUDA Extension Build Before Merge
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
paths:
|
||||
- 'version.txt'
|
||||
|
||||
jobs:
|
||||
matrix_preparation:
|
||||
name: Prepare Container List
|
||||
if: github.repository == 'hpcaitech/ColossalAI'
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- id: set-matrix
|
||||
run: |
|
||||
cuda_ext=$(cat .cuda_ext.json | tr '\n' ' ')
|
||||
echo "matrix=${cuda_ext}" >> $GITHUB_OUTPUT
|
||||
|
||||
build:
|
||||
name: Release bdist wheels
|
||||
needs: matrix_preparation
|
||||
runs-on: [self-hosted, gpu]
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix: ${{fromJson(needs.matrix_preparation.outputs.matrix)}}
|
||||
container:
|
||||
image: ${{ matrix.build.cuda_image }}
|
||||
options: --gpus all --rm
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Install PyTorch
|
||||
run: eval ${{ matrix.build.torch_command }}
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
CUDA_EXT=1 pip install -v .
|
|
@ -1,99 +0,0 @@
|
|||
name: Release bdist wheel
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
torch_version:
|
||||
type: string
|
||||
description: torch version, separated by comma
|
||||
required: true
|
||||
default: "all"
|
||||
cuda_version:
|
||||
type: string
|
||||
description: cuda version, separated by comma
|
||||
required: true
|
||||
github_ref:
|
||||
type: string
|
||||
description: Branch or Tag
|
||||
default: 'main'
|
||||
required: true
|
||||
|
||||
jobs:
|
||||
matrix_preparation:
|
||||
name: Prepare Container List
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
||||
steps:
|
||||
- id: set-matrix
|
||||
env:
|
||||
TORCH_VERSIONS: ${{ inputs.torch_version }}
|
||||
CUDA_VERSIONS: ${{ inputs.cuda_version }}
|
||||
run: |
|
||||
echo $TORCH_VERSIONS
|
||||
echo $CUDA_VERSIONS
|
||||
IFS=','
|
||||
DOCKER_IMAGE=()
|
||||
|
||||
for cv in $CUDA_VERSIONS
|
||||
do
|
||||
DOCKER_IMAGE+=("\"hpcaitech/cuda-conda:${cv}\"")
|
||||
done
|
||||
|
||||
container=$( IFS=',' ; echo "${DOCKER_IMAGE[*]}" )
|
||||
container="[${container}]"
|
||||
echo "$container"
|
||||
echo "::set-output name=matrix::{\"container\":$(echo "$container")}"
|
||||
|
||||
build:
|
||||
name: Release bdist wheels
|
||||
needs: matrix_preparation
|
||||
if: github.repository == 'hpcaitech/ColossalAI' && contains(fromJson('["FrankLeeeee", "ver217", "feifeibear", "kurisusnowdeng"]'), github.actor)
|
||||
runs-on: [self-hosted, gpu]
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix: ${{fromJson(needs.matrix_preparation.outputs.matrix)}}
|
||||
container:
|
||||
image: ${{ matrix.container }}
|
||||
options: --gpus all --rm
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
# cub is for cuda 10.2
|
||||
- name: Copy scripts and checkout
|
||||
run: |
|
||||
cp -r ./.github/workflows/scripts/* ./
|
||||
|
||||
# link the cache diretories to current path
|
||||
ln -s /github/home/conda_pkgs ./conda_pkgs
|
||||
ln -s /github/home/pip_wheels ./pip_wheels
|
||||
|
||||
# set the conda package path
|
||||
echo "pkgs_dirs:\n - $PWD/conda_pkgs" > ~/.condarc
|
||||
|
||||
# set safe directory
|
||||
git config --global --add safe.directory /__w/ColossalAI/ColossalAI
|
||||
|
||||
# check out
|
||||
git checkout $git_ref
|
||||
|
||||
# get cub package for cuda 10.2
|
||||
wget https://github.com/NVIDIA/cub/archive/refs/tags/1.8.0.zip
|
||||
unzip 1.8.0.zip
|
||||
env:
|
||||
git_ref: ${{ github.event.inputs.github_ref }}
|
||||
- name: Build bdist wheel
|
||||
run: |
|
||||
pip install beautifulsoup4 requests packaging
|
||||
python ./build_colossalai_wheel.py --torch_version $TORCH_VERSIONS
|
||||
env:
|
||||
TORCH_VERSIONS: ${{ inputs.torch_version }}
|
||||
- name: 🚀 Deploy
|
||||
uses: garygrossgarten/github-action-scp@release
|
||||
with:
|
||||
local: all_dist
|
||||
remote: ${{ secrets.PRIVATE_PYPI_DIR }}
|
||||
host: ${{ secrets.PRIVATE_PYPI_HOST }}
|
||||
username: ${{ secrets.PRIVATE_PYPI_USER }}
|
||||
password: ${{ secrets.PRIVATE_PYPI_PASSWD }}
|
Loading…
Reference in New Issue