
    JTh                     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U 4S 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      J/var/www/auris/envauris/lib/python3.13/site-packages/torch/utils/mkldnn.pyr   MkldnnLinear.__init__   s    X|':':'D'DU'KL(   ):):)D)D)FG   \0055a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__   -    $$&		(:(:(<dmm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    Ah((*!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88<<--hTYYOH *2):):)<r   r   r   r   __name__
__module____qualname____firstlineno__r   r   jitscript_methodr    r*   r7   __static_attributes____classcell__r   s   @r   r   r      se    [ YYM M YY! !
 YY r   r   c                      ^  \ rS rSrSr/ SQrU 4S 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   rG   rH   rI   rJ   r   r   r   r   r   r   r   r   r   r   r   s     r   r   _MkldnnConvNd.__init__*   s    "))#++$--"))(  ):):)D)D)FG
   \0055a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   rH   rG   rI   rJ   r   r3   s     r   r7   _MkldnnConvNd.forward@   sB    ''KKIILLKKMMKK 	r   )rI   rJ   rH   rG   )r;   r<   r=   r>   __doc____constants__r   r   r?   r@   r    r7   rA   rB   rC   s   @r   rE   rE   %   sO    7?M[$ YYM M YY r   rE   c                   `   ^  \ rS rSrU 4S jr\R                  R                  S 5       rSr	U =r
$ )MkldnnConv1dL   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'DU'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?   r@   r*   rA   rB   rC   s   @r   rW   rW   L   s'    M
 YY! !r   rW   c                   `   ^  \ rS rSrU 4S jr\R                  R                  S 5       rSr	U =r
$ )MkldnnConv2dY   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 rZ   )r   r   r   r   r/   r0   mkldnn_reorder_conv2d_weightr   r   rH   rG   rI   rJ   r   s      r   r   MkldnnConv2d.__init__Z   e    &Xuxx||'P'P))%0LLKKMMKK( 	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   rd   r   rH   rG   rI   rJ   r   r   r   r(   s     r   r*   MkldnnConv2d.__setstate__d   i    hhll??!H LLKKMMKK !H&&(	ar   r9   r_   rC   s   @r   ra   ra   Y   &     YY! !r   ra   c                   `   ^  \ rS rSrU 4S jr\R                  R                  S 5       rSr	U =r
$ )MkldnnConv3do   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 rZ   )r   r   r   r   r/   r0   mkldnn_reorder_conv3d_weightr   r   rH   rG   rI   rJ   r   s      r   r   MkldnnConv3d.__init__p   rf   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   ro   r   rH   rG   rI   rJ   r   r   r   r(   s     r   r*   MkldnnConv3d.__setstate__z   ri   r   r9   r_   rC   s   @r   rl   rl   o   rj   r   rl   c                      ^  \ rS rSrSS/rU 4S 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                 R  > [         TU ]  5         UR                  (       a   eUR                  (       d   eUR                  (       d   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 )Ng        r   r   running_meanrunning_var)r   r   r   track_running_statsaffinemomentumrv   rw   r   r   r   r   ry   rz   rL   s     r   r   MkldnnBatchNorm.__init__   s    ((((////""""  (.1D+.:.C.CD+##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   ry   rz   r   )r   r   r   ry   rz   s        r   r    MkldnnBatchNorm.__getstate__   s_    %%'yy!!#((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   ry   rz   r   r(   s     r   r*   MkldnnBatchNorm.__setstate__   s_    Ah((*!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   ry   rz   rv   rw   rR   s     r   r7   MkldnnBatchNorm.forward   sN    KKII++HH

 
	
r   )r   rw   rv   ry   rz   r   r   )r;   r<   r=   r>   rU   r   r   r?   r@   r    r*   r7   rA   rB   rC   s   @r   rt   rt      so    159MR$ YYH H YY! ! YY
 
r   rt   c                      ^  \ rS rSrU 4S 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 rZ   r[   r   s      r   r   MkldnnPrelu.__init__   s/    X|':':'D'DU'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!    Ah((*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:   rC   s   @r   r   r      sc    M YY7 7 YY! ! YY r   r   c                    ^^ U[         R                  [         R                  [         R                  4;   d   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   Conv1drW   Conv2dra   Conv3drl   BatchNorm2dBatchNorm3drt   PReLUr   )mds     r   m_fnto_mkldnn.<locals>.m_fn   s    a))%%588??++%%588??++%%588??++%%EHH00%((2F2FGHH #1%%588>>**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
++-KDE%!34 .r   )r   r   bfloat16half)moduler
   r   r   s     @@r   r   r      sG    U[[%..%**== A@A=$ F""r   )r   r?   ScriptModuler   rE   rW   ra   rl   rt   r   r   r    r   r   <module>r      s    599)) @$EII** $N
!= 
!!= !,!= !.1
eii,, 1
f%))(( * "KK #r   