Ë
    [^(hK5  ã                   ó  — U d Z ddlZddlZddlZddlmZmZmZmZm	Z	 ddl
Z
ddlZddlZddlZej                  j                  «       Zexr ej                  j#                  «       dk\  Zer ej&                  d«      ndZer
 ed„ «      Zn	 ed„ «      Z ed„ «      Z ed	„ «      Z ed
„ «      Z ed„ «      Z ed„ «      Z ed„ «      Z ed„ «      Z ed„ «      Z ed„ «      Z ed„ «      Z ed„ «      Z  ed„ «      Z!d„ Z"d„ Z# ed„ «      Z$ ed„ «      Z%d„ Z&d„ Z'd„ Z( ed„ «      Z)e*e+d<    ed„ «      Z,e*e+d<    ed„ «      Z-e*e+d <    ed!„ «      Z.e*e+d"<   exr e Z/e*e+d#<    ed$„ «      Z0e*e+d%<   d&„ Z1 ed'„ «      Z2e*e+d(<    ed)„ «      Z3e*e+d*<   er 	 ddl4Z5e5j                  jm                  «       Z7nd+Z7d+a9d,„ Z:ejv                  d-„ «       Z<ejv                  d;d.„«       Z=ejv                  d/„ «       Z>d;d0„Z?d1„ Z@d2„ ZAd3„ ZBd4„ ZCd5„ ZDd6„ ZE eD«       ZF eE«       ZGd7ej�                  j’                  dfd8„ZJd7ej–                  ej�                  j’                  dfd9„ZLd:„ ZMesej                  j                  «       rJ ‚yy# e8$ r d+Z7d+ZY ŒÏw xY w)<z>This file is allowed to initialize CUDA context when imported.é    N)ÚLazyValÚ
TEST_NUMBAÚTEST_WITH_ROCMÚ	TEST_CUDAÚ
IS_WINDOWSé   zcuda:0c                  ó   — t         S ©N)r   © ó    úa/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/testing/_internal/common_cuda.pyú<lambda>r      s   € ¤€ r   c                  ó–   — t         xrB t        j                  j                  j	                  t        j
                  dt        ¬«      «      S )Nç      ð?©Údevice)r   ÚtorchÚbackendsÚcudnnÚis_acceptableÚtensorÚCUDA_DEVICEr   r   r   r   r      s0   € ¤Ò!w¬u¯~©~×/CÑ/C×/QÑ/QÔRW×R^ÑR^Ð_aÔjuÔRvÓ/w€ r   c                  ób   — t         r(t        j                  j                  j	                  «       S dS )Nr   )Ú
TEST_CUDNNr   r   r   Úversionr   r   r   r   r      s    € Åz¤U§^¡^×%9Ñ%9×%AÑ%AÓ%C€ ÐWX€ r   c                  ó„   — t         j                  j                  «       xr! t         j                  j                  «       dk\  S )N)é   é   ©r   ÚcudaÚis_availableÚget_device_capabilityr   r   r   r   r      ó+   € œeŸj™j×5Ñ5Ó7Òh¼E¿J¹J×<\Ñ<\Ó<^ÐbhÑ<h€ r   c                  ó„   — t         j                  j                  «       xr! t         j                  j                  «       dk\  S )N)é   r   r   r   r   r   r   r      r#   r   c                  ó„   — t         j                  j                  «       xr! t         j                  j                  «       dk\  S )N)é   r   r   r   r   r   r   r      r#   r   c                  ó„   — t         j                  j                  «       xr! t         j                  j                  «       dk\  S )N)r'   r   r   r   r   r   r   r      r#   r   c                  ó„   — t         j                  j                  «       xr! t         j                  j                  «       dk\  S )N)é   r   r   r   r   r   r   r       r#   r   c                  ó„   — t         j                  j                  «       xr! t         j                  j                  «       dk\  S ©N©r*   é	   r   r   r   r   r   r   !   r#   r   c                  ó„   — t         j                  j                  «       xr! t         j                  j                  «       dk\  S )N)r.   r   r   r   r   r   r   r   "   r#   r   c                  ó„   — t         j                  j                  «       xr! t         j                  j                  «       dk\  S )N)é
   r   r   r   r   r   r   r   #   s+   € œuŸz™z×6Ñ6Ó8Òj¼U¿Z¹Z×=]Ñ=]Ó=_ÐcjÑ=j€ r   c                  óÖ   — t         j                  j                  «       xrJ t         j                  j                  «       d   dk(  xr$ t         j                  j                  «       d   dkD  S )Nr   r1   é   r   r   r   r   r   r   %   sW   € œ%Ÿ*™*×1Ñ1Ó3ò @¼¿
