From 945a8ed86736372c7eb1b19451544f6a714df529 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Thu, 22 Sep 2022 06:51:03 +0000 Subject: [PATCH 01/15] first try --- test/smoke_test/smoke_test.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/test/smoke_test/smoke_test.py b/test/smoke_test/smoke_test.py index f5245b4da..c99048e6e 100644 --- a/test/smoke_test/smoke_test.py +++ b/test/smoke_test/smoke_test.py @@ -19,6 +19,14 @@ def smoke_test_cuda() -> None: print(f"torch cuda: {torch.version.cuda}") # todo add cudnn version validation print(f"torch cudnn: {torch.backends.cudnn.version()}") + # check torchvision's cuda version against system cuda version + if(torch.ops.torchvision.__cuda__version() != gpu_arch_ver): + raise RuntimeError(f"Wrong CUDA version. Loaded: {torch.version.cuda} Expected: {gpu_arch_ver}") + # check torchaudio's cuda version against system cuda version + if 'cu'+str(gpu_arch_ver).replace(".", "") not in torchaudio.__version__.split("+") + raise RuntimeError(f"Wrong CUDA version. Loaded: {torchaudio.__version__} Expected: {gpu_arch_ver} + + def smoke_test_conv2d() -> None: import torch.nn as nn From 26ff58803ce2f554dbe6b56671e98745b180d415 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Thu, 22 Sep 2022 20:42:35 +0000 Subject: [PATCH 02/15] syntax fix --- test/smoke_test/smoke_test.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/smoke_test/smoke_test.py b/test/smoke_test/smoke_test.py index c99048e6e..337bed18e 100644 --- a/test/smoke_test/smoke_test.py +++ b/test/smoke_test/smoke_test.py @@ -23,8 +23,8 @@ def smoke_test_cuda() -> None: if(torch.ops.torchvision.__cuda__version() != gpu_arch_ver): raise RuntimeError(f"Wrong CUDA version. Loaded: {torch.version.cuda} Expected: {gpu_arch_ver}") # check torchaudio's cuda version against system cuda version - if 'cu'+str(gpu_arch_ver).replace(".", "") not in torchaudio.__version__.split("+") - raise RuntimeError(f"Wrong CUDA version. Loaded: {torchaudio.__version__} Expected: {gpu_arch_ver} + if 'cu'+str(gpu_arch_ver).replace(".", "") not in torchaudio.__version__.split("+"): + raise RuntimeError(f"Wrong CUDA version. Loaded: {torchaudio.__version__} Expected: {gpu_arch_ver}") From d7f486acb6d9bc6f95486bac84b8568734de3bd3 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Fri, 23 Sep 2022 06:07:58 +0000 Subject: [PATCH 03/15] reuse torchvision cuda version check --- test/smoke_test/smoke_test.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/smoke_test/smoke_test.py b/test/smoke_test/smoke_test.py index 337bed18e..71d52ee19 100644 --- a/test/smoke_test/smoke_test.py +++ b/test/smoke_test/smoke_test.py @@ -19,9 +19,9 @@ def smoke_test_cuda() -> None: print(f"torch cuda: {torch.version.cuda}") # todo add cudnn version validation print(f"torch cudnn: {torch.backends.cudnn.version()}") - # check torchvision's cuda version against system cuda version - if(torch.ops.torchvision.__cuda__version() != gpu_arch_ver): - raise RuntimeError(f"Wrong CUDA version. Loaded: {torch.version.cuda} Expected: {gpu_arch_ver}") + # leverage torchvision's existing cuda check: raise runtime error if mismatch + torchvision.extension._check_cuda_version() + # check torchaudio's cuda version against system cuda version if 'cu'+str(gpu_arch_ver).replace(".", "") not in torchaudio.__version__.split("+"): raise RuntimeError(f"Wrong CUDA version. Loaded: {torchaudio.__version__} Expected: {gpu_arch_ver}") From ec9cb926819d35b5e66cb3fcbdd5769bf9449cd0 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Mon, 26 Sep 2022 07:06:24 +0000 Subject: [PATCH 04/15] Redo torchaudio check --- test/smoke_test/smoke_test.py | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/test/smoke_test/smoke_test.py b/test/smoke_test/smoke_test.py index 71d52ee19..87110c49a 100644 --- a/test/smoke_test/smoke_test.py +++ b/test/smoke_test/smoke_test.py @@ -1,6 +1,9 @@ import os import sys import torch +# the following import would invoke +# _check_cuda_version() +# via torchvision.extension._check_cuda_version() import torchvision import torchaudio from pathlib import Path @@ -10,6 +13,16 @@ is_cuda_system = gpu_arch_type == "cuda" SCRIPT_DIR = Path(__file__).parent +# helper function to return the conda list output, e.g. +# torchaudio 0.13.0.dev20220922 py39_cu102 pytorch-nightly +def get_anaconda_output_for_package(pkg_name_str): + import subprocess as sp + cmd = 'conda list ' + pkg_name_str + ' |grep ' + pkg_name_str + output = sp.getoutput(cmd) + return output + + + def smoke_test_cuda() -> None: if(not torch.cuda.is_available() and is_cuda_system): raise RuntimeError(f"Expected CUDA {gpu_arch_ver}. However CUDA is not loaded.") @@ -20,11 +33,17 @@ def smoke_test_cuda() -> None: # todo add cudnn version validation print(f"torch cudnn: {torch.backends.cudnn.version()}") # leverage torchvision's existing cuda check: raise runtime error if mismatch - torchvision.extension._check_cuda_version() + # check torchaudio's cuda version against system cuda version - if 'cu'+str(gpu_arch_ver).replace(".", "") not in torchaudio.__version__.split("+"): - raise RuntimeError(f"Wrong CUDA version. Loaded: {torchaudio.__version__} Expected: {gpu_arch_ver}") + # torchaudio runtime does not retain cuda version + # relying solely on anaconda output + torchaudio_allstr = get_anaconda_output_for_package(torchaudio.__name__) + print('cu' + str(gpu_arch_ver).replace(".", "")) + if 'cu'+str(gpu_arch_ver).replace(".", "") not in torchaudio_allstr: + import re + loaded_cuda_str = re.findall('cu\d+', torchaudio_allstr)[0] + raise RuntimeError(f"Wrong CUDA version. Loaded: {loaded_cuda_str} Expected: {gpu_arch_ver}") @@ -103,11 +122,11 @@ def main() -> None: print(f"torchvision: {torchvision.__version__}") print(f"torchaudio: {torchaudio.__version__}") smoke_test_cuda() - smoke_test_conv2d() - smoke_test_torchaudio() - smoke_test_torchvision() - smoke_test_torchvision_read_decode() - smoke_test_torchvision_resnet50_classify() + #smoke_test_conv2d() + #smoke_test_torchaudio() + #smoke_test_torchvision() + #smoke_test_torchvision_read_decode() + #smoke_test_torchvision_resnet50_classify() if __name__ == "__main__": main() From 7e0e2eb05cb4fc45709252e5bf43df96dc7b1c6b Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Mon, 26 Sep 2022 19:53:37 +0000 Subject: [PATCH 05/15] date check --- test/smoke_test/smoke_test.py | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/test/smoke_test/smoke_test.py b/test/smoke_test/smoke_test.py index 87110c49a..1a377541f 100644 --- a/test/smoke_test/smoke_test.py +++ b/test/smoke_test/smoke_test.py @@ -1,4 +1,5 @@ import os +import re import sys import torch # the following import would invoke @@ -10,6 +11,9 @@ gpu_arch_ver = os.getenv("GPU_ARCH_VER") gpu_arch_type = os.getenv("GPU_ARCH_TYPE") +# need installation env variable to tell nightly +installation_str = os.getenv("INSTALLATION") +print(installation_str) is_cuda_system = gpu_arch_type == "cuda" SCRIPT_DIR = Path(__file__).parent @@ -17,10 +21,36 @@ # torchaudio 0.13.0.dev20220922 py39_cu102 pytorch-nightly def get_anaconda_output_for_package(pkg_name_str): import subprocess as sp - cmd = 'conda list ' + pkg_name_str + ' |grep ' + pkg_name_str + + # ignore the header row: + # Name Version Build Channel + cmd = 'conda list -f ' + pkg_name_str + ' |tail -n 1 ' output = sp.getoutput(cmd) return output +# only makes sense to check nightly package where dates are known +def check_nightly_binaries_date() -> None: + torch_str = torch.__version__ + ta_str = torchaudio.__version__ + tv_str = torchvision.__version__ + + date_t_str = re.findall('dev\d+', torch.__version__ ) + date_ta_str = re.findall('dev\d+', torchaudio.__version__ ) + date_tv_str = re.findall('dev\d+', torchvision.__version__ ) + + # check that the above three lists are equal and none of them is empty + if not date_t_str or not date_t_str == date_ta_str == date_tv_str: + raise RuntimeError(f"Expected torch, torchaudio, torchvision to be the same date. But they are from {date_t_str}, {date_ta_str}, {date_tv_str} respectively") + + # check that the date is recent, at this point, date_torch_str is not empty + binary_date_str = date_t_str[0][3:] + from datetime import datetime + + binary_date_obj = datetime.strptime(binary_date_str, '%Y%m%d').date() + today_obj = datetime.today().date() + delta = today_obj - binary_date_obj + if delta.days >= 2: + raise RuntimeError(f"the binaries are from {binary_date_obj} and are more than 2 days old!") def smoke_test_cuda() -> None: @@ -41,7 +71,6 @@ def smoke_test_cuda() -> None: torchaudio_allstr = get_anaconda_output_for_package(torchaudio.__name__) print('cu' + str(gpu_arch_ver).replace(".", "")) if 'cu'+str(gpu_arch_ver).replace(".", "") not in torchaudio_allstr: - import re loaded_cuda_str = re.findall('cu\d+', torchaudio_allstr)[0] raise RuntimeError(f"Wrong CUDA version. Loaded: {loaded_cuda_str} Expected: {gpu_arch_ver}") @@ -121,6 +150,8 @@ def main() -> None: print(f"torch: {torch.__version__}") print(f"torchvision: {torchvision.__version__}") print(f"torchaudio: {torchaudio.__version__}") + if installation_str.find('nightly') != -1: + check_nightly_binaries_date() smoke_test_cuda() #smoke_test_conv2d() #smoke_test_torchaudio() From 322c2b48be4357ca0ed9eb02b6a8de57174bdb05 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Mon, 26 Sep 2022 20:54:01 +0000 Subject: [PATCH 06/15] fix torchaudio cuda check --- test/smoke_test/smoke_test.py | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/test/smoke_test/smoke_test.py b/test/smoke_test/smoke_test.py index 1a377541f..3fd74a43f 100644 --- a/test/smoke_test/smoke_test.py +++ b/test/smoke_test/smoke_test.py @@ -62,19 +62,10 @@ def smoke_test_cuda() -> None: print(f"torch cuda: {torch.version.cuda}") # todo add cudnn version validation print(f"torch cudnn: {torch.backends.cudnn.version()}") - # leverage torchvision's existing cuda check: raise runtime error if mismatch - - - # check torchaudio's cuda version against system cuda version - # torchaudio runtime does not retain cuda version - # relying solely on anaconda output - torchaudio_allstr = get_anaconda_output_for_package(torchaudio.__name__) - print('cu' + str(gpu_arch_ver).replace(".", "")) - if 'cu'+str(gpu_arch_ver).replace(".", "") not in torchaudio_allstr: - loaded_cuda_str = re.findall('cu\d+', torchaudio_allstr)[0] - raise RuntimeError(f"Wrong CUDA version. Loaded: {loaded_cuda_str} Expected: {gpu_arch_ver}") - + # just print out cuda version, as version check were perform during import + print(f"torchvision cuda: {torch.ops.torchvision._cuda_version()}") + print(f"torchaudio cuda: {torch.ops.torchaudio.cuda_version()}") def smoke_test_conv2d() -> None: import torch.nn as nn From 3ffe0ae2f4249837e21482add8fb1941267113d2 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Mon, 26 Sep 2022 23:33:10 +0000 Subject: [PATCH 07/15] fix torchaudio cuda version check --- test/smoke_test/smoke_test.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/test/smoke_test/smoke_test.py b/test/smoke_test/smoke_test.py index 3fd74a43f..ae2a6581a 100644 --- a/test/smoke_test/smoke_test.py +++ b/test/smoke_test/smoke_test.py @@ -63,9 +63,20 @@ def smoke_test_cuda() -> None: # todo add cudnn version validation print(f"torch cudnn: {torch.backends.cudnn.version()}") - # just print out cuda version, as version check were perform during import - print(f"torchvision cuda: {torch.ops.torchvision._cuda_version()}") - print(f"torchaudio cuda: {torch.ops.torchaudio.cuda_version()}") + + if installation_str.find('nightly') != -1: + # just print out cuda version, as version check were perform during import + print(f"torchvision cuda: {torch.ops.torchvision._cuda_version()}") + print(f"torchaudio cuda: {torch.ops.torchaudio.cuda_version()}") + else: + # torchaudio runtime added the cuda verison check on 09/23/2022 via + # https://github.com/pytorch/audio/pull/2707 + # so relying on anaconda output for pytorch-test and pytorch channel + torchaudio_allstr = get_anaconda_output_for_package(torchaudio.__name__) + if 'cu'+str(gpu_arch_ver).replace(".", "") not in torchaudio_allstr: + raise RuntimeError(f"CUDA version mismatch. Loaded: {torchaudio_allstr.replace(" ", "")} Expected: {gpu_arch_ver}") + + def smoke_test_conv2d() -> None: import torch.nn as nn From 22c6850dfbced98ff05c8dca1d16dcf5c4cf597c Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Mon, 26 Sep 2022 23:45:44 +0000 Subject: [PATCH 08/15] smoke test fix --- test/smoke_test/smoke_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/smoke_test/smoke_test.py b/test/smoke_test/smoke_test.py index ae2a6581a..529fe7eb6 100644 --- a/test/smoke_test/smoke_test.py +++ b/test/smoke_test/smoke_test.py @@ -74,7 +74,7 @@ def smoke_test_cuda() -> None: # so relying on anaconda output for pytorch-test and pytorch channel torchaudio_allstr = get_anaconda_output_for_package(torchaudio.__name__) if 'cu'+str(gpu_arch_ver).replace(".", "") not in torchaudio_allstr: - raise RuntimeError(f"CUDA version mismatch. Loaded: {torchaudio_allstr.replace(" ", "")} Expected: {gpu_arch_ver}") + raise RuntimeError(f"CUDA version issue. Loaded: {torchaudio_allstr} Expected: {gpu_arch_ver}") From 1745f15fedba9061457bccbb7b277ea112021b32 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Tue, 27 Sep 2022 00:29:48 +0000 Subject: [PATCH 09/15] add is_cuda_system check --- test/smoke_test/smoke_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/smoke_test/smoke_test.py b/test/smoke_test/smoke_test.py index 529fe7eb6..8f9c0bfa8 100644 --- a/test/smoke_test/smoke_test.py +++ b/test/smoke_test/smoke_test.py @@ -73,7 +73,7 @@ def smoke_test_cuda() -> None: # https://github.com/pytorch/audio/pull/2707 # so relying on anaconda output for pytorch-test and pytorch channel torchaudio_allstr = get_anaconda_output_for_package(torchaudio.__name__) - if 'cu'+str(gpu_arch_ver).replace(".", "") not in torchaudio_allstr: + if is_cuda_system and 'cu'+str(gpu_arch_ver).replace(".", "") not in torchaudio_allstr: raise RuntimeError(f"CUDA version issue. Loaded: {torchaudio_allstr} Expected: {gpu_arch_ver}") From f656e9036b296ff9288f365b942233db6f193484 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Wed, 28 Sep 2022 05:00:01 +0000 Subject: [PATCH 10/15] Add windows installation env --- .github/actions/validate-windows-binary/action.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/actions/validate-windows-binary/action.yml b/.github/actions/validate-windows-binary/action.yml index 7214a813b..be8c7a443 100644 --- a/.github/actions/validate-windows-binary/action.yml +++ b/.github/actions/validate-windows-binary/action.yml @@ -38,6 +38,7 @@ runs: env: GPU_ARCH_VER: ${{ inputs.gpu_arch_ver }} GPU_ARCH_TYPE: ${{ inputs.gpu_arch_type }} + INSTALLATION: ${{ inputs.installation }} CUDA_VER: ${{ inputs.desired_cuda }} run: | conda install numpy pillow python=${{ inputs.python_version }} From 9af448e26646a3efe2fcf869b3bf2462fe4c334c Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Wed, 28 Sep 2022 06:12:43 +0000 Subject: [PATCH 11/15] change the order of cuda version check and date check --- test/smoke_test/smoke_test.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/smoke_test/smoke_test.py b/test/smoke_test/smoke_test.py index 8f9c0bfa8..937e4a69a 100644 --- a/test/smoke_test/smoke_test.py +++ b/test/smoke_test/smoke_test.py @@ -65,7 +65,7 @@ def smoke_test_cuda() -> None: if installation_str.find('nightly') != -1: - # just print out cuda version, as version check were perform during import + # just print out cuda version, as version check were already performed during import print(f"torchvision cuda: {torch.ops.torchvision._cuda_version()}") print(f"torchaudio cuda: {torch.ops.torchaudio.cuda_version()}") else: @@ -152,9 +152,9 @@ def main() -> None: print(f"torch: {torch.__version__}") print(f"torchvision: {torchvision.__version__}") print(f"torchaudio: {torchaudio.__version__}") + smoke_test_cuda() if installation_str.find('nightly') != -1: check_nightly_binaries_date() - smoke_test_cuda() #smoke_test_conv2d() #smoke_test_torchaudio() #smoke_test_torchvision() From 602f089436630d7c6c18959cec10b7bb91d1c440 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Fri, 30 Sep 2022 06:17:45 +0000 Subject: [PATCH 12/15] Avoid the use of tail for OS portability --- test/smoke_test/smoke_test.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/smoke_test/smoke_test.py b/test/smoke_test/smoke_test.py index 937e4a69a..ca694947e 100644 --- a/test/smoke_test/smoke_test.py +++ b/test/smoke_test/smoke_test.py @@ -24,9 +24,10 @@ def get_anaconda_output_for_package(pkg_name_str): # ignore the header row: # Name Version Build Channel - cmd = 'conda list -f ' + pkg_name_str + ' |tail -n 1 ' + cmd = 'conda list -f ' + pkg_name_str output = sp.getoutput(cmd) - return output + # Get the last line only + return output.strip().split('\n')[-1] # only makes sense to check nightly package where dates are known def check_nightly_binaries_date() -> None: From 709798089cfbb209a242417ba9d7b174c6d0f915 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Tue, 4 Oct 2022 22:50:39 +0000 Subject: [PATCH 13/15] uncomment other checks --- test/smoke_test/smoke_test.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/test/smoke_test/smoke_test.py b/test/smoke_test/smoke_test.py index ca694947e..16f020e4a 100644 --- a/test/smoke_test/smoke_test.py +++ b/test/smoke_test/smoke_test.py @@ -156,11 +156,11 @@ def main() -> None: smoke_test_cuda() if installation_str.find('nightly') != -1: check_nightly_binaries_date() - #smoke_test_conv2d() - #smoke_test_torchaudio() - #smoke_test_torchvision() - #smoke_test_torchvision_read_decode() - #smoke_test_torchvision_resnet50_classify() + smoke_test_conv2d() + smoke_test_torchaudio() + smoke_test_torchvision() + smoke_test_torchvision_read_decode() + smoke_test_torchvision_resnet50_classify() if __name__ == "__main__": main() From d317ae998be81b9e62278433be9b7ca70affc242 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Wed, 5 Oct 2022 06:20:45 +0000 Subject: [PATCH 14/15] Add cudnn enabled print --- test/smoke_test/smoke_test.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/smoke_test/smoke_test.py b/test/smoke_test/smoke_test.py index 16f020e4a..bb6217ae9 100644 --- a/test/smoke_test/smoke_test.py +++ b/test/smoke_test/smoke_test.py @@ -63,6 +63,8 @@ def smoke_test_cuda() -> None: print(f"torch cuda: {torch.version.cuda}") # todo add cudnn version validation print(f"torch cudnn: {torch.backends.cudnn.version()}") + print(f"cuDNN enabled? {torch.backends.cudnn.enabled}") + if installation_str.find('nightly') != -1: From 8f471884a34ddba03e454e6e245628cae4f54edf Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Wed, 5 Oct 2022 16:42:41 +0000 Subject: [PATCH 15/15] cosmetic fixes --- test/smoke_test/smoke_test.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/test/smoke_test/smoke_test.py b/test/smoke_test/smoke_test.py index bb6217ae9..7a49581b7 100644 --- a/test/smoke_test/smoke_test.py +++ b/test/smoke_test/smoke_test.py @@ -11,9 +11,8 @@ gpu_arch_ver = os.getenv("GPU_ARCH_VER") gpu_arch_type = os.getenv("GPU_ARCH_TYPE") -# need installation env variable to tell nightly +# use installation env variable to tell if it is nightly channel installation_str = os.getenv("INSTALLATION") -print(installation_str) is_cuda_system = gpu_arch_type == "cuda" SCRIPT_DIR = Path(__file__).parent @@ -29,7 +28,6 @@ def get_anaconda_output_for_package(pkg_name_str): # Get the last line only return output.strip().split('\n')[-1] -# only makes sense to check nightly package where dates are known def check_nightly_binaries_date() -> None: torch_str = torch.__version__ ta_str = torchaudio.__version__ @@ -64,8 +62,6 @@ def smoke_test_cuda() -> None: # todo add cudnn version validation print(f"torch cudnn: {torch.backends.cudnn.version()}") print(f"cuDNN enabled? {torch.backends.cudnn.enabled}") - - if installation_str.find('nightly') != -1: # just print out cuda version, as version check were already performed during import @@ -78,8 +74,6 @@ def smoke_test_cuda() -> None: torchaudio_allstr = get_anaconda_output_for_package(torchaudio.__name__) if is_cuda_system and 'cu'+str(gpu_arch_ver).replace(".", "") not in torchaudio_allstr: raise RuntimeError(f"CUDA version issue. Loaded: {torchaudio_allstr} Expected: {gpu_arch_ver}") - - def smoke_test_conv2d() -> None: import torch.nn as nn @@ -156,8 +150,11 @@ def main() -> None: print(f"torchvision: {torchvision.__version__}") print(f"torchaudio: {torchaudio.__version__}") smoke_test_cuda() + + # only makes sense to check nightly package where dates are known if installation_str.find('nightly') != -1: check_nightly_binaries_date() + smoke_test_conv2d() smoke_test_torchaudio() smoke_test_torchvision()