Ë
    ùÿæiŽ  ã            	       óÖ  — d dl Z d dlZe j                  defd„«       Ze j                  defd„«       Ze j                  ddeeeef   deeeef   fd„«       Ze j                  defd„«       Z	e j                  defd„«       Z
e j                  defd	„«       Ze j                  defd
„«       Ze j                  defd„«       Ze j                  defd„«       Ze j                  defd„«       Zy)é    NÚreturnc                  ó,   — 	 ddl } y# t        $ r Y yw xY w)zCheck if JAX is installed.r   NTF)ÚjaxÚImportError)r   s    úh/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/torch/utils/_pallas.pyÚhas_jax_packager      s   € ðÛàøÜò Ùðúó   ‚ ‡	’c                  óF   — t        «       sy	 ddlm}  y# t        $ r Y yw xY w)z0Check if Pallas (JAX experimental) is available.Fr   )ÚpallasT)r   Újax.experimentalr   r   )Úpls    r   Úhas_pallas_packager      s.   € ô ÔØðõ	
ð øÜò Ùðús   � ”	 Ÿ Úfallbackc                 ó¤   — 	 ddl }|j                  j                  d«      }d„ |dd D «       \  }}}|||fS # t        t        t
        f$ r | cY S w xY w)z/Get JAX version as (major, minor, patch) tuple.r   NÚ.c              3   ó2   K  — | ]  }t        |«      –— Œ y ­w)N)Úint)Ú.0Úvs     r   Ú	<genexpr>z"get_jax_version.<locals>.<genexpr>'   s   è ø€ ÐAÑ/@¨!œs 1ŸvÑ/@ùs   ‚é   )r   Ú__version__Úsplitr   Ú
ValueErrorÚAttributeError)r   r   Úversion_partsÚmajorÚminorÚpatchs         r   Úget_jax_versionr        s^   € ðÛàŸ™×-Ñ-¨cÓ2ˆÙA¨}¸R¸aÑ/@ÓAÑˆˆu�eØ�u˜eÐ$Ð$øÜœ¤^Ð4ò ØŠðús   ‚36 ¶AÁAc                  ó  — t        «       sy	 ddl} | j                  d«      }t        |«      dk(  ryt        j
                  j                  «       r't        j
                  j                  «       \  }}|dk  ryy# t        $ r Y yw xY w)zJCheck if JAX has CUDA backend support with SM90+ (required by Mosaic GPU).Fr   NÚgpué	   T)	r   r   ÚdevicesÚlenÚtorchÚcudaÚis_availableÚget_device_capabilityÚ	Exception)r   r$   r   r   s       r   Úhas_jax_cuda_backendr+   -   s{   € ô ÔØðÛð —+‘+˜eÓ$ˆÜˆw‹<˜1ÒØô �:‰:×"Ñ"Ô$Ü Ÿ:™:×;Ñ;Ó=‰LˆE�5Ø�qŠyØàøÜò Ùðús   �#A7 ±AA7 Á7	BÂBc                  ó~   — t        «       sy	 ddl} | j                  d«      }t        |«      dkD  S # t        $ r Y yw xY w)z%Check if JAX has TPU backend support.Fr   NÚtpu)r   r   r$   r%   r*   )r   r$   s     r   Úhas_jax_tpu_backendr.   E   sF   € ô ÔØðÛð —+‘+˜eÓ$ˆÜ�7‹|˜aÑÐøÜò Ùðús   �"0 °	<»<c                  ó,   — 	 ddl } y# t        $ r Y yw xY w)z Check if torch_tpu is available.r   NTF)Ú	torch_tpur   )r0   s    r   Úhas_torch_tpur1   T   s   € ðÛàøÜò Ùðúr	   c                  ó   — t        «       S )z,Checks for a full Pallas-on-CPU environment.)r   © ó    r   Úhas_cpu_pallasr5   _   s   € ô ÓÐr4   c                  ón   — t        «       xr* t        j                  j                  «       xr
 t	        «       S )z-Checks for a full Pallas-on-CUDA environment.)r   r&   r'   r(   r+   r3   r4   r   Úhas_cuda_pallasr7   e   s(   € ô ÓÒX¤E§J¡J×$;Ñ$;Ó$=ÒXÔBVÓBXÐXr4   c                  ó.   — t        «       xr
 t        «       S )z,Checks for a full Pallas-on-TPU environment.)r   r1   r3   r4   r   Úhas_tpu_pallasr9   k   s   € ô ÓÒ3¤M£OÐ3r4   c                  óF   — t        «       xs t        «       xs
 t        «       S )zì
    Check if Pallas backend is fully available for use.

    Requirements:
    - JAX package installed
    - Pallas (jax.experimental.pallas) available
    - A compatible backend (CUDA or TPU) is available in both PyTorch and JAX.
    )r5   r7   r9   r3   r4   r   Ú
has_pallasr;   q   s   € ô ÓÒDœÓ0ÒD´NÓ4DÐDr4   ))r   r   r   )Ú	functoolsr&   ÚcacheÚboolr   r   Útupler   r    r+   r.   r1   r5   r7   r9   r;   r3   r4   r   Ú<module>r@      se  ðÛ ã ð ‡�ð˜ò ó ðð ‡�ð˜Dò ó ðð ‡�ñ	˜e C¨¨c MÑ2ð 	À5ÈÈcÐSVÈÑCWò 	ó ð	ð ‡�ð˜dò ó ðð. ‡�ð˜Tò ó ðð ‡�ð�tò ó ðð ‡�ð ˜ò  ó ð ð
 ‡�ðY˜ò Yó ðYð
 ‡�ð4˜ò 4ó ð4ð
 ‡�ð	E�Dò 	Eó ñ	Er4   