o  iS @sXddlmZddlZddlZddlZddgZedd ddZedd ddZdS) ) annotationsNhas_ampere_or_laterdetect_default_tf32returnboolc Csddl}ddlm}m}|jjr||jjdsdS|d\}}|s$dSz@z(|t|D]}| |}| |\}}|dkrKWW| dSq0Wn t yVYnwW| dSW| dS| w) z5 Check if there is any Ampere and later GPU. rN)optional_import version_geqz11.0FpynvmlT) torchmonai.utils.modulerrversioncudanvmlInitrangeZnvmlDeviceGetCountnvmlDeviceGetHandleByIndex"nvmlDeviceGetCudaComputeCapability nvmlShutdown BaseException) r rrr has_pynvmlihandlemajor_rR/home/dell461/cl/sdc2/last_ska_mid/HISourceFinder-master-l/src/monai/utils/tf32.pyrs6     cCsd}z,ts WdSddi}|D]\}}tj||kr+td|d|dd}q|WStyCdd lm }| r@YdSw) zo Detect if there is anything that may enable TF32 mode by default. If any, show a warning message. FNVIDIA_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-acceleratingTr) MONAIEnvVars) ritemsosenvirongetwarningswarnrZmonai.utils.miscrdebug)Zmay_enable_tf32Zoverride_tf32_env_varsnameZ override_valrrrrr4s&  )rr) __future__r functoolsr r#__all__ lru_cacherrrrrrs