diff --git a/.github/scripts/unittest-windows/environment.yml b/.github/scripts/unittest-windows/environment.yml index c550773a38..33ad0eddfc 100644 --- a/.github/scripts/unittest-windows/environment.yml +++ b/.github/scripts/unittest-windows/environment.yml @@ -8,7 +8,6 @@ dependencies: - scipy >= 1.4.1 - pip - pip: - - PySoundFile - future - parameterized - dataclasses diff --git a/.github/scripts/unittest-windows/install.sh b/.github/scripts/unittest-windows/install.sh index dcb9503e2a..73934b8fd0 100644 --- a/.github/scripts/unittest-windows/install.sh +++ b/.github/scripts/unittest-windows/install.sh @@ -20,16 +20,17 @@ conda activate "${env_dir}" source "$this_dir/set_cuda_envs.sh" +printf "* Installing torch import-time dependencies\n" +pip install numpy + # 1. Install PyTorch if [ -z "${CUDA_VERSION:-}" ] ; then - cudatoolkit="cpuonly" - version="cpu" + wheel="cpu" else - version="$(python -c "print('.'.join(\"${CUDA_VERSION}\".split('.')[:2]))")" - cudatoolkit="pytorch-cuda=${version}" + wheel="cu$(python -c "print(''.join(\"${CUDA_VERSION}\".split('.')[:2]))")" fi -printf "Installing PyTorch with %s\n" "${cudatoolkit}" -conda install -y -c "pytorch-${UPLOAD_CHANNEL}" -c nvidia pytorch "${cudatoolkit}" pytest pybind11 +printf "Installing PyTorch\n" +pip install --pre torch --index-url https://download.pytorch.org/whl/${UPLOAD_CHANNEL}/${wheel} torch_cuda=$(python -c "import torch; print(torch.cuda.is_available())") echo torch.cuda.is_available is $torch_cuda @@ -42,7 +43,7 @@ if [ ! -z "${CUDA_VERSION:-}" ] ; then fi # 2. Install torchaudio -printf "* Installing fsspec\n" +printf "* Installing fsspec\n" # TODO: is this required for torchaudio?? pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org fsspec printf "* Installing torchaudio\n" @@ -50,22 +51,9 @@ printf "* Installing torchaudio\n" # 3. Install Test tools printf "* Installing test tools\n" -NUMBA_DEV_CHANNEL="" SENTENCEPIECE_DEPENDENCY="sentencepiece" -case "$(python --version)" in - *3.9*) - # Numba isn't available for Python 3.9 except on the numba dev channel and building from source fails - # See https://github.com/librosa/librosa/issues/1270#issuecomment-759065048 - NUMBA_DEV_CHANNEL="-c numba/label/dev" - ;; - *3.10*) - # Don't install sentencepiece, no python 3.10 dependencies available for windows yet - SENTENCEPIECE_DEPENDENCY="" - NUMBA_DEV_CHANNEL="-c numba/label/dev" - ;; -esac ( - conda install -y -c conda-forge ${NUMBA_DEV_CHANNEL} parameterized 'requests>=2.20' + conda install -y -c conda-forge parameterized 'requests>=2.20' # Need to disable shell check since this'll fail out if SENTENCEPIECE_DEPENDENCY is empty # shellcheck disable=SC2086 pip install \ @@ -77,18 +65,5 @@ esac inflect \ pytest \ pytest-cov \ - pytorch-lightning \ - 'scipy==1.7.3' \ - unidecode \ - 'protobuf<4.21.0' \ - demucs \ - tinytag \ - pyroomacoustics \ - flashlight-text \ - git+https://github.com/kpu/kenlm/ + scipy ) -# Install fairseq -git clone https://github.com/pytorch/fairseq -cd fairseq -git checkout e47a4c8 -pip install . diff --git a/.github/scripts/unittest-windows/run_test.sh b/.github/scripts/unittest-windows/run_test.sh index ad29a6c021..25d8e14196 100644 --- a/.github/scripts/unittest-windows/run_test.sh +++ b/.github/scripts/unittest-windows/run_test.sh @@ -12,5 +12,5 @@ python -m torch.utils.collect_env env | grep TORCHAUDIO || true cd test -pytest --continue-on-collection-errors --cov=torchaudio --junitxml=${RUNNER_TEST_RESULTS_DIR}/junit.xml -v --durations 20 torchaudio_unittest +pytest --continue-on-collection-errors --cov=torchaudio --junitxml=${RUNNER_TEST_RESULTS_DIR}/junit.xml -v --durations 20 torchaudio_unittest -k "not torchscript and not fairseq and not demucs and not librosa" coverage html diff --git a/.github/scripts/unittest-windows/setup_env.sh b/.github/scripts/unittest-windows/setup_env.sh index 88ac15ca5c..8203a1d978 100644 --- a/.github/scripts/unittest-windows/setup_env.sh +++ b/.github/scripts/unittest-windows/setup_env.sh @@ -19,7 +19,9 @@ if [ ! -d "${conda_dir}" ]; then printf "* Installing conda\n" export tmp_conda="$(echo $conda_dir | tr '/' '\\')" export miniconda_exe="$(echo $root_dir | tr '/' '\\')\\miniconda.exe" - curl --silent --output miniconda.exe https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe -O + # not using miniconda because its installation will be incomplete + # despite using `start /wait` in the install batch file + curl -L --silent --output miniconda.exe https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Windows-x86_64.exe -O "$this_dir/install_conda.bat" unset tmp_conda unset miniconda_exe @@ -34,5 +36,4 @@ fi conda activate "${env_dir}" # 3. Install minimal build tools -pip --quiet install cmake ninja -conda install --quiet -y 'ffmpeg>=4.1' +conda install -y -c conda-forge cmake ninja diff --git a/.github/workflows/unittest-linux-cpu.yml b/.github/workflows/unittest-linux-cpu.yml index ef77070756..99f7875bde 100644 --- a/.github/workflows/unittest-linux-cpu.yml +++ b/.github/workflows/unittest-linux-cpu.yml @@ -31,6 +31,8 @@ jobs: # Set up Environment Variables export PYTHON_VERSION="${{ matrix.python_version }}" + export PIP_PROGRESS_BAR=off + export CONDA_QUIET=1 export CUDA_TESTS_ONLY="0" unset CUDA_VERSION diff --git a/.github/workflows/unittest-linux-gpu.yml b/.github/workflows/unittest-linux-gpu.yml index d5879641e0..3d785db097 100644 --- a/.github/workflows/unittest-linux-gpu.yml +++ b/.github/workflows/unittest-linux-gpu.yml @@ -32,6 +32,8 @@ jobs: set -ex # Set up Environment Variables export PYTHON_VERSION="${{ matrix.python_version }}" + export PIP_PROGRESS_BAR=off + export CONDA_QUIET=1 export CU_VERSION="${{ matrix.cuda_arch_version }}" export CUDATOOLKIT="pytorch-cuda=${CU_VERSION}" export TORCHAUDIO_TEST_ALLOW_SKIP_IF_CUDA_SMALL_MEMORY=true diff --git a/.github/workflows/unittest-windows-cpu.yml b/.github/workflows/unittest-windows-cpu.yml index a0e3cc93d2..dc501cd4f4 100644 --- a/.github/workflows/unittest-windows-cpu.yml +++ b/.github/workflows/unittest-windows-cpu.yml @@ -1,52 +1,60 @@ # name: Unittests on Windows CPU -# on: -# pull_request: -# push: -# branches: -# - nightly -# - main -# - release/* -# workflow_dispatch: +on: + pull_request: + push: + branches: + - nightly + - main + - release/* + workflow_dispatch: -# jobs: -# unittests-windows-cpu: -# uses: pytorch/test-infra/.github/workflows/windows_job.yml@main -# with: -# repository: pytorch/audio -# runner: windows.4xlarge -# timeout: 180 -# script: | -# # Mark Build Directory Safe -# git config --global --add safe.directory /__w/audio/audio +jobs: + unittests-windows-cpu: + uses: pytorch/test-infra/.github/workflows/windows_job.yml@main + with: + repository: pytorch/audio + runner: windows.4xlarge + timeout: 180 + script: | + # Mark Build Directory Safe + git config --global --add safe.directory /__w/audio/audio -# # Set up Environment Variables -# export PYTHON_VERSION="3.9" -# unset CUDA_VERSION + # Set up Environment Variables + export PYTHON_VERSION="3.10" + export PIP_PROGRESS_BAR=off + export CONDA_QUIET=1 + unset CUDA_VERSION -# # Set CHANNEL -# if [[(${GITHUB_EVENT_NAME} = 'pull_request' && (${GITHUB_BASE_REF} = 'release'*)) || (${GITHUB_REF} = 'refs/heads/release'*) ]]; then -# export UPLOAD_CHANNEL=test -# else -# export UPLOAD_CHANNEL=nightly -# fi + # Set CHANNEL + if [[(${GITHUB_EVENT_NAME} = 'pull_request' && (${GITHUB_BASE_REF} = 'release'*)) || (${GITHUB_REF} = 'refs/heads/release'*) ]]; then + export UPLOAD_CHANNEL=test + else + export UPLOAD_CHANNEL=nightly + fi -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_APPLY_CMVN_SLIDING=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_COMPUTE_FBANK_FEATS=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_COMPUTE_KALDI_PITCH_FEATS=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_COMPUTE_MFCC_FEATS=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_COMPUTE_SPECTROGRAM_FEATS=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_SOX=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CUDA=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_HW_ACCEL=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_KALDI=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_SOX=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_ON_PYTHON_310=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_MOD_sentencepiece=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_AUDIO_OUT_DEVICE=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_MACOS=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_TEMPORARY_DISABLED=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_APPLY_CMVN_SLIDING=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_COMPUTE_FBANK_FEATS=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_COMPUTE_KALDI_PITCH_FEATS=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_COMPUTE_MFCC_FEATS=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_COMPUTE_SPECTROGRAM_FEATS=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_SOX=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CUDA=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_HW_ACCEL=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_KALDI=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_SOX=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_ON_PYTHON_310=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_MOD_sentencepiece=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_AUDIO_OUT_DEVICE=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_MACOS=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_TEMPORARY_DISABLED=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_QUANTIZATION=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CTC_DECODER=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_MOD_unidecode=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_MOD_inflect=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_MOD_pytorch_lightning=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_MOD_sentencepiece=true -# .github/scripts/unittest-windows/setup_env.sh -# .github/scripts/unittest-windows/install.sh -# .github/scripts/unittest-windows/run_test.sh + .github/scripts/unittest-windows/setup_env.sh + .github/scripts/unittest-windows/install.sh + .github/scripts/unittest-windows/run_test.sh diff --git a/.github/workflows/unittest-windows-gpu.yml b/.github/workflows/unittest-windows-gpu.yml index dd3b5e754b..b00a512956 100644 --- a/.github/workflows/unittest-windows-gpu.yml +++ b/.github/workflows/unittest-windows-gpu.yml @@ -1,52 +1,61 @@ -# name: Unittests on Windows GPU +name: Unittests on Windows GPU -# on: -# pull_request: -# push: -# branches: -# - nightly -# - main -# - release/* -# workflow_dispatch: +on: + pull_request: + push: + branches: + - nightly + - main + - release/* + workflow_dispatch: -# jobs: -# unittests-windows-gpu: -# uses: pytorch/test-infra/.github/workflows/windows_job.yml@main -# with: -# repository: pytorch/audio -# runner: windows.g5.4xlarge.nvidia.gpu -# timeout: 360 -# script: | -# # Mark Build Directory Safe -# git config --global --add safe.directory /__w/audio/audio +jobs: + unittests-windows-gpu: + uses: pytorch/test-infra/.github/workflows/windows_job.yml@main + with: + repository: pytorch/audio + runner: windows.g5.4xlarge.nvidia.gpu + timeout: 360 + script: | + # Mark Build Directory Safe + git config --global --add safe.directory /__w/audio/audio -# # Set up Environment Variables -# export PYTHON_VERSION="3.9" -# export CUDA_VERSION=12.6 + # Set up Environment Variables + export PYTHON_VERSION="3.10" + export CUDA_VERSION=12.6 + export PIP_PROGRESS_BAR=off + export CONDA_QUIET=1 + export USE_CUDA=1 + export CUBLAS_WORKSPACE_CONFIG=:4096:8 -# # Set CHANNEL -# if [[(${GITHUB_EVENT_NAME} = 'pull_request' && (${GITHUB_BASE_REF} = 'release'*)) || (${GITHUB_REF} = 'refs/heads/release'*) ]]; then -# export UPLOAD_CHANNEL=test -# else -# export UPLOAD_CHANNEL=nightly -# fi + # Set CHANNEL + if [[(${GITHUB_EVENT_NAME} = 'pull_request' && (${GITHUB_BASE_REF} = 'release'*)) || (${GITHUB_REF} = 'refs/heads/release'*) ]]; then + export UPLOAD_CHANNEL=test + else + export UPLOAD_CHANNEL=nightly + fi -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_APPLY_CMVN_SLIDING=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_COMPUTE_FBANK_FEATS=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_COMPUTE_KALDI_PITCH_FEATS=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_COMPUTE_MFCC_FEATS=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_COMPUTE_SPECTROGRAM_FEATS=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_SOX=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_KALDI=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_SOX=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_ON_PYTHON_310=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_MOD_sentencepiece=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_AUDIO_OUT_DEVICE=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_MACOS=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_CUDA_SMALL_MEMORY=true -# export TORCHAUDIO_TEST_ALLOW_SKIP_IF_TEMPORARY_DISABLED=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_APPLY_CMVN_SLIDING=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_COMPUTE_FBANK_FEATS=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_COMPUTE_KALDI_PITCH_FEATS=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_COMPUTE_MFCC_FEATS=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_COMPUTE_SPECTROGRAM_FEATS=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_SOX=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_KALDI=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_SOX=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_ON_PYTHON_310=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_MOD_sentencepiece=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_AUDIO_OUT_DEVICE=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_MACOS=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_CUDA_SMALL_MEMORY=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_TEMPORARY_DISABLED=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_QUANTIZATION=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CTC_DECODER=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_MOD_unidecode=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_MOD_inflect=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_MOD_pytorch_lightning=true + export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_MOD_sentencepiece=true - -# .github/scripts/unittest-windows/setup_env.sh -# .github/scripts/unittest-windows/install.sh -# .github/scripts/unittest-windows/run_test.sh + .github/scripts/unittest-windows/setup_env.sh + .github/scripts/unittest-windows/install.sh + .github/scripts/unittest-windows/run_test.sh