¹
×8XÑ8XÓ8ZÐ[\Ñ8]ÐacÑ8cò @Ü—j‘j×6Ñ6Ó8¸Ñ;¸aÑ?ð r   c                  ó’   — t         j                  j                  «       xr( t         j                  j                  «       dv xs t        S )N))r'   r   )r*   r'   )r   r    r!   r"   ÚIS_THORr   r   r   r   r   '   s1   € œEŸJ™J×3Ñ3Ó5Ò}¼5¿:¹:×;[Ñ;[Ó;]ÐaqÐ;qÒ;|Ôu|€ r   c                  ó„   — t         j                  j                  «       xr! t         j                  j                  «       dk(  S r,   r   r   r   r   r   r   (   s+   € œ%Ÿ*™*×1Ñ1Ó3Òd¼¿
¹
×8XÑ8XÓ8ZÐ^dÑ8d€ r   c                  óŒ   ‡ — t         r=t        j                  j                  d«      j                  Š t        ˆ fd„dD «       «      S y)Nr    c              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wr
   r   )Ú.0ÚarchÚgcn_arch_names     €r   ú	<genexpr>zCDNA2OrLater.<locals>.<genexpr>-   s   øè ø€ ÒJ¨T�4˜=Ô(ÑJùs   ƒ>   Úgfx90aÚgfx942F)r   r   r    Úget_device_propertiesÚgcnArchNameÚany)r;   s   @r   ÚCDNA2OrLaterrB   *   s5   ø€ ÝÜŸ
