Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
ColossalAI
Commits
1a76c88a
Unverified
Commit
1a76c88a
authored
May 24, 2022
by
Frank Lee
Committed by
GitHub
May 24, 2022
Browse files
[ci] added nightly build (#1018) (#1019)
parent
8d06186f
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
117 additions
and
1 deletion
+117
-1
.github/workflows/release_nightly.yml
.github/workflows/release_nightly.yml
+81
-0
.github/workflows/scripts/build_colossalai_wheel.py
.github/workflows/scripts/build_colossalai_wheel.py
+36
-1
No files found.
.github/workflows/release_nightly.yml
0 → 100644
View file @
1a76c88a
name
:
Release bdist wheel for Nightly versions
on
:
schedule
:
# run at 00:00 of every Sunday
-
cron
:
'
0
0
*
*
6'
workflow_dispatch
:
inputs
:
cuda_version
:
type
:
choice
description
:
CUDA Version
default
:
'
all'
required
:
true
options
:
-
all
-
"
11.3"
-
"
10.2"
jobs
:
matrix_preparation
:
name
:
Prepare Container List
runs-on
:
ubuntu-latest
outputs
:
matrix
:
${{ steps.set-matrix.outputs.matrix }}
steps
:
-
id
:
set-matrix
run
:
|
[ "${{github.event.inputs.cuda_version}}" != "" ] && matrix="[\"hpcaitech/cuda-conda:${{github.event.inputs.cuda_version}}\"]"
[ "${{github.event.inputs.cuda_version}}" == "" ] || [ "${{github.event.inputs.version}}" == "all" ] && \
matrix="[\"hpcaitech/cuda-conda:11.3\", \"hpcaitech/cuda-conda:10.2\"]"
echo $matrix
echo "::set-output name=matrix::{\"container\":$(echo $matrix)}"
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/* ./
ln -s /github/home/pip_wheels ./pip_wheels
wget https://github.com/NVIDIA/cub/archive/refs/tags/1.8.0.zip
unzip 1.8.0.zip
-
name
:
Build bdist wheel
run
:
|
pip install beautifulsoup4 requests packaging
python ./build_colossalai_wheel.py --nightly
-
name
:
🚀 Deploy
uses
:
garygrossgarten/github-action-scp@release
with
:
local
:
all_dist
remote
:
${{ secrets.PRIVATE_PYPI_NIGHTLY_DIR }}
host
:
${{ secrets.PRIVATE_PYPI_HOST }}
username
:
${{ secrets.PRIVATE_PYPI_USER }}
password
:
${{ secrets.PRIVATE_PYPI_PASSWD }}
remove_old_build
:
name
:
Remove old nightly build
needs
:
build
steps
:
-
name
:
executing remote ssh commands using password
uses
:
appleboy/ssh-action@master
with
:
host
:
${{ secrets.PRIVATE_PYPI_HOST }}
username
:
${{ secrets.PRIVATE_PYPI_USER }}
password
:
${{ secrets.PRIVATE_PYPI_PASSWD }}
script
:
|
cd $build_dir
find . -type f -mtime +0 -exec rm -f {} +
env
:
build_dir
:
${{ secrets.PRIVATE_PYPI_NIGHTLY_DIR }}
.github/workflows/scripts/build_colossalai_wheel.py
View file @
1a76c88a
from
filecmp
import
cmp
import
requests
import
requests
from
bs4
import
BeautifulSoup
from
bs4
import
BeautifulSoup
import
r
e
import
argpars
e
import
os
import
os
import
subprocess
import
subprocess
from
packaging
import
version
from
functools
import
cmp_to_key
WHEEL_TEXT_ROOT_URL
=
'https://github.com/hpcaitech/public_assets/tree/main/colossalai/torch_build/torch_wheels'
WHEEL_TEXT_ROOT_URL
=
'https://github.com/hpcaitech/public_assets/tree/main/colossalai/torch_build/torch_wheels'
RAW_TEXT_FILE_PREFIX
=
'https://raw.githubusercontent.com/hpcaitech/public_assets/main/colossalai/torch_build/torch_wheels'
RAW_TEXT_FILE_PREFIX
=
'https://raw.githubusercontent.com/hpcaitech/public_assets/main/colossalai/torch_build/torch_wheels'
CUDA_HOME
=
os
.
environ
[
'CUDA_HOME'
]
CUDA_HOME
=
os
.
environ
[
'CUDA_HOME'
]
def
parse_args
():
parser
=
argparse
.
ArgumentParser
()
parser
.
add_argument
(
'--nightly'
,
action
=
'store_true'
,
help
=
'whether this build is for nightly release, if True, will only build on the latest PyTorch version and Python 3.8'
)
return
parser
.
parse_args
()
def
get_cuda_bare_metal_version
():
def
get_cuda_bare_metal_version
():
raw_output
=
subprocess
.
check_output
([
CUDA_HOME
+
"/bin/nvcc"
,
"-V"
],
universal_newlines
=
True
)
raw_output
=
subprocess
.
check_output
([
CUDA_HOME
+
"/bin/nvcc"
,
"-V"
],
universal_newlines
=
True
)
output
=
raw_output
.
split
()
output
=
raw_output
.
split
()
...
@@ -69,7 +79,32 @@ def build_colossalai(wheel_info):
...
@@ -69,7 +79,32 @@ def build_colossalai(wheel_info):
os
.
system
(
cmd
)
os
.
system
(
cmd
)
def
main
():
def
main
():
args
=
parse_args
()
wheel_info
=
all_wheel_info
()
wheel_info
=
all_wheel_info
()
if
args
.
nightly
:
latest_torch_version
=
list
(
wheel_info
.
keys
())
def
_compare_version
(
a
,
b
):
if
version
.
parse
(
a
)
>
version
.
parse
(
b
):
return
1
else
:
return
-
1
latest_torch_version
.
sort
(
key
=
cmp_to_key
(
_compare_version
))
# only keep the latest version
for
key
in
latest_torch_version
[:
-
1
]:
wheel_info
.
pop
(
key
)
# we only keep python 3.8 for nightly release
for
torch_version
,
cuda_versioned_info
in
wheel_info
.
items
():
for
cuda_version
,
python_versioned_info
in
cuda_versioned_info
.
items
():
python_versions
=
list
(
python_versioned_info
.
keys
())
for
key
in
python_versions
:
if
key
!=
'3.8'
:
python_versioned_info
.
pop
(
key
)
build_colossalai
(
wheel_info
)
build_colossalai
(
wheel_info
)
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment