From 9be9501e8fe40a3de3a2f1960e90b3cbd24689aa Mon Sep 17 00:00:00 2001 From: Salil Desai Date: Mon, 7 Jun 2021 09:53:49 -0400 Subject: [PATCH 1/5] update skipIfNoCuda decorator to fail if TORCHAUDIO_TEST_FORCE_CUDA but CUDA not available --- test/torchaudio_unittest/common_utils/case_utils.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/test/torchaudio_unittest/common_utils/case_utils.py b/test/torchaudio_unittest/common_utils/case_utils.py index bf235f1ef6..140291a8a2 100644 --- a/test/torchaudio_unittest/common_utils/case_utils.py +++ b/test/torchaudio_unittest/common_utils/case_utils.py @@ -104,7 +104,15 @@ def skipIfNoModule(module, display_name=None): return unittest.skipIf(not is_module_available(module), f'"{display_name}" is not available') -skipIfNoCuda = unittest.skipIf(not torch.cuda.is_available(), reason='CUDA not available') +def skipIfNoCuda(test_item): + if torch.cuda.is_available(): + return test_item + force_cuda_test = os.environ.get('TORCHAUDIO_TEST_FORCE_CUDA', '0') + if force_cuda_test not in ['0', '1']: + raise ValueError('"TORCHAUDIO_TEST_FORCE_CUDA" must be either "0" or "1".') + if force_cuda_test == '1': + raise RuntimeError('"TORCHAUDIO_TEST_FORCE_CUDA" is set but CUDA is not available.') + return unittest.skip('CUDA is not available.')(test_item) skipIfNoSox = unittest.skipIf(not is_sox_available(), reason='Sox not available') skipIfNoKaldi = unittest.skipIf(not is_kaldi_available(), reason='Kaldi not available') skipIfRocm = unittest.skipIf(os.getenv('TORCHAUDIO_TEST_WITH_ROCM', '0') == '1', From 7095c79cb57a99abdc30b4677bacb132dc461cd0 Mon Sep 17 00:00:00 2001 From: Salil Desai Date: Mon, 7 Jun 2021 10:16:32 -0400 Subject: [PATCH 2/5] Updated CI to use TORCHAUDIO_TEST_FORCE_CUDA in gpu unittests --- .circleci/config.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index cb796d03eb..dfa8729040 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -465,7 +465,7 @@ jobs: command: docker run -t --gpus all -e UPLOAD_CHANNEL -e CONDA_CHANNEL_FLAGS -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 + command: docker run -t --gpus all -v $PWD:$PWD -w $PWD "${image_name}" -e "TORCHAUDIO_TEST_FORCE_CUDA=1" .circleci/unittest/linux/scripts/run_test.sh - store_test_results: path: test-results - store_artifacts: @@ -500,6 +500,7 @@ jobs: environment: <<: *environment CUDA_VERSION: "10.2" + TORCHAUDIO_TEST_FORCE_CUDA: "1" steps: - checkout - designate_upload_channel From 420cd079f03dcae8ef913fbb92c8c3f8e6253b72 Mon Sep 17 00:00:00 2001 From: Salil Desai Date: Mon, 7 Jun 2021 10:35:12 -0400 Subject: [PATCH 3/5] Set TORCHAUDIO_TEST_FORCE_CUDA for GPU tests in config.yml.in --- .circleci/config.yml.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml.in b/.circleci/config.yml.in index aff66edf1d..3c86d72ea7 100644 --- a/.circleci/config.yml.in +++ b/.circleci/config.yml.in @@ -465,7 +465,7 @@ jobs: command: docker run -t --gpus all -e UPLOAD_CHANNEL -e CONDA_CHANNEL_FLAGS -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 + command: docker run -t --gpus all -v $PWD:$PWD -w $PWD "${image_name}" -e "TORCHAUDIO_TEST_FORCE_CUDA=1" .circleci/unittest/linux/scripts/run_test.sh - store_test_results: path: test-results - store_artifacts: @@ -500,6 +500,7 @@ jobs: environment: <<: *environment CUDA_VERSION: "10.2" + TORCHAUDIO_TEST_FORCE_CUDA: "1" steps: - checkout - designate_upload_channel From cfad5c3191fc67d6b67706ffb208678008f59306 Mon Sep 17 00:00:00 2001 From: Salil Desai Date: Mon, 7 Jun 2021 10:40:25 -0400 Subject: [PATCH 4/5] Fixed positioning of -e in unittest_linux_gpu run command --- .circleci/config.yml | 2 +- .circleci/config.yml.in | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index dfa8729040..022bd8265b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -465,7 +465,7 @@ jobs: command: docker run -t --gpus all -e UPLOAD_CHANNEL -e CONDA_CHANNEL_FLAGS -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}" -e "TORCHAUDIO_TEST_FORCE_CUDA=1" .circleci/unittest/linux/scripts/run_test.sh + command: docker run -t --gpus all -v $PWD:$PWD -w $PWD -e "TORCHAUDIO_TEST_FORCE_CUDA=1" "${image_name}" .circleci/unittest/linux/scripts/run_test.sh - store_test_results: path: test-results - store_artifacts: diff --git a/.circleci/config.yml.in b/.circleci/config.yml.in index 3c86d72ea7..d3181e174b 100644 --- a/.circleci/config.yml.in +++ b/.circleci/config.yml.in @@ -465,7 +465,7 @@ jobs: command: docker run -t --gpus all -e UPLOAD_CHANNEL -e CONDA_CHANNEL_FLAGS -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}" -e "TORCHAUDIO_TEST_FORCE_CUDA=1" .circleci/unittest/linux/scripts/run_test.sh + command: docker run -t --gpus all -v $PWD:$PWD -w $PWD -e "TORCHAUDIO_TEST_FORCE_CUDA=1" "${image_name}" .circleci/unittest/linux/scripts/run_test.sh - store_test_results: path: test-results - store_artifacts: From 3f52cbad89b9bbb5c4de54309dfa1d52f830548d Mon Sep 17 00:00:00 2001 From: Salil Desai Date: Wed, 9 Jun 2021 10:32:52 -0400 Subject: [PATCH 5/5] removed setting TORCHAUDIO_TEST_FORCE_CUDA to 1 in windows gpu tests --- .circleci/config.yml | 1 - .circleci/config.yml.in | 1 - 2 files changed, 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 022bd8265b..ea84f8ce7b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -500,7 +500,6 @@ jobs: environment: <<: *environment CUDA_VERSION: "10.2" - TORCHAUDIO_TEST_FORCE_CUDA: "1" steps: - checkout - designate_upload_channel diff --git a/.circleci/config.yml.in b/.circleci/config.yml.in index d3181e174b..8a5cef16b3 100644 --- a/.circleci/config.yml.in +++ b/.circleci/config.yml.in @@ -500,7 +500,6 @@ jobs: environment: <<: *environment CUDA_VERSION: "10.2" - TORCHAUDIO_TEST_FORCE_CUDA: "1" steps: - checkout - designate_upload_channel