™
×8Ñ8¸Ó@×LÑLˆÜÓJÐ5IÔJÓJÐJØr   c                 óÜ   — t         j                  j                  «       syt         j                  j                  d«      j                  }t
        j                  j                  d|«      }|| k(  S )NFr    Ú/PYTORCH_DEBUG_FLASH_ATTENTION_GCN_ARCH_OVERRIDE)r   r    r!   r?   r@   ÚosÚenvironÚget)Úmatching_archr;   r:   s      r   Úevaluate_gfx_arch_exactrI   0   sO   € Ü�:‰:×"Ñ"Ô$ØÜ—J‘J×4Ñ4°VÓ<×HÑH€MÜ�:‰:�>‰>ÐKÈ]Ó[€DØ�=Ñ Ð r   c                  ó   — t        d«      S )Núgfx90a:sramecc+:xnack-©rI   r   r   r   r   r   7   ó   € Ô6Ð7OÓP€ r   c                  ó   — t        d«      S )Núgfx942:sramecc+:xnack-rL   r   r   r   r   r   8   rM   r   c                  ój   — t         rt        d«      xs t        d«      S t        rt         xr t        S y)NrK   rO   F)r   rI   r   r   ÚSM80OrLaterr   r   r   Ú*evaluate_platform_supports_flash_attentionrR   :   s0   € ÝÜ&Ð'?Ó@ÒuÔD[Ð\tÓDuÐuÝÜˆ~Ò-¤+Ð-Ør   c                  óN   — t         rt        d«      xs t        d«      S t        ryy)NrK   rO   TF)r   rI   r   r   r   r   Ú.evaluate_platform_supports_efficient_attentionrT   A   s&   € ÝÜ&Ð'?Ó@ÒuÔD[Ð\tÓDuÐuÝØØr   c                  ó6   — t          xr t        xr	 t        dk\  S )Ni�_ )r   rQ   ÚTEST_CUDNN_VERSIONr   r   r   Ú*evaluate_platform_supports_cudnn_attentionrW   H   s   € ÜÐÒQ¤KÒQÔ5GÈ5Ñ5PÐQr   c                  ó   — t        «       S r
   )rR   r   r   r   r   r   K   ó
   € Ô:dÓ:f€ r   Ú!PLATFORM_SUPPORTS_FLASH_ATTENTIONc                  ó   — t        «       S r
   )rT   r   r   r   r   r   L   s
   € Ô<jÓ<l€ r   Ú#PLATFORM_SUPPORTS_MEM_EFF_ATTENTIONc                  ó   — t        «       S r
   )rW   r   r   r   r   r   M   rY   r   Ú!PLATFORM_SUPPORTS_CUDNN_ATTENTIONc                  ó.   — t         xs t        xs t        S r
   )rZ   r^   r\   r   r   r   r   r   O   s   € Ô:[ò ;VÜ2Sò;Vä2Uð r   Ú!PLATFORM_SUPPORTS_FUSED_ATTENTIONÚPLATFORM_SUPPORTS_FUSED_SDPAc                  ó   — t         xr t        S r
   )r   rQ   r   r   r   r   r   U   s   € ¬yÒ/H¼[€ r   ÚPLATFORM_SUPPORTS_BF16c                  ó  — t         j                  j                  «       rät         j                  j                  r¡t        d„ t         j                  j                  j                  d«      d d D «       «      } dg}| dk\  r|j                  dg«       | dk\  r|j                  d«       |D ]/  }|t         j                  j                  d	«      j                  v sŒ/ y
 yt        xs! t         j                  j                  «       dk(  S y)Nc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr
   ©Úint)r9   Úvs     r   r<   z1evaluate_platform_supports_fp8.<locals>.<genexpr>Z   s   è ø€ Ò R¨A¤ Q§Ñ Rùó   ‚ú.r   Úgfx94)r%   r   Úgfx120)r%   r   Úgfx95r   Tr-   F)r   r    r!   r   ÚhipÚtupleÚsplitÚextendÚappendr?   r@   ÚSM90OrLaterr"   )ÚROCM_VERSIONÚarchsr:   s      r   Úevaluate_platform_supports_fp8rv   W   sÒ   € Ü‡z�z×ÑÔ Ü�=‰=×ÒÜ Ñ R´·±×1BÑ1B×1HÑ1HÈÓ1MÈbÈqÐ1QÔ RÓRˆLØ�IˆEØ˜vÒ%Ø—‘˜h˜ZÔ(Ø˜vÒ%Ø—‘˜WÔ%Øò  �Øœ5Ÿ:™:×;Ñ;¸AÓ>×JÑJÒJÙð ð
 ô ÒN¤%§*¡*×"BÑ"BÓ"DÈÑ"NÐNØr   c                  ó   — t        «       S r
   )rv   r   r   r   r   r   g   s
   € Ô.LÓ.N€ r   ÚPLATFORM_SUPPORTS_FP8c                  ó   — t         xr t        S r
   )r   ÚSM100OrLaterr   r   r   r   r   i   s   € ´)Ò2LÄ€ r   ÚPLATFORM_SUPPORTS_MX_GEMMFc                  ó¼   — t         sJ d«       ‚t        sIt        t        j                  j                  «       «      D ]  } t        j                  dd| › �¬«       Œ day y )Nz?CUDA must be available when calling initialize_cuda_context_rngr3   zcuda:r   T)r   Ú__cuda_ctx_rng_initializedÚranger   r    Údevice_countÚrandn)Úis    r   Úinitialize_cuda_context_rngr‚   {   sS   € åÐWÐWÓWˆ9Ý%ä”u—z‘z×.Ñ.Ó0Ó1ò 	/ˆAÜ�K‰K˜ E¨!¨ +Ö.ð	/à%)Ñ"ð	 &r   c               #   óö  K  — t         j                  j                  j                  j                  } 	 dt         j                  j                  j                  _        t         j                  j
                  j                  d d d d¬«      5  d –— d d d «       | t         j                  j                  j                  _        y # 1 sw Y   Œ3xY w# | t         j                  j                  j                  _        w xY w­w)NF©ÚenabledÚ	benchmarkÚdeterministicÚ
