ó
    IC˜j¨  ã                   ó®   • S SK r S SKrS SKrS SKrS rS r\ R                  S 5       r\ R                  SS j5       r\ R                  S	S j5       r	S
S jr
g)é    Nc                  ó¼   • [         R                  R                  R                  5       (       d  g[         R                  R                  R                  5       (       d  gg©NFT)ÚtorchÚbackendsÚmkldnnÚis_availableÚopsÚ_is_mkldnn_bf16_supported© ó    Ú³C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\torch/testing/_internal/common_mkldnn.pyÚbf32_is_not_fp32r   
   s=   € Ü�>‰>× Ñ ×-Ñ-×/Ñ/ØÜ�9‰9×Ñ×5Ñ5×7Ñ7ØØr   c                  ó¨   • [         R                  R                  R                  5       (       d  g[         R                  R                  5       (       d  ggr   )r   r   r   r   ÚcpuÚ_is_amx_fp16_supportedr   r   r   Útf32_is_not_fp32r      s7   € Ü�>‰>× Ñ ×-Ñ-×/Ñ/ØÜ�9‰9×+Ñ+×-Ñ-ØØr   c               #   óÄ  #   • [         R                  R                  R                  R                  n [         R                  R                  R
                  R                  n S[         R                  R                  R                  l        S[         R                  R                  R
                  l        S v •  U [         R                  R                  R                  l        U[         R                  R                  R
                  l        g ! U [         R                  R                  R                  l        U[         R                  R                  R
                  l        f = f7f)NÚieee)r   r   r   ÚmatmulÚfp32_precisionÚconv)Úold_matmul_precisionÚold_conv_precisions     r   Úreduced_f32_offr      sÚ   é € ä Ÿ>™>×0Ñ0×7Ñ7×FÑFÐÜŸ™×.Ñ.×3Ñ3×BÑBÐðGØ6<Œ�‰×Ñ×$Ñ$Ô3Ø4:Œ�‰×Ñ×"Ñ"Ô1Ûà6JŒ�‰×Ñ×$Ñ$Ô3Ø4FŒ�‰×Ñ×"Ñ"Õ1øð 7KŒ�‰×Ñ×$Ñ$Ô3Ø4FŒ�‰×Ñ×"Ñ"Õ1üs!   ‚AE Á AD	 Â6AE Ä	AEÅE c              #   ó   #   • [         R                  R                  R                  R                  n[         R                  R                  R
                  R                  nU R                  n S[         R                  R                  R                  l        S[         R                  R                  R
                  l        Xl        S v •  U[         R                  R                  R                  l        U[         R                  R                  R
                  l        X@l        g ! U[         R                  R                  R                  l        U[         R                  R                  R
                  l        X@l        f = f7f)NÚbf16©r   r   r   r   r   r   Ú	precision)ÚselfÚbf32_precisionr   r   Úold_precisions        r   Úbf32_onr"   '   óñ   é € ä Ÿ>™>×0Ñ0×7Ñ7×FÑFÐÜŸ™×.Ñ.×3Ñ3×BÑBÐØ—N‘N€Mð'Ø6<Œ�‰×Ñ×$Ñ$Ô3Ø4:Œ�‰×Ñ×"Ñ"Ô1Ø'ŒÛà6JŒ�‰×Ñ×$Ñ$Ô3Ø4FŒ�‰×Ñ×"Ñ"Ô1Ø&�øð 7KŒ�‰×Ñ×$Ñ$Ô3Ø4FŒ�‰×Ñ×"Ñ"Ô1Ø&�üó!   ‚A)E>Á,AD! ÃAE>Ä!AE;Å;E>c              #   ó   #   • [         R                  R                  R                  R                  n[         R                  R                  R
                  R                  nU R                  n S[         R                  R                  R                  l        S[         R                  R                  R
                  l        Xl        S v •  U[         R                  R                  R                  l        U[         R                  R                  R
                  l        X@l        g ! U[         R                  R                  R                  l        U[         R                  R                  R
                  l        X@l        f = f7f)NÚtf32r   )r   Útf32_precisionr   r   r!   s        r   Útf32_onr(   7   r#   r$   c                 ó>   ^ ^^^^• S mU 4S jmU4S jmUUU4S jnU$ )Nc                 óZ   • [        5          U" 5         S S S 5        g ! , (       d  f       g = f©N)r   )r   Úfunction_calls     r   Úwith_reduced_f32_disabledÚ9reduced_f32_on_and_off.<locals>.with_reduced_f32_disabledL   s   € ÜÕÙŒO÷ ×Öús   ‹œ
*c                 ó`   >• [        U T5         U" 5         S S S 5        g ! , (       d  f       g = fr+   )r"   )r   r,   r    s     €r   Úwith_bf32_enabledÚ1reduced_f32_on_and_off.<locals>.with_bf32_enabledP   ó   ø€ Ü�T˜>Õ*ÙŒO÷ +×*Ö*úó   ŽŸ
-c                 ó`   >• [        U T5         U" 5         S S S 5        g ! , (       d  f       g = fr+   )r(   )r   r,   r'   s     €r   Úwith_tf32_enabledÚ1reduced_f32_on_and_off.<locals>.with_tf32_enabledT   r2   r3   c                 óÄ   >^ ^• [         R                  " T 5      R                  n[        UR	                  5       5      m[
        R                  " T 5      UU UUU4S j5       nU$ )Nc                  óò  >^• TR                  [        TU SS95        SnST;   a/  U=(       a&    [        R                  " TS   5      R                  S:H  nST;   a  U=(       a    TS   [        R
                  :H  nU=(       a
    [        5       nU=(       a
    [        5       nU(       d  U(       aC  T" TS   UU4S j5        U(       a  T" TS   UU4S	 j5        U(       a  T	" TS   UU4S
 j5        g g T" S0 TD6  g )NF)ÚstrictTÚdevicer   Údtyper   c                  ó   >• T " S0 TD6$ ©Nr   r   ©ÚfÚkwargss   €€r   Ú<lambda>ÚJreduced_f32_on_and_off.<locals>.wrapper.<locals>.wrapped.<locals>.<lambda>g   s   ø€ Á!Á+ÀfÂ+r   c                  ó   >• T " S0 TD6$ r=   r   r>   s   €€r   rA   rB   i   ó   ø€ ¹a¹kÀ&ºkr   c                  ó   >• T " S0 TD6$ r=   r   r>   s   €€r   rA   rB   k   rD   r   r   )ÚupdateÚzipr   r:   ÚtypeÚfloatr   r   )
Úargsr@   ÚcondÚ	bf32_condÚ	tf32_condÚ	arg_namesr?   r0   r-   r5   s
    `   €€€€€r   ÚwrappedÚ8reduced_f32_on_and_off.<locals>.wrapper.<locals>.wrapped\   sË   ù€ à�M‰Mœ#˜i¨°eÑ<Ô=ØˆDØ˜6Ó!Ø×N¤§¢¨f°XÑ.>Ó!?×!DÑ!DÈÑ!M�Ø˜&Ó Ø×@ ¨¡´E·K±KÑ!?�Ø×3Ô!1Ó!3ˆIØ×3Ô!1Ó!3ˆIÞžIÙ)¨&°©.Õ:MÔNÞÙ% f¨V¡nÕ6IÔJÞÙ% f¨V¡nÕ6IÕJð ñ ‘�F“r   )ÚinspectÚ	signatureÚ
parametersÚtupleÚkeysÚ	functoolsÚwraps)r?   ÚparamsrO   rN   r0   r-   r5   s   `  @€€€r   ÚwrapperÚ'reduced_f32_on_and_off.<locals>.wrapperX   sP   ú€ Ü×"Ò" 1Ó%×0Ñ0ˆÜ˜&Ÿ+™+›-Ó(ˆ	ä	�Š˜Ó	÷	ð 	ó 
ð	ð$ ˆr   r   )r    r'   rY   r0   r-   r5   s   `` @@@r   Úreduced_f32_on_and_offr[   K   s   ü€ òõõ÷ð2 €Nr   )ç{®Gáz„?)çñhãˆµøä>)r\   r]   )Ú
contextlibrV   rQ   r   r   r   Úcontextmanagerr   r"   r(   r[   r   r   r   Ú<module>r`      sr   ðó Û Û ã òòð ×Ññ	Gó ð	Gð ×Ñó'ó ð'ð ×Ñó'ó ð'õ&&r   