ó
    "Eñi4   ã                   óf  • S SK r  " S S\ R                  R                  5      r " S S\ R                  R                  5      r " S S\5      r " S S	\5      r " S
 S\5      r " S S\ R                  R                  5      r " S S\ R                  R                  5      r	\ R                  4S jrg)é    Nc                   óÔ   ^ • \ rS rSrSU 4S jjr\R                  R                  S 5       r\R                  R                  S 5       r	\R                  R                  S 5       r
SrU =r$ )ÚMkldnnLinearé   c                 óž  >• [         TU ]  5         U R                  SUR                  R	                  U5      5        UR
                  b+  U R                  SUR
                  R	                  5       5        g U R                  S[        R                  " UR                  R                  S5      /[        R                  S9R	                  5       5        g )NÚweightÚbiasr   ©Údtype)
ÚsuperÚ__init__Úregister_bufferr   Ú	to_mkldnnr   ÚtorchÚzerosÚsizeÚfloat©ÚselfÚdense_moduler
   Ú	__class__s      €ÚO/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/utils/mkldnn.pyr   ÚMkldnnLinear.__init__   sŸ   ø€ Ü‰ÑÔØ×Ñ˜X |×':Ñ':×'DÑ'DÀUÓ'KÔLØ×ÑÑ(ð × Ñ  ¨×):Ñ):×)DÑ)DÓ)FÕGð × Ñ ØÜ—’˜\×0Ñ0×5Ñ5°aÓ8Ð9ÄÇÁÑM×WÑWÓYõ[ó    c                 ó€   • U R                   R                  5       U R                  R                  5       U R                  4$ ©N©r   Úto_denser   Útraining©r   s    r   Ú__getstate__ÚMkldnnLinear.__getstate__   ó-   € à—‘×$Ñ$Ó&¨¯	©	×(:Ñ(:Ó(<¸d¿m¹mÐLÐLr   c                 óx   • US   R                  5       U l        US   R                  5       U l        US   U l        g ©Nr   é   é   ©r   r   r   r   ©r   Ústates     r   Ú__setstate__ÚMkldnnLinear.__setstate__   ó5   € à˜A‘h×(Ñ(Ó*ˆŒØ˜!‘H×&Ñ&Ó(ˆŒ	Ø˜a™ˆ�r   c                 ó  • UR                   (       a  UOUR                  5       n[        R                  R                  R                  X R                  U R                  5      nUR                   (       a  UnU$ UR                  5       nU$ r   )	Ú	is_mkldnnr   r   Ú_CÚ_nnÚmkldnn_linearr   r   r   ©r   ÚxÚx_mkldnnÚy_mkldnnÚys        r   ÚforwardÚMkldnnLinear.forward   s\   € àŸŸ‘1¨¯©«ˆÜ—8‘8—<‘<×-Ñ-¨h¿¹ÀTÇYÁYÓOˆØŸŸˆHˆØˆð *2×):Ñ):Ó)<ˆØˆr   ©r   r   r   ©ÚreturnN©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   ÚjitÚscript_methodr    r*   r7   Ú__static_attributes__Ú__classcell__©r   s   @r   r   r      se   ø† ÷[ð ‡Y�Y×ÑñMó ðMð ‡Y�Y×Ññ!ó ð!ð
 ‡Y�Y×Ññó ör   r   c                   ó¨   ^ • \ rS rSrSr/ SQrSU 4S jjr\R                  R                  S 5       r
\R                  R                  S 5       rSrU =r$ )	Ú_MkldnnConvNdé%   z-Common base of MkldnnConv1d and MkldnnConv2d.)ÚstrideÚpaddingÚdilationÚgroupsc                 óÐ  >• [         TU ]  5         UR                  U l        UR                  U l        UR                  U l        UR
                  U l        UR                  b+  U R                  SUR                  R                  5       5        g U R                  S[        R                  " UR                  R                  S5      /[        R                  S9R                  5       5        g )Nr   r   r	   )r   r   rI   rJ   rK   rL   r   r   r   r   r   r   r   r   ©r   r   r   s     €r   r   Ú_MkldnnConvNd.__init__*   s°   ø€ Ü‰ÑÔà"×)Ñ)ˆŒØ#×+Ñ+ˆŒØ$×-Ñ-ˆŒØ"×)Ñ)ˆŒà×ÑÑ(Ø× Ñ  ¨×):Ñ):×)DÑ)DÓ)FÕGð
 × Ñ ØÜ—’˜\×0Ñ0×5Ñ5°aÓ8Ð9ÄÇÁÑM×WÑWÓYõ[r   c                 ó€   • U R                   R                  5       U R                  R                  5       U R                  4$ r   r   r   s    r   r    Ú_MkldnnConvNd.__getstate__<   r"   r   c           	      ó²   • [         R                  " UU R                  U R                  U R                  U R
                  U R                  U R                  5      $ r   )r   Úmkldnn_convolutionr   r   rJ   rI   rK   rL   ©r   r3   s     r   r7   Ú_MkldnnConvNd.forward@   sB   € ä×'Ò'ØØ�K‰KØ�I‰IØ�L‰LØ�K‰KØ�M‰MØ�K‰Kóð 	r   )rK   rL   rJ   rI   r:   )r=   r>   r?   r@   Ú__doc__Ú__constants__r   r   rA   rB   r    r7   rC   rD   rE   s   @r   rG   rG   %   sO   ø† Ù7â?€M÷[ð$ ‡Y�Y×ÑñMó ðMð ‡Y�Y×Ññó ör   rG   c                   ód   ^ • \ rS rSrSU 4S jjr\R                  R                  S 5       rSr	U =r
$ )ÚMkldnnConv1déL   c                 óz   >• [         TU ]  U5        U R                  SUR                  R	                  U5      5        g ©Nr   ©r   r   r   r   r   r   s      €r   r   ÚMkldnnConv1d.__init__M   s1   ø€ Ü‰Ñ˜Ô&à×Ñ˜X |×':Ñ':×'DÑ'DÀUÓ'KÕLr   c                 óx   • US   R                  5       U l        US   R                  5       U l        US   U l        g r$   r'   r(   s     r   r*   ÚMkldnnConv1d.__setstate__R   r,   r   r9   r:   ©r=   r>   r?   r@   r   r   rA   rB   r*   rC   rD   rE   s   @r   rY   rY   L   s'   ø† ÷Mð
 ‡Y�Y×Ññ!ó ö!r   rY   c                   ód   ^ • \ rS rSrSU 4S jjr\R                  R                  S 5       rSr	U =r
$ )ÚMkldnnConv2déY   c           
      ó   >• [         TU ]  U5        U R                  S[        R                  R
                  R                  UR                  R                  U5      U R                  U R                  U R                  U R                  5      5        g r\   )r   r   r   r   r/   r0   Úmkldnn_reorder_conv2d_weightr   r   rJ   rI   rK   rL   r   s      €r   r   ÚMkldnnConv2d.__init__Z   óe   ø€ Ü‰Ñ˜Ô&à×Ñ˜X¤u§x¡x§|¡|×'PÑ'PØ×Ñ×)Ñ)¨%Ó0Ø�L‰LØ�K‰KØ�M‰MØ�K‰Kó(õ 	r   c                 ó  • [         R                  R                  R                  US   R	                  5       U R
                  U R                  U R                  U R                  5      U l	        US   R	                  5       U l
        US   U l        g r$   )r   r/   r0   rf   r   rJ   rI   rK   rL   r   r   r   r(   s     r   r*   ÚMkldnnConv2d.__setstate__d   ói   € ä—h‘h—l‘l×?Ñ?Ø�!‰H×ÑÓ Ø�L‰LØ�K‰KØ�M‰MØ�K‰KóˆŒð ˜!‘H×&Ñ&Ó(ˆŒ	Ø˜a™ˆ�r   r9   r:   ra   rE   s   @r   rc   rc   Y   ó&   ø† ÷ð ‡Y�Y×Ññ!ó ö!r   rc   c                   ód   ^ • \ rS rSrSU 4S jjr\R                  R                  S 5       rSr	U =r
$ )ÚMkldnnConv3déo   c           
      ó   >• [         TU ]  U5        U R                  S[        R                  R
                  R                  UR                  R                  U5      U R                  U R                  U R                  U R                  5      5        g r\   )r   r   r   r   r/   r0   Úmkldnn_reorder_conv3d_weightr   r   rJ   rI   rK   rL   r   s      €r   r   ÚMkldnnConv3d.__init__p   rh   r   c                 ó  • [         R                  R                  R                  US   R	                  5       U R
                  U R                  U R                  U R                  5      U l	        US   R	                  5       U l
        US   U l        g r$   )r   r/   r0   rq   r   rJ   rI   rK   rL   r   r   r   r(   s     r   r*   ÚMkldnnConv3d.__setstate__z   rk   r   r9   r:   ra   rE   s   @r   rn   rn   o   rl   r   rn   c                   óÜ   ^ • \ rS rSrSS/rS	U 4S jjr\R                  R                  S 5       r	\R                  R                  S 5       r
\R                  R                  S 5       rSrU =r$ )
ÚMkldnnBatchNormé†   Úexponential_average_factorÚepsc                 óˆ  >• [         TU ]  5         UR                  (       a  [        S5      eUR                  (       d  [        S5      eUR
                  (       d  [        S5      eUR                  c  SU l        OUR                  U l        UR                  U l        U R                  SUR                  R                  5       5        U R                  SUR                  R                  5       5        U R                  SUR                  R                  5       5        U R                  SUR                  R                  5       5        g )	Nz4Only support eval mode batchnorm for mkldnn path nowz9Only support track_running_stats=True for mkldnn path nowz,Only support affine=True for mkldnn path nowg        r   r   Úrunning_meanÚrunning_var)r   r   r   ÚAssertionErrorÚtrack_running_statsÚaffineÚmomentumrx   ry   r   r   r   r   r{   r|   rN   s     €r   r   ÚMkldnnBatchNorm.__init__‰   sø   ø€ Ü‰ÑÔà× × Ü Ð!WÓXÐXØ×/×/Ü Ð!\Ó]Ð]Ø×"×"Ü Ð!OÓPÐPà× Ñ Ñ(Ø.1ˆDÕ+à.:×.CÑ.CˆDÔ+Ø×#Ñ#ˆŒà×Ñ˜X |×':Ñ':×'DÑ'DÓ'FÔGØ×Ñ˜V \×%6Ñ%6×%@Ñ%@Ó%BÔCØ×Ñ˜^¨\×-FÑ-F×-PÑ-PÓ-RÔSØ×Ñ˜]¨L×,DÑ,D×,NÑ,NÓ,PÕQr   c                 óð   • U R                   R                  5       nU R                  R                  5       nU R                  R                  5       nU R                  R                  5       nXX4U R
                  4$ r   )r   r   r   r{   r|   r   )r   r   r   r{   r|   s        r   r    ÚMkldnnBatchNorm.__getstate__ž   s_   € à—‘×%Ñ%Ó'ˆØ�y‰y×!Ñ!Ó#ˆØ×(Ñ(×1Ñ1Ó3ˆØ×&Ñ&×/Ñ/Ó1ˆØ˜l¸¿¹ÐGÐGr   c                 óØ   • US   R                  5       U l        US   R                  5       U l        US   R                  5       U l        US   R                  5       U l        US   U l        g )Nr   r%   r&   é   é   )r   r   r   r{   r|   r   r(   s     r   r*   ÚMkldnnBatchNorm.__setstate__¦   s_   € à˜A‘h×(Ñ(Ó*ˆŒØ˜!‘H×&Ñ&Ó(ˆŒ	Ø! !™H×.Ñ.Ó0ˆÔØ  ™8×-Ñ-Ó/ˆÔØ˜a™ˆ�r   c                 ó¶   • [         R                  " UU R                  U R                  U R                  U R
                  SU R                  U R                  S5	      $ )NF)r   Ú
batch_normr   r   r{   r|   rx   ry   rT   s     r   r7   ÚMkldnnBatchNorm.forward®   sN   € ä×ÒØØ�K‰KØ�I‰IØ×ÑØ×ÑØØ×+Ñ+Ø�H‰HØó

ð 
	
r   )r   ry   rx   r{   r|   r   r   r:   )r=   r>   r?   r@   rW   r   r   rA   rB   r    r*   r7   rC   rD   rE   s   @r   rv   rv   †   so   ø† Ø1°5Ð9€M÷Rð* ‡Y�Y×ÑñHó ðHð ‡Y�Y×Ññ!ó ð!ð ‡Y�Y×Ññ
ó ö
r   rv   c                   óÔ   ^ • \ rS rSrSU 4S jjr\R                  R                  S 5       r\R                  R                  S 5       r	\R                  R                  S 5       r
SrU =r$ )ÚMkldnnPrelué¼   c                 óx   >• [         TU ]  5         U R                  SUR                  R	                  U5      5        g r\   r]   r   s      €r   r   ÚMkldnnPrelu.__init__½   s/   ø€ Ü‰ÑÔØ×Ñ˜X |×':Ñ':×'DÑ'DÀUÓ'KÕLr   c                 óN   • U R                   R                  5       U R                  4$ r   )r   r   r   r   s    r   r    ÚMkldnnPrelu.__getstate__Á   s   € à—‘×$Ñ$Ó&¨¯©Ð6Ð6r   c                 óH   • US   R                  5       U l        US   U l        g )Nr   r%   )r   r   r   r(   s     r   r*   ÚMkldnnPrelu.__setstate__Å   s!   € à˜A‘h×(Ñ(Ó*ˆŒØ˜a™ˆ�r   c                 óÖ   • UR                   (       a  UOUR                  5       n[        R                  " X R                  5      nUR                   (       a  UnU$ UR                  5       nU$ r   )r.   r   r   Úprelur   r   r2   s        r   r7   ÚMkldnnPrelu.forwardÊ   sL   € àŸŸ‘1¨¯©«ˆÜ—;’;˜x¯©Ó5ˆØŸŸˆHˆØˆð *2×):Ñ):Ó)<ˆØˆr   )r   r   r:   r<   rE   s   @r   rŒ   rŒ   ¼   sc   ø† ÷Mð ‡Y�Y×Ññ7ó ð7ð ‡Y�Y×Ññ!ó ð!ð ‡Y�Y×Ññó ör   rŒ   c                 ó¦   ^^• U[         R                  [         R                  [         R                  4;  a  [	        S5      eS mUU4S jmT" X5      $ )Nz6MKLDNN only support float, bfloat16, and half path nowc                 óª  • [        U [        R                  R                  5      (       a  [	        X5      $ [        U [        R                  R
                  5      (       a  [        X5      $ [        U [        R                  R                  5      (       a  [        X5      $ [        U [        R                  R                  5      (       a  [        X5      $ [        U [        R                  R                  [        R                  R                  45      (       a  [        U 5      $ [        U [        R                  R                  5      (       a  [        X5      $ U $ r   )Ú
isinstancer   ÚnnÚLinearr   ÚConv1drY   ÚConv2drc   ÚConv3drn   ÚBatchNorm2dÚBatchNorm3drv   ÚPReLUrŒ   )ÚmÚds     r   Úm_fnÚto_mkldnn.<locals>.m_fnÖ   sÚ   € Ü�aœŸ™Ÿ™×)Ñ)Ü Ó%Ð%Ü˜œ5Ÿ8™8Ÿ?™?×+Ñ+Ü Ó%Ð%Ü˜œ5Ÿ8™8Ÿ?™?×+Ñ+Ü Ó%Ð%Ü˜œ5Ÿ8™8Ÿ?™?×+Ñ+Ü Ó%Ð%Ü˜œEŸH™H×0Ñ0´%·(±(×2FÑ2FÐG×HÑHô # 1Ó%Ð%Ü˜œ5Ÿ8™8Ÿ>™>×*Ñ*Ü˜qÓ$Ð$àˆHr   c           	      ón   >• T" X5      nU R                  5        H  u  p4[        X#T" XA5      5        M     U$ r   )Únamed_childrenÚsetattr)r¢   r£   Únew_mÚnameÚsub_mr¤   Úm_fn_recs        €€r   r¬   Úto_mkldnn.<locals>.m_fn_recè   s5   ø€ Ù�Q“
ˆØ×+Ñ+Ö-‰KˆDÜ�E¡¨%Ó!3Ö4ñ .àˆr   )r   r   Úbfloat16Úhalfr}   )Úmoduler
   r¤   r¬   s     @@r   r   r   Ñ   sA   ù€ Ø”U—[‘[¤%§.¡.´%·*±*Ð=Ó=ÜÐUÓVÐVòö$ñ �FÓ"Ð"r   )r   rA   ÚScriptModuler   rG   rY   rc   rn   rv   rŒ   r   r   © r   r   Ú<module>r³      s•   ðã ô�5—9‘9×)Ñ)ô ô@$�E—I‘I×*Ñ*ô $ôN
!�=ô 
!ô!�=ô !ô,!�=ô !ô.4
�e—i‘i×,Ñ,ô 4
ôl�%—)‘)×(Ñ(ô ð* "ŸK™Kõ #r   