+
    ˜°³j¬  ã                   ó¾  € ^ RI t ^ RIt] P                  R R l4       t] P                  R R l4       t] P                  RR R ll4       t] P                  R R	 l4       t] P                  R
 R l4       t] P                  R R l4       t] P                  R R l4       t	] P                  R R l4       t
] P                  R R l4       t] P                  R R l4       tR# )é    Nc                ó$   € V ^8„  d   QhR\         /# ©é   Úreturn©Úbool)Úformats   "ÚT/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/utils/_pallas.pyÚ__annotate__r      s   € ÷ ñ œñ ó    c                 ó4   €  ^ RI p R#   \         d     R# i ; i)zCheck if JAX is installed.NTF)ÚjaxÚImportError)r   s    r
   Úhas_jax_packager      s   € ðÛáøÜô Úðús   ‚ ˆ–c                ó$   € V ^8„  d   QhR\         /# r   r   )r	   s   "r
   r   r      s   € ÷ ñ œDñ r   c                 ó\   € \        4       '       g   R#  ^ RIHp  R#   \         d     R# i ; i)z0Check if Pallas (JAX experimental) is available.F)ÚpallasT)r   Újax.experimentalr   r   )Úpls    r
   Úhas_pallas_packager      s1   € ô ×ÒÙðõ	
ñ øÜô Úðús   ” œ+ª+c                óˆ   € V ^8„  d   QhR\         \        \        \        3,          R\         \        \        \        3,          /# )r   Úfallbackr   )ÚtupleÚint)r	   s   "r
   r   r   !   s1   € ÷ 	ñ 	œe¤C¬¬c MÕ2ð 	Ä5ÌÌcÔSVÈÕCWñ 	r   c                ó¬   €  ^ RI pVP                  P                  R4      pR VR,           4       w  r4pW4V3#   \        \        \
        3 d    T u # i ; i)z/Get JAX version as (major, minor, patch) tuple.NÚ.c              3   ó8   "  € T F  p\        V4      x € K  	  R # 5i)N)r   )Ú.0Úvs   & r
   Ú	<genexpr>Ú"get_jax_version.<locals>.<genexpr>'   s   é € ÐAÑ/@¨!œs 1Ÿv˜vÓ/@ùs   ‚:Né   N)r   Ú__version__Úsplitr   Ú
ValueErrorÚAttributeError)r   r   Úversion_partsÚmajorÚminorÚpatchs   &     r
   Úget_jax_versionr+       sX   € ðÛàŸ™×-Ñ-¨cÓ2ˆÙA¨}¸RÖ/@ÓAÑˆ�eØ˜eÐ$Ð$øÜœ¤^Ð4ô ØŠðús   ‚58 ¸AÁAc                ó$   € V ^8„  d   QhR\         /# r   r   )r	   s   "r
   r   r   .   s   € ÷ ñ œdñ r   c                 ó8  € \        4       '       g   R#  ^ RIp V P                  R4      p\        V4      ^ 8X  d   R# \        P
                  P                  4       '       d*   \        P
                  P                  4       w  r#V^	8  d   R# R#   \         d     R# i ; i)zJCheck if JAX has CUDA backend support with SM90+ (required by Mosaic GPU).FNÚgpuT)	r   r   ÚdevicesÚlenÚtorchÚcudaÚis_availableÚget_device_capabilityÚ	Exception)r   r/   r(   r)   s       r
   Úhas_jax_cuda_backendr6   -   s   € ô ×ÒÙðÛð —+‘+˜eÓ$ˆÜˆw‹<˜1ÔÙô �:‰:×"Ñ"×$Ò$Ü Ÿ:™:×;Ñ;Ó=‰LˆEØ�qŒyÙáøÜô Úðús   ”%B
 »#B
 Á'B
 Â
BÂBc                ó$   € V ^8„  d   QhR\         /# r   r   )r	   s   "r
   r   r   F   s   € ÷ ñ œTñ r   c                 ó’   € \        4       '       g   R#  ^ RIp V P                  R4      p\        V4      ^ 8„  #   \         d     R# i ; i)z%Check if JAX has TPU backend support.FNÚtpu)r   r   r/   r0   r5   )r   r/   s     r
   Úhas_jax_tpu_backendr:   E   sI   € ô ×ÒÙðÛð —+‘+˜eÓ$ˆÜ�7‹|˜aÑÐøÜô Úðús   ”"7 ·AÁAc                ó$   € V ^8„  d   QhR\         /# r   r   )r	   s   "r
   r   r   U   s   € ÷ "ñ "”tñ "r   c                 ó,   € \        \        RR4      p V RJ# )z.Check if torch_tpu is installed and available.r9   N)Úgetattrr1   )Ú
tpu_modules    r
   Úhas_torch_tpur?   T   s   € ô œ  tÓ,€JØ˜TÐ!Ð!r   c                ó$   € V ^8„  d   QhR\         /# r   r   )r	   s   "r
   r   r   ]   s   € ÷  ñ  œñ  r   c                 ó   € \        4       # )z,Checks for a full Pallas-on-CPU environment.)r   © r   r
   Úhas_cpu_pallasrC   \   s   € ô ÓÐr   c                ó$   € V ^8„  d   QhR\         /# r   r   )r	   s   "r
   r   r   c   s   € ÷ Yñ Yœñ Yr   c                 ó†   € \        4       ;'       d1    \        P                  P                  4       ;'       d    \	        4       # )z-Checks for a full Pallas-on-CUDA environment.)r   r1   r2   r3   r6   rB   r   r
   Úhas_cuda_pallasrF   b   s.   € ô Ó×XÐX¤E§J¡J×$;Ñ$;Ó$=×XÐXÔBVÓBXÐXr   c                ó$   € V ^8„  d   QhR\         /# r   r   )r	   s   "r
   r   r   i   s   € ÷ Nñ Nœñ Nr   c                 ó^   € \        4       ;'       d    \        4       ;'       d    \        4       # )z,Checks for a full Pallas-on-TPU environment.)r   r:   r?   rB   r   r
   Úhas_tpu_pallasrI   h   s#   € ô Ó×MÐMÔ$7Ó$9×MÐM¼m»oÐMr   c                ó$   € V ^8„  d   QhR\         /# r   r   )r	   s   "r
   r   r   o   s   € ÷ 	Eñ 	E”Dñ 	Er   c                 ó^   € \        4       ;'       g    \        4       ;'       g    \        4       # )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.
)rC   rF   rI   rB   r   r
   Ú
has_pallasrL   n   s#   € ô Ó×DÐDœÓ0×DÐD´NÓ4DÐDr   ))r   r   r   )Ú	functoolsr1   Úcacher   r   r+   r6   r:   r?   rC   rF   rI   rL   rB   r   r
   Ú<module>rO      s  ðÛ ã ð ‡�ôó ðð ‡�ôó ðð ‡�ö	ó ð	ð ‡�ôó ðð. ‡�ôó ðð ‡�ô"ó ð"ð ‡�ô ó ð ð
 ‡�ôYó ðYð
 ‡�ôNó ðNð
 ‡�ô	Eó ò	Er   