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
Torchaudio
Commits
867d669b
Unverified
Commit
867d669b
authored
May 06, 2020
by
moto
Committed by
GitHub
May 06, 2020
Browse files
Add CUDA test on CCI (#586)
* Add GPU test * Run only on master
parent
b71b5ee5
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
156 additions
and
29 deletions
+156
-29
.circleci/config.yml
.circleci/config.yml
+72
-14
.circleci/config.yml.in
.circleci/config.yml.in
+42
-2
.circleci/regenerate.py
.circleci/regenerate.py
+12
-7
.circleci/unittest/linux/docker/.gitignore
.circleci/unittest/linux/docker/.gitignore
+1
-0
.circleci/unittest/linux/docker/Dockerfile
.circleci/unittest/linux/docker/Dockerfile
+1
-1
.circleci/unittest/linux/docker/build_and_push.sh
.circleci/unittest/linux/docker/build_and_push.sh
+20
-3
.circleci/unittest/linux/scripts/install.sh
.circleci/unittest/linux/scripts/install.sh
+8
-2
No files found.
.circleci/config.yml
View file @
867d669b
...
...
@@ -221,7 +221,7 @@ jobs:
docker tag ${image_name}:${CIRCLE_WORKFLOW_ID} 308535385114.dkr.ecr.us-east-1.amazonaws.com/${image_name}:${CIRCLE_WORKFLOW_ID}
docker push 308535385114.dkr.ecr.us-east-1.amazonaws.com/${image_name}:${CIRCLE_WORKFLOW_ID}
unittest_linux
:
unittest_linux
_cpu
:
<<
:
*binary_common
docker
:
-
image
:
"
pytorch/torchaudio_unittest_base:manylinux"
...
...
@@ -259,7 +259,47 @@ jobs:
-
store_test_results
:
path
:
test-results
unittest_windows
:
unittest_linux_gpu
:
<<
:
*binary_common
machine
:
image
:
ubuntu-1604-cuda-10.1:201909-23
resource_class
:
gpu.small
environment
:
image_name
:
"
pytorch/torchaudio_unittest_base:manylinux-cuda10.1"
steps
:
-
checkout
-
run
:
name
:
Generate cache key
# This will refresh cache on Sundays, nightly build should generate new cache.
command
:
echo "$(date +"%Y-%U")" > .circleci-weekly
-
restore_cache
:
keys
:
-
env-v1-linux-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/linux/scripts/environment.yml" }}-{{ checksum ".circleci-weekly" }}
-
run
:
name
:
Setup
command
:
docker run -t --gpus all -v $PWD:$PWD -w $PWD "${image_name}" .circleci/unittest/linux/scripts/setup_env.sh
-
save_cache
:
key
:
env-v1-linux-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/linux/scripts/environment.yml" }}-{{ checksum ".circleci-weekly" }}
paths
:
-
conda
-
env
-
run
:
name
:
Install torchaudio
command
:
docker run -t --gpus all -v $PWD:$PWD -w $PWD "${image_name}" .circleci/unittest/linux/scripts/install.sh
-
run
:
name
:
Run tests
command
:
docker run -t --gpus all -v $PWD:$PWD -w $PWD "${image_name}" .circleci/unittest/linux/scripts/run_test.sh
-
run
:
name
:
Post Process
command
:
docker run -t --gpus all -v $PWD:$PWD -w $PWD "${image_name}" .circleci/unittest/linux/scripts/post_process.sh
-
store_test_results
:
path
:
test-results
unittest_windows_cpu
:
<<
:
*binary_common
executor
:
name
:
windows-cpu
...
...
@@ -338,23 +378,41 @@ workflows:
python_version
:
'
3.8'
unittest
:
jobs
:
-
unittest_linux
:
name
:
unittest_linux_py3.6
-
unittest_linux_cpu
:
name
:
unittest_linux_cpu_py3.6
python_version
:
'
3.6'
-
unittest_linux_cpu
:
name
:
unittest_linux_cpu_py3.7
python_version
:
'
3.7'
-
unittest_linux_cpu
:
name
:
unittest_linux_cpu_py3.8
python_version
:
'
3.8'
-
unittest_linux_gpu
:
filters
:
branches
:
only
:
master
name
:
unittest_linux_gpu_py3.6
python_version
:
'
3.6'
-
unittest_linux
:
name
:
unittest_linux_py3.7
-
unittest_linux_gpu
:
filters
:
branches
:
only
:
master
name
:
unittest_linux_gpu_py3.7
python_version
:
'
3.7'
-
unittest_linux
:
name
:
unittest_linux_py3.8
-
unittest_linux_gpu
:
filters
:
branches
:
only
:
master
name
:
unittest_linux_gpu_py3.8
python_version
:
'
3.8'
-
unittest_windows
:
name
:
unittest_windows_py3.6
-
unittest_windows
_cpu
:
name
:
unittest_windows_
cpu_
py3.6
python_version
:
'
3.6'
-
unittest_windows
:
name
:
unittest_windows_py3.7
-
unittest_windows
_cpu
:
name
:
unittest_windows_
cpu_
py3.7
python_version
:
'
3.7'
-
unittest_windows
:
name
:
unittest_windows_py3.8
-
unittest_windows
_cpu
:
name
:
unittest_windows_
cpu_
py3.8
python_version
:
'
3.8'
nightly
:
jobs
:
...
...
.circleci/config.yml.in
View file @
867d669b
...
...
@@ -221,7 +221,7 @@ jobs:
docker tag ${image_name}:${CIRCLE_WORKFLOW_ID} 308535385114.dkr.ecr.us-east-1.amazonaws.com/${image_name}:${CIRCLE_WORKFLOW_ID}
docker push 308535385114.dkr.ecr.us-east-1.amazonaws.com/${image_name}:${CIRCLE_WORKFLOW_ID}
unittest_linux:
unittest_linux
_cpu
:
<<: *binary_common
docker:
- image: "pytorch/torchaudio_unittest_base:manylinux"
...
...
@@ -259,7 +259,47 @@ jobs:
- store_test_results:
path: test-results
unittest_windows:
unittest_linux_gpu:
<<: *binary_common
machine:
image: ubuntu-1604-cuda-10.1:201909-23
resource_class: gpu.small
environment:
image_name: "pytorch/torchaudio_unittest_base:manylinux-cuda10.1"
steps:
- checkout
- run:
name: Generate cache key
# This will refresh cache on Sundays, nightly build should generate new cache.
command: echo "$(date +"%Y-%U")" > .circleci-weekly
- restore_cache:
{% raw %}
keys:
- env-v1-linux-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/linux/scripts/environment.yml" }}-{{ checksum ".circleci-weekly" }}
{% endraw %}
- run:
name: Setup
command: docker run -t --gpus all -v $PWD:$PWD -w $PWD "${image_name}" .circleci/unittest/linux/scripts/setup_env.sh
- save_cache:
{% raw %}
key: env-v1-linux-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/linux/scripts/environment.yml" }}-{{ checksum ".circleci-weekly" }}
{% endraw %}
paths:
- conda
- env
- run:
name: Install torchaudio
command: docker run -t --gpus all -v $PWD:$PWD -w $PWD "${image_name}" .circleci/unittest/linux/scripts/install.sh
- run:
name: Run tests
command: docker run -t --gpus all -v $PWD:$PWD -w $PWD "${image_name}" .circleci/unittest/linux/scripts/run_test.sh
- run:
name: Post Process
command: docker run -t --gpus all -v $PWD:$PWD -w $PWD "${image_name}" .circleci/unittest/linux/scripts/post_process.sh
- store_test_results:
path: test-results
unittest_windows_cpu:
<<: *binary_common
executor:
name: windows-cpu
...
...
.circleci/regenerate.py
View file @
867d669b
...
...
@@ -111,16 +111,21 @@ def indent(indentation, data_list):
def
unittest_workflows
(
indentation
=
6
):
w
=
[]
jobs
=
[]
for
os_type
in
[
"linux"
,
"windows"
]:
for
python_version
in
PYTHON_VERSIONS
:
w
.
append
({
f
"unittest_
{
os_type
}
"
:
{
"name"
:
f
"unittest_
{
os_type
}
_py
{
python_version
}
"
,
for
device_type
in
[
"cpu"
,
"gpu"
]:
if
os_type
==
'windows'
and
device_type
==
'gpu'
:
continue
for
python_version
in
PYTHON_VERSIONS
:
job
=
{
"name"
:
f
"unittest_
{
os_type
}
_
{
device_type
}
_py
{
python_version
}
"
,
"python_version"
:
python_version
,
}
})
return
indent
(
indentation
,
w
)
if
device_type
==
'gpu'
:
job
[
'filters'
]
=
gen_filter_branch_tree
(
'master'
)
jobs
.
append
({
f
"unittest_
{
os_type
}
_
{
device_type
}
"
:
job
})
return
indent
(
indentation
,
jobs
)
if
__name__
==
"__main__"
:
...
...
.circleci/unittest/linux/docker/.gitignore
View file @
867d669b
scripts/build_third_parties.sh
Dockerfile.tmp
.circleci/unittest/linux/docker/Dockerfile
View file @
867d669b
...
...
@@ -45,7 +45,7 @@ RUN bash /scripts/build_third_parties.sh /
################################################################################
# Build the final image
################################################################################
FROM
ubuntu:18.04
FROM
BASE_IMAGE
RUN
apt update
&&
apt
install
-y
\
g++
\
gfortran
\
...
...
.circleci/unittest/linux/docker/build_and_push.sh
View file @
867d669b
...
...
@@ -2,12 +2,29 @@
set
-euo
pipefail
if
[
$#
-ne
1
]
;
then
printf
"Usage %s <CUDA_VERSION>
\n\n
"
"
$0
"
exit
1
fi
if
[
"
$1
"
=
"cpu"
]
;
then
base_image
=
"ubuntu:18.04"
image
=
"pytorch/torchaudio_unittest_base:manylinux"
elif
[[
"
$1
"
=
~ ^
(
9.2|10.1
)
$
]]
;
then
base_image
=
"nvidia/cuda:
$1
-runtime-ubuntu18.04"
image
=
"pytorch/torchaudio_unittest_base:manylinux-cuda
$1
"
else
printf
"Unexpected <CUDA_VERSION> string: %s"
"
$1
"
exit
1
;
fi
cd
"
$(
dirname
"
${
BASH_SOURCE
[0]
}
"
)
"
root_dir
=
"
$(
git rev-parse
--show-toplevel
)
"
cp
"
${
root_dir
}
"
/packaging/build_from_source.sh ./scripts/build_third_parties.sh
tag
=
"manylinux"
image
=
"pytorch/torchaudio_unittest_base:
${
tag
}
"
docker build
-t
"
${
image
}
"
.
# docker build also accepts reading from STDIN
# but in that case, no context (other files) can be passed, so we write out Dockerfile
sed
"s|BASE_IMAGE|
${
base_image
}
|g"
Dockerfile
>
Dockerfile.tmp
docker build
-t
"
${
image
}
"
-f
Dockerfile.tmp
.
docker push
"
${
image
}
"
.circleci/unittest/linux/scripts/install.sh
View file @
867d669b
...
...
@@ -10,8 +10,14 @@ set -e
eval
"
$(
./conda/bin/conda shell.bash hook
)
"
conda activate ./env
printf
"* Installing PyTorch nightly build"
conda
install
-y
-c
pytorch-nightly pytorch cpuonly
if
[
-z
"
${
CUDA_VERSION
:-}
"
]
;
then
cudatoolkit
=
"cpuonly"
else
version
=
"
$(
python
-c
"print('.'.join(
\"
${
CUDA_VERSION
}
\"
.split('.')[:2]))"
)
"
cudatoolkit
=
"cudatoolkit=
${
version
}
"
fi
printf
"Installing PyTorch with %s
\n
"
"
${
cudatoolkit
}
"
conda
install
-y
-c
pytorch-nightly pytorch
"
${
cudatoolkit
}
"
printf
"* Installing torchaudio
\n
"
# Link codecs present at /third_party. See Dockerfile for how this is built
...
...
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