U PhE @s`ddlmZddlZddlZddlZddgZedddddZedddddZdS) ) annotationsNhas_ampere_or_laterdetect_default_tf32bool)returnc Csddl}ddlm}m}|jjr0||jjds4dS|d\}}|sHdSzdzJ|t| D]0}| |}| |\}}|dkr`WW"dSq`Wnt k rYnXW5|XdS) z5 Check if there is any Ampere and later GPU. rN)optional_import version_geqz11.0FpynvmlT) torchmonai.utils.modulerrversioncudaZ nvmlShutdownnvmlInitrangeZnvmlDeviceGetCountnvmlDeviceGetHandleByIndexZ"nvmlDeviceGetCudaComputeCapability BaseException) r rrr Z has_pynvmlihandlemajor_rE/home/dell461/cl/sdc2/HISourceFinder-master-l/src/monai/utils/tf32.pyrs$    cCsd}ztsWdSddlm}|dddrD|dddsDtdd}d d i}|D]4\}}tj||krTtd |d |d d}qT|WSt k rddl m }| rYdSXdS)zo Detect if there is anything that may enable TF32 mode by default. If any, show a warning message. Fr) pytorch_after ztorch.backends.cuda.matmul.allow_tf32 = True by default. This value defaults to True when PyTorch version in [1.7, 1.11] and may affect precision. See https://docs.monai.io/en/latest/precision_accelerating.html#precision-and-acceleratingTNVIDIA_TF32_OVERRIDE1zEnvironment variable `z = z` is set. This environment variable may enable TF32 mode accidentally and affect precision. See https://docs.monai.io/en/latest/precision_accelerating.html#precision-and-accelerating) MONAIEnvVarsN) rr rwarningswarnitemsosenvirongetrZmonai.utils.miscrdebug)Zmay_enable_tf32rZoverride_tf32_env_varsnameZ override_valrrrrr4s.  ) __future__r functoolsr#r __all__ lru_cacherrrrrr s