§
    �Štj¬  ã            	       ó¼  — 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dS )é    NÚreturnc                  ó2   — 	 ddl } dS # t          $ r Y dS w xY w)zCheck if JAX is installed.r   NTF)ÚjaxÚImportError)r   s    úQ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/utils/_pallas.pyÚhas_jax_packager      s7   € ðØˆ
ˆ
ˆ
àˆtøÝð ð ð Øˆuˆuðøøøs   ‚ ˆ
•c                  óV   — t          ¦   «         sdS 	 ddlm}  dS # t          $ r Y dS w xY w)z0Check if Pallas (JAX experimental) is available.Fr   )ÚpallasT)r   Újax.experimentalr
   r   )Úpls    r   Úhas_pallas_packager      sc   € õ ÑÔð Øˆuðð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð ˆtøÝð ð ð Øˆuˆuðøøøs   ’ š
(§(©r   r   r   Úfallbackc                 ó¸   — 	 ddl }|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   ó4   K  — | ]}t          |¦  «        V — Œd S )N)Úint)Ú.0Úvs     r   ú	<genexpr>z"get_jax_version.<locals>.<genexpr>'   s(   è è € ÐAÐA¨!�s 1™vœvÐAÐAÐAÐAÐAÐAó    é   )r   Ú__version__Úsplitr   Ú
ValueErrorÚAttributeError)r   r   Úversion_partsÚmajorÚminorÚpatchs         r   Úget_jax_versionr!       s€   € ðØˆ
ˆ
ˆ
àœ×-Ò-¨cÑ2Ô2ˆØAÐA¨}¸R¸a¸RÔ/@ÐAÑAÔAÑˆˆu�eØ�u˜eÐ$Ð$øÝ�¥^Ð4ð ð ð Øˆˆˆðøøøs   ‚:= ½AÁAc                  ó4  — t          ¦   «         sdS 	 ddl} |                      d¦  «        }t          |¦  «        dk    rdS t          j                             ¦   «         r)t          j                             ¦   «         \  }}|dk     rdS dS # t          $ r Y dS 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²   € õ ÑÔð ØˆuðØˆ
ˆ
ˆ
ð —+’+˜eÑ$Ô$ˆÝˆw‰<Œ<˜1ÒÐØ�5õ Œ:×"Ò"Ñ$Ô$ð 	Ý œ:×;Ò;Ñ=Ô=‰LˆE�5Ø�qŠyˆyØ�uàˆtøÝð ð ð Øˆuˆuðøøøs   ’,B	 Á AB	 Â	
BÂBc                  óž   — t          ¦   «         sdS 	 ddl} |                      d¦  «        }t          |¦  «        dk    S # t          $ r Y dS 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   sk   € õ ÑÔð ØˆuðØˆ
ˆ
ˆ
ð —+’+˜eÑ$Ô$ˆÝ�7‰|Œ|˜aÒÐøÝð ð ð Øˆuˆuðøøøs   ’+> ¾
AÁAc                  ó6   — t          t          dd¦  «        } | duS )z.Check if torch_tpu is installed and available.r.   N)Úgetattrr'   )Ú
tpu_modules    r   Úhas_torch_tpur3   T   s    € õ �  tÑ,Ô,€JØ˜TÐ!Ð!r   c                  ó   — t          ¦   «         S )z,Checks for a full Pallas-on-CPU environment.)r   © r   r   Úhas_cpu_pallasr6   \   s   € õ ÑÔÐr   c                  óv   — t          ¦   «         o+t          j                             ¦   «         ot	          ¦   «         S )z-Checks for a full Pallas-on-CUDA environment.)r   r'   r(   r)   r,   r5   r   r   Úhas_cuda_pallasr8   b   s/   € õ ÑÔÐX¥E¤J×$;Ò$;Ñ$=Ô$=ÐXÕBVÑBXÔBXÐXr   c                  óV   — t          ¦   «         ot          ¦   «         ot          ¦   «         S )z,Checks for a full Pallas-on-TPU environment.)r   r/   r3   r5   r   r   Úhas_tpu_pallasr:   h   s%   € õ ÑÔÐMÕ$7Ñ$9Ô$9ÐM½m¹o¼oÐMr   c                  óV   — t          ¦   «         pt          ¦   «         p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.
    )r6   r8   r:   r5   r   r   Ú
has_pallasr<   n   s&   € õ ÑÔÐD�Ñ0Ô0ÐDµNÑ4DÔ4DÐDr   )r   )Ú	functoolsr'   ÚcacheÚboolr   r   Útupler   r!   r,   r/   r3   r6   r8   r:   r<   r5   r   r   ú<module>rA      sò  ðØ Ð Ð Ð à €€€ð „ð˜ð ð ð ñ „ðð „ð˜Dð ð ð ñ „ðð „ð	ð 	˜e C¨¨c MÔ2ð 	À5ÈÈcÐSVÈÔCWð 	ð 	ð 	ñ „ð	ð „ð˜dð ð ð ñ „ðð. „ð˜Tð ð ð ñ „ðð „ð"�tð "ð "ð "ñ „ð"ð „ð ˜ð  ð  ð  ñ „ð ð
 „ðY˜ð Yð Yð Yñ „ðYð
 „ðN˜ð Nð Nð Nñ „ðNð
 „ð	E�Dð 	Eð 	Eð 	Eñ „ð	Eð 	Eð 	Er   