ó
    EñiS  ã                   óò   • % S SK Jr  S SKJrJr  S SKrS SKJr	  / SQr
S\4S jr\S\4S j5       r\S	\S
\S\4S j5       r\SS
\S\4S jj5       r\S\4S j5       r\S\4S j5       rSq\\	   \S'   SS jrg)é    )Ú	lru_cache)ÚOptionalÚTYPE_CHECKINGN)ÚLibrary)Úget_core_countÚget_nameÚis_builtÚis_availableÚis_macos13_or_newerÚis_macos_or_newerÚreturnc                  ó6   • [         R                  R                  $ )zãReturn whether PyTorch is built with MPS support.

Note that this doesn't necessarily mean MPS is available; just that
if this PyTorch binary were run a machine with working MPS drivers
and devices, we would be able to use it.
)ÚtorchÚ_CÚ_has_mps© ó    ÚX/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/backends/mps/__init__.pyr	   r	      s   € ô �8‰8×ÑÐr   c                  ó>   • [         R                  R                  5       $ )z7Return a bool indicating if MPS is currently available.)r   r   Ú_mps_is_availabler   r   r   r
   r
      s   € ô �8‰8×%Ñ%Ó'Ð'r   ÚmajorÚminorc                 ó@   • [         R                  R                  X5      $ )zHReturn a bool indicating whether MPS is running on given MacOS or newer.©r   r   Ú_mps_is_on_macos_or_newer)r   r   s     r   r   r   "   s   € ô �8‰8×-Ñ-¨eÓ;Ð;r   c                 óB   • [         R                  R                  SU 5      $ )zEReturn a bool indicating whether MPS is running on MacOS 13 or newer.é   r   )r   s    r   r   r   (   s   € ô �8‰8×-Ñ-¨b°%Ó8Ð8r   c                  ó>   • [         R                  R                  5       $ )zReturn Metal device name)r   r   Ú_mps_get_namer   r   r   r   r   .   s   € ô �8‰8×!Ñ!Ó#Ð#r   c                  ó>   • [         R                  R                  5       $ )zåReturn GPU core count.

According to the documentation, one core is comprised of 16 Execution Units.
One execution Unit has 8 ALUs.
And one ALU can run 24 threads, i.e. one core is capable of executing 3072 threads concurrently.
)r   r   Ú_mps_get_core_countr   r   r   r   r   4   s   € ô �8‰8×'Ñ'Ó)Ð)r   Ú_libc                  ó¾   • [         c  [        5       (       d  gSSKJn   SSKJn  [        SS5      q [         R                  SUS5        [         R                  S	U S5        g)
z<Register prims as implementation of var_mean and group_norm.Nr   )Únative_group_norm_backward)Únative_group_normÚatenÚIMPLr%   ÚMPSr$   )r"   r	   Útorch._decomp.decompositionsr$   Útorch._refsr%   Ú_LibraryÚimpl)r$   r%   s     r   Ú_initr-   B   sI   € ô ÑœxŸz™zØåGÝ-ä�F˜FÓ#€DÜ‡I�IÐ!Ð#4°eÔ<Ü‡I�IÐ*Ð,FÈÕNr   )r   )r   N)Ú	functoolsr   Ú
_lru_cacheÚtypingr   r   r   Útorch.libraryr   r+   Ú__all__Úboolr	   r
   Úintr   r   Ústrr   r   r"   Ú__annotations__r-   r   r   r   Ú<module>r7      s×   ðÞ -ß *ã Ý -ò€ð�$ô ð ð(�dó (ó ð(ð
 ð<˜Sð <¨ð <°ó <ó ð<ð
 ñ9˜sð 9¨4ô 9ó ð9ð
 ð$�#ó $ó ð$ð
 ð*˜ó *ó ð*ð  €€hˆxÑÓ õOr   