ó
    Eñi$  ã                   ó,  • % S SK r S SKJr  S SKJr  S SKrS SKJrJrJ	r	J
r
JrJr  S rS rS rSrSr " S	 S
5      r SS jr\SS j5       r " S S\5      r\(       a  \\S'   \\S'   \\S'   \\S'   \" \ R0                  \   \5      \ R0                  \'   g)é    N)Úcontextmanager)ÚTYPE_CHECKING)Ú__allow_nonbracketed_mutationÚ_FP32PrecisionÚ_get_fp32_precision_getterÚ_set_fp32_precision_setterÚContextPropÚ
PropModulec                  ó6   • [         R                  R                  $ )z5Return whether PyTorch is built with MKL-DNN support.)ÚtorchÚ_CÚ_has_mkldnn© ó    Ú[/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/backends/mkldnn/__init__.pyÚis_availabler      s   € ä�8‰8×ÑÐr   c                  ó6   • [         R                  R                  $ )z;Return whether PyTorch is built with MKL-DNN + ACL support.)r   r   Ú_has_mkldnn_aclr   r   r   Úis_acl_availabler      s   € ô �8‰8×#Ñ#Ð#r   é   é   c                   ó*   • \ rS rSrSrS rS rS rSrg)Úverboseé!   aw  
On-demand oneDNN (former MKL-DNN) verbosing functionality.

To make it easier to debug performance issues, oneDNN can dump verbose
messages containing information like kernel size, input data size and
execution duration while executing the kernel. The verbosing functionality
can be invoked via an environment variable named `DNNL_VERBOSE`. However,
this methodology dumps messages in all steps. Those are a large amount of
verbose messages. Moreover, for investigating the performance issues,
generally taking verbose messages for one single iteration is enough.
This on-demand verbosing functionality makes it possible to control scope
for verbose message dumping. In the following example, verbose messages
will be dumped out for the second inference only.

.. highlight:: python
.. code-block:: python

    import torch

    model(data)
    with torch.backends.mkldnn.verbose(torch.backends.mkldnn.VERBOSE_ON):
        model(data)

Args:
    level: Verbose level
        - ``VERBOSE_OFF``: Disable verbosing
        - ``VERBOSE_ON``:  Enable verbosing
        - ``VERBOSE_ON_CREATION``: Enable verbosing, including oneDNN kernel creation
c                 ó   • Xl         g ©N©Úlevel)Úselfr   s     r   Ú__init__Úverbose.__init__@   s   € Ø�
r   c                 óº   • U R                   [        :X  a  g [        R                  R                  R                  U R                   5      nU(       d  [        S5      eU $ )NzVFailed to set MKLDNN into verbose mode. Please consider to disable this verbose scope.)r   ÚVERBOSE_OFFr   r   Ú_verboseÚmkldnn_set_verboseÚAssertionError)r   Ústs     r   Ú	__enter__Úverbose.__enter__C   sI   € Ø�:‰:œÓ$ØÜ�X‰X×Ñ×1Ñ1°$·*±*Ó=ˆÞÜ Øhóð ð ˆr   c                 ó^   • [         R                  R                  R                  [        5        g)NF)r   r   r$   r%   r#   )r   Úexc_typeÚexc_valÚexc_tbs       r   Ú__exit__Úverbose.__exit__M   s   € Ü�‰×Ñ×,Ñ,¬[Ô9Ør   r   N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r    r(   r.   Ú__static_attributes__r   r   r   r   r   !   s   † ñò<òõr   r   c                 ó
  • [         R                  R                  5       [         R                  R                  5       [         R                  R	                  5       [         R                  R                  SS5      4nU b  [         R                  R                  U 5        Ub  [         R                  R                  U5        Ub  [         R                  R                  U5        Ub!  [         R                  R                  SSU5        U$ )NÚmkldnnÚall)
r   r   Ú_get_mkldnn_enabledÚ_get_mkldnn_deterministicÚ_get_onednn_allow_tf32r   Ú_set_mkldnn_enabledÚ_set_mkldnn_deterministicÚ_set_onednn_allow_tf32r   )Ú_enabledÚ_deterministicÚ_allow_tf32Ú_fp32_precisionÚ
orig_flagss        r   Ú	set_flagsrD   R   s»   € ô 	�‰×$Ñ$Ó&Ü�‰×*Ñ*Ó,Ü�‰×'Ñ'Ó)Ü�‰×+Ñ+¨H°eÓ<ð	€Jð ÑÜ�‰×$Ñ$ XÔ.ØÑ!Ü�‰×*Ñ*¨>Ô:ØÑÜ�‰×'Ñ'¨Ô4ØÑ"Ü�‰×+Ñ+¨H°e¸_ÔMØÐr   c              #   ó0  #   • [        5          [        XX#5      nS S S 5         S v •  [        5          [        W6   S S S 5        g ! , (       d  f       N/= f! , (       d  f       g = f! [        5          [        W6   S S S 5        f ! , (       d  f       f = f= f7fr   )r   rD   )ÚenabledÚdeterministicÚ
allow_tf32Úfp32_precisionrC   s        r   ÚflagsrJ   f   se   é € ä	&Õ	(Ü˜w°zÓRˆ
÷ 
)ð#Ûä*Õ,Ü�zÑ"÷ -Ð,÷ 
)Õ	(ú÷
 -Õ,ûÔ*Õ,Ü�zÑ"÷ -×,Ö,ÿs_   ‚B�AšB£A% §
B±	Aº	BÁ
AÁBÁ
A"ÁBÁ%BÁ0	BÁ9	BÂ
BÂBÂBc                   ó¤  • \ rS rSrS r\" \R                  R                  \R                  R                  5      r
\" \R                  R                  \R                  R                  5      r\" \R                  R                  \R                  R                  5      r\" SS5      r\" SS5      r\" SS5      r\" \" SS5      \" SS5      5      rS	rg
)ÚMkldnnModuleéq   c                 ó   • [        5       $ r   )r   )r   s    r   r   ÚMkldnnModule.is_availabler   s
   € Ü‹~Ðr   r7   ÚmatmulÚconvÚrnnr8   Úgenericr   N)r0   r1   r2   r3   r   r	   r   r   r9   r<   rF   r:   r=   rG   r;   r>   rH   r   rP   rQ   rR   r   r   rI   r5   r   r   r   rL   rL   q   sµ   † òñ ˜%Ÿ(™(×6Ñ6¸¿¹×8TÑ8TÓU€GÙØ�‰×*Ñ*¨E¯H©H×,NÑ,Nó€Mñ Ø�‰×'Ñ'¨¯©×)HÑ)Hó€Jñ ˜H hÓ/€FÙ˜( FÓ+€DÙ
˜ 5Ó
)€CÙ Ù" 8¨UÓ3Ù" 9¨eÓ4óƒNr   rL   rF   rG   rH   rI   )NNNÚnone)FFTrT   )ÚsysÚ
contextlibr   Útypingr   r   Útorch.backendsr   r   r   r   r	   r
   r   r   r#   Ú
VERBOSE_ONÚVERBOSE_ON_CREATIONr   rD   rJ   rL   Ú__annotations__ÚstrÚmodulesr0   r   r   r   Ú<module>r^      s©   ðä 
Ý %Ý  ã ÷÷ ò ò
$ð €Ø€
ØÐ ÷.ñ .ðd KQôð( ó#ó ð#ô�:ô ö( ØÓØÓØÓØÓá$ S§[¡[°Ñ%:¸HÓE€‡�ˆHÒ r   