allow_tf32©r   r   r    Úmatmulrˆ   r   Úflags©Úold_allow_tf32_matmuls    r   Útf32_offrŽ   …   s±   è ø€ ä!ŸN™N×/Ñ/×6Ñ6×AÑAÐðFØ05Œ�‰×Ñ×"Ñ"Ô-Ü�^‰^×!Ñ!×'Ñ'°ÀÐTXÐejÐ'Ókñ 	Û÷	ð 1FŒ�‰×Ñ×"Ñ"Õ-÷	ð 	ûð 1FŒ�‰×Ñ×"Ñ"Õ-üó5   ‚/C9²AC ÂB?ÂC Â*C9Â?CÃC Ã+C6Ã6C9c              #   ó8  K  — t         j                  j                  j                  j                  }| j
                  }	 dt         j                  j                  j                  _        || _        t         j                  j                  j                  d d d d¬«      5  d –— d d d «       |t         j                  j                  j                  _        || _        y # 1 sw Y   Œ:xY w# |t         j                  j                  j                  _        || _        w xY w­w)NTr„   )r   r   r    rŠ   rˆ   Ú	precisionr   r‹   )ÚselfÚtf32_precisionr�   Úold_precisions       r   Útf32_onr•   �   sÎ   è ø€ ä!ŸN™N×/Ñ/×6Ñ6×AÑAÐØ—N‘N€Mð'Ø04Œ�‰×Ñ×"Ñ"Ô-Ø'ˆŒÜ�^‰^×!Ñ!×'Ñ'°ÀÐTXÐeiÐ'Ójñ 	Û÷	ð 1FŒ�‰×Ñ×"Ñ"Ô-Ø&ˆ�÷		ð 	ûð 1FŒ�‰×Ñ×"Ñ"Ô-Ø&ˆ�üs5   ‚;D¾AC% ÂCÂ C% Â(1DÃC"ÃC% Ã%2DÄDc               #   óö  K  — t         j                  j                  j                  j                  } 	 dt         j                  j                  j                  _        t         j                  j
                  j                  dddd¬«      5  d–— ddd«       | t         j                  j                  j                  _        y# 1 sw Y   Œ3xY w# | t         j                  j                  j                  _        w xY w­w)z‰
    Context manager to temporarily enable TF32 for CUDA operations.
    Restores the previous TF32 state after exiting the context.
    TNr„   r‰   rŒ   s    r   Útf32_enabledr—   ž   s¸   è ø€ ô "ŸN™N×/Ñ/×6Ñ6×AÑAÐðFØ04Œ�‰×Ñ×"Ñ"Ô-Ü�^‰^×!Ñ!×'Ñ'Ø D¸Èð (ó 
ñ 	ó ÷	ð
 1FŒ�‰×Ñ×"Ñ"Õ-÷	ð 	ûð
 1FŒ�‰×Ñ×"Ñ"Õ-ür�   c                 ó(   ‡ ‡‡— d„ Šˆ fd„Šˆˆfd„}|S )Nc                 óP   — t        «       5   |«        d d d «       y # 1 sw Y   y xY wr
   ©rŽ   )r’   Úfunction_calls     r   Úwith_tf32_disabledz+tf32_on_and_off.<locals>.with_tf32_disabledÌ   s!   € Ü‹Zñ 	ÙŒO÷	÷ 	ñ 	ús   ‹œ%c                 óV   •— t        | ‰«      5   |«        d d d «       y # 1 sw Y   y xY wr
   )r•   )r’   r›   r“   s     €r   Úwith_tf32_enabledz*tf32_on_and_off.<locals>.with_tf32_enabledÐ   s'   ø€ Ü�T˜>Ó*ñ 	ÙŒO÷	÷ 	ñ 	ús   ŽŸ(c                 ó¼   •‡ ‡— t        j                  ‰ «      j                  }t        |j	                  «       «      Št        j                  ‰ «      ˆˆ ˆˆfd„«       }|S )Nc                  ó€  •‡— t        ‰| «      D ]
  \  }}|‰|<   Œ t        j                  j                  «       }d‰v r)|xr% t        j                  ‰d   «      j
                  dk(  }d‰v r)|xr% ‰d   t        j                  t        j                  hv }|r! ‰‰d   ˆˆfd„«        ‰‰d   ˆˆfd„«       y  ‰di ‰¤Ž y )Nr   r    Údtyper’   c                  ó   •—  ‰ di ‰¤ŽS ©Nr   r   ©ÚfÚkwargss   €€r   r   zCtf32_on_and_off.<locals>.wrapper.<locals>.wrapped.<locals>.<lambda>â   s   ø€ ¹1¹;¸v¹;€ r   c                  ó   •—  ‰ di ‰¤ŽS r£   r   r¤   s   €€r   r   zCtf32_on_and_off.<locals>.wrapper.<locals>.wrapped.<locals>.<lambda>ã   s   ø€ ¹!¹+¸f¹+€ r   r   )Úzipr   r    Úis_tf32_supportedr   ÚtypeÚfloat32Ú	complex64)	Úargsr¦   Úkrh   ÚcondÚ	arg_namesr¥   rœ   rž   s	    `   €€€€r   Úwrappedz1tf32_on_and_off.<locals>.wrapper.<locals>.wrappedØ   sµ   ù€ ä˜I tÓ,ò ‘��1Ø��q’	ðä—:‘:×/Ñ/Ó1ˆDØ˜6Ñ!ØÒO¤§¡¨f°XÑ.>Ó!?×!DÑ!DÈÑ!N�Ø˜&Ñ ØÒU ¨¡´U·]±]ÄEÇOÁOÐ4TÐ!T�ÙÙ" 6¨&¡>Ô3FÔGÙ! &¨¡.Ô2EÕFá‘�F“r   )ÚinspectÚ	signatureÚ
parametersro   ÚkeysÚ	functoolsÚwraps)r¥   Úparamsr±   r°   rœ   rž   s   `  @€€r   Úwrapperz tf32_on_and_off.<locals>.wrapperÔ   sK   ú€ Ü×"Ñ" 1Ó%×0Ñ0ˆÜ˜&Ÿ+™+›-Ó(ˆ	ä	�‰˜Ó	ö	ó 
ð	ð ˆr   r   )r“   r¹   rœ   rž   s   ` @@r   Útf32_on_and_offrº   Ë   s   ú€ òôõð( €Nr   c                 óB   ‡ — t        j                  ‰ «      ˆ fd„«       }|S )Nc                  óT   •— t        «       5   ‰| i |¤Žcd d d «       S # 1 sw Y   y xY wr
   rš   )r­   r¦   r¥   s     €r   r±   zwith_tf32_off.<locals>.wrappedñ   s*   ø€ ä‹Zñ 	&Ù�dÐ%˜fÑ%÷	&÷ 	&ò 	&ús   Œž')r¶   r·   )r¥   r±   s   ` r   Úwith_tf32_offr½   ð   s%   ø€ Ü‡_�_�QÓó&ó ð&ð €Nr   c                  ó^  — dt         j                  j                  «       vryt         j                  j                  «       j                  d«      } t         j                  j                  «       | t	        d«      z   d  j                  d«      d   }t        d„ |j                  d«      D «       «      S )NÚMagma©r   r   zMagma ú
r   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr
   rf   ©r9   Úxs     r   r<   z%_get_magma_version.<locals>.<genexpr>ý   s   è ø€ Ò8˜A”�Q—Ñ8ùri   rj   )r   Ú
__config__ÚshowÚfindÚlenrp   ro   )ÚpositionÚversion_strs     r   Ú_get_magma_versionrË   ø   s�   € Ø”e×&Ñ&×+Ñ+Ó-Ñ-ØÜ×Ñ×$Ñ$Ó&×+Ñ+¨HÓ5€HÜ×"Ñ"×'Ñ'Ó)¨(´S¸³]Ñ*BÐ*CÐD×JÑJÈ4ÓPÐQRÑS€KÜÑ8 ×!2Ñ!2°3Ó!7Ô8Ó8Ð8r   c                  óÀ   — t         j                  j                  €yt        t         j                  j                  «      } t	        d„ | j                  d«      D «       «      S )NrÀ   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr
   rf   rÃ   s     r   r<   z*_get_torch_cuda_version.<locals>.<genexpr>  ó   è ø€ Ò9˜A”�Q—Ñ9ùri   rj   )r   r   r    Ústrro   rp   )Úcuda_versions    r   Ú_get_torch_cuda_versionrÑ   ÿ   sE   € Ü‡}�}×ÑÐ!ØÜ”u—}‘}×)Ñ)Ó*€LÜÑ9 ×!3Ñ!3°CÓ!8Ô9Ó9Ð9r   c                  óÀ   — t         syt        t        j                  j                  «      } | j                  d«      d   } t        d„ | j                  d«      D «       «      S )NrÀ   ú-r   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr
   rf   rÃ   s     r   r<   z*_get_torch_rocm_version.<locals>.<genexpr>
  rÎ   ri   rj   )r   rÏ   r   r   rn   rp   ro   )Úrocm_versions    r   Ú_get_torch_rocm_versionrÖ     sM   € ÝØÜ”u—}‘}×(Ñ(Ó)€LØ×%Ñ% cÓ*¨1Ñ-€LÜÑ9 ×!3Ñ!3°CÓ!8Ô9Ó9Ð9r   c                  ó   — t          S r
   )r   r   r   r   Ú!_check_cusparse_generic_availablerØ     s   € ÜÐÐr   c                  ó  — t         syt        j                  j                  syt	        t        j                  j                  «      } | j                  d«      d   } t        d„ | j                  d«      D «       «      }|d u xs |dk   S )NFrÓ   r   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr
   rf   rÃ   s     r   r<   z5_check_hipsparse_generic_available.<locals>.<genexpr>  s   è ø€ ÒG¨!œs 1ŸvÑGùri   rj   )r   r3   )r   r   r   rn   rÏ   rp   ro   )rÕ   Úrocm_version_tuples     r   Ú"_check_hipsparse_generic_availablerÜ     sv   € ÝØÜ�=‰=×ÒØä”u—}‘}×(Ñ(Ó)€LØ×%Ñ% cÓ*¨1Ñ-€LÜÑG¨|×/AÑ/AÀ#Ó/FÔGÓGÐØ" dÐ*ÒIÐ.@À6Ñ.IÐJÐJr   r    c                 ó  — t         j                  j                  t         j                  j                  dd«      t         j                  j                  dd«      «      j	                  | ¬«      }t         j                  j                  t         j                  j                  dd«      t         j                  j                  dd«      «      j	                  | ¬«      }t        j
                  «       5  t        |j                  «       |j                  «       «      D ]  \  }}|j                  |«       Œ 	 d d d «       ddi}|�|j                  |«        ||j                  «       fi |¤Ž} ||j                  «       fi |¤Ž}	||||	fS # 1 sw Y   ŒTxY w)Nr*   r   Úlrr   )
r   ÚnnÚ
SequentialÚLinearÚtoÚno_gradr¨   r´   Úcopy_Úupdate)
r   Úoptimizer_ctorÚoptimizer_kwargsÚmod_controlÚmod_scalingÚcÚsr¦   Úopt_controlÚopt_scalings
             r   Ú!_create_scaling_models_optimizersrî     s>  € ô —(‘(×%Ñ%¤e§h¡h§o¡o°a¸Ó&;¼U¿X¹X¿_¹_ÈQÐPQÓ=RÓS×VÑVÐ^dÐVÓe€KÜ—(‘(×%Ñ%¤e§h¡h§o¡o°a¸Ó&;¼U¿X¹X¿_¹_ÈQÐPQÓ=RÓS×VÑVÐ^dÐVÓe€KÜ	�‰‹ñ Ü˜×.Ñ.Ó0°+×2HÑ2HÓ2JÓKò 	‰DˆAˆqØ�G‰G�A�Jñ	÷ð �Cˆ[€FØÐ#Ø�‰Ð&Ô'Ù  ×!7Ñ!7Ó!9ÑD¸VÑD€KÙ  ×!7Ñ!7Ó!9ÑD¸VÑD€Kà˜ [°+Ð=Ð=÷ð ús   Ã-AFÆFc           	      ó  — t        j                  d|| ¬«      t        j                  d|| ¬«      ft        j                  d|| ¬«      t        j                  d|| ¬«      ft        j                  d|| ¬«      t        j                  d|| ¬«      ft        j                  d|| ¬«      t        j                  d|| ¬«      fg}t         j                  j                  «       j	                  | «      }d}t        | ||¬«      |||fz   S )N)r*   r*   )r¡   r   r   )r   ræ   rç   )r   r€   rß   ÚMSELossrâ   rî   )r   r¡   ræ   rç   ÚdataÚloss_fnÚ	skip_iters          r   Ú_create_scaling_caserô   1  sâ   € Ü�[‰[˜ u°VÔ<¼e¿k¹kÈ&ÐX]ÐflÔ>mÐnÜ�[‰[˜ u°VÔ<¼e¿k¹kÈ&ÐX]ÐflÔ>mÐnÜ�[‰[˜ u°VÔ<¼e¿k¹kÈ&ÐX]ÐflÔ>mÐnÜ�[‰[˜ u°VÔ<¼e¿k¹kÈ&ÐX]ÐflÔ>mÐnðp€Dô
 �h‰h×ÑÓ ×#Ñ# FÓ+€Gà€Iä,Ø nÐGWôà	ˆw˜	Ð"ñ#ð #r   c                 ó<   — t         s| S t        j                  | «      S r
   )ÚIS_SM89ÚunittestÚexpectedFailure)Úfuncs    r   ÚxfailIfSM89rú   @  s   € Ýˆ4ÐB¤H×$<Ñ$<¸TÓ$BÐBr   )gñhãˆµøä>)NÚ__doc__r¶   r   Ú
torch.cudaÚ$torch.testing._internal.common_utilsr   r   r   r   r   r²   Ú
contextlibrE   r÷   r    Úis_initializedÚ"CUDA_ALREADY_INITIALIZED_ON_IMPORTr   ÚTEST_MULTIGPUr   r   r   rV   ÚSM53OrLaterÚSM60OrLaterÚSM70OrLaterÚSM75OrLaterrQ   ÚSM89OrLaterrs   rz   r5   Ú	IS_JETSONrö   rB   rI   ÚGFX90A_ExactÚGFX942_ExactrR   rT   rW   rZ   ÚboolÚ__annotations__r\   r^   r`   ra   rc   rv   rx   r{   Ú
numba.cudaÚnumbar!   ÚTEST_NUMBA_CUDAÚ	Exceptionr}   r‚   ÚcontextmanagerrŽ   r•   r—   rº   r½   rË   rÑ   rÖ   rØ   rÜ   ÚTEST_CUSPARSE_GENERICÚTEST_HIPSPARSE_GENERICÚoptimÚSGDrî   Úfloatrô   rú   r   r   r   ú<module>r     s  ðò Fã Û Û ß kÕ kÛ Û Û 	Û ð &+§Z¡Z×%>Ñ%>Ó%@Ð "ð Ò<˜eŸj™j×5Ñ5Ó7¸1Ñ<€Ù(1ˆlˆe�l‰l˜8Ô$°t€áÙÑ*Ó+�JáÑwÓx€JáÑXÓYÐ áÑhÓi€ÙÑhÓi€ÙÑhÓi€ÙÑhÓi€ÙÑhÓi€ÙÑhÓi€ÙÑhÓi€ÙÑjÓk€á
ñ @ó A€áÑ}Ó~€	Ù
ÑdÓ
e€òò!ñ ÑPÓQ€ÙÑPÓQ€òòòRñ +2Ñ2fÓ*gÐ ! 4Ó gÙ,3Ñ4lÓ,mÐ # TÓ mÙ*1Ñ2fÓ*gÐ ! 4Ó gá*1ñ 3Vó +WÐ ! 4ó Wð &/Ò%E°~Ð3EÐ ˜dÓ Eá&Ñ'HÓIÐ ˜Ó Iòñ  &Ñ&NÓOÐ �tÓ Oá")Ñ*LÓ"MÐ ˜4Ó MáðÛØŸ*™*×1Ñ1Ó3‰ð
 €Oð #Ð ò*ð ×ÑñFó ðFð ×Ñò
'ó ð
'ð ×ÑñFó ðFóXòJò9ò:ò:òò	Kñ :Ó;Ð Ù;Ó=Ð ð .4ÀEÇKÁKÇOÁOÐfjó >ð$ !'¨e¯k©kÈ%Ï+É+Ï/É/Ðlpó #òCñ
 *Ø�z‰z×(Ñ(Ô*Ð*Ð*Ð*ð *øðm ò ØˆØŠ
ðús   ÆI: É:	JÊJ