+
    –°³j¹±  ã                   óò  € ^ RI Ht ^ RIHtHt ^ RIt^ RIt^ RIHtH	t	 ^ RI
Ht ^RIHtHtHtHtHtHtHtHtHtHtHtHtHtHt ^RIHtHtHt ^RIH t  R(R	 R
 llt!R)R R llt"R t# ! R R]4      t$ ! R R]4      t% ! R R]4      t& ! R R]4      t' ! R R]4      t( ! R R]4      t) ! R R]4      t* ! R R]4      t+ ! R R]4      t, ! R  R!]4      t- ! R" R#]4      t. ! R$ R%]4      t/ ! R& R']4      t0R# )*é    )ÚSequence)ÚAnyÚOptionalN)Úmake_channels_last_strides_forÚ
StrideType©Ú
OrderedSet)ÚExternKernelAllocÚFixedLayoutÚFlexibleLayoutÚget_device_typeÚir_node_to_tensorÚIRNodeÚ is_contiguous_storage_and_layoutÚLayoutÚmay_convert_to_optionalÚMultiOutputÚMultiOutputLayoutÚMutationOutputÚ
NoneLayoutÚ	TensorBox)Úconvert_shape_to_inductorÚpad_listlikeÚSUPPORTED_MKLDNN_DEVICES)ÚVc                ó  € V ^8„  d   QhRRRRRRR\         \        ,          R\         \        ,          R\         \        ,          R\        R	\        R
\         \        ,          R,          R\        R,          R,          R\        R,          /# )é   Úxr   ÚweightÚbiasÚpaddingÚstrideÚdilationÚgroupsÚ
transposedÚoutput_paddingNÚquantize_argsÚother)r   ÚintÚboolÚlistr   )Úformats   "ÚZ/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_inductor/mkldnn_ir.pyÚ__annotate__r.      s¶   € ÷ TIñ TIàðTIð ðTIð ð	TIô
 ”c�]ðTIô ”S�MðTIô ”s�mðTIô ðTIô ðTIô œS•M DÕ(ðTIô ˜Õ$ tÕ+ðTIô �KÕ ñTIó    c                ó  € R pRR lpR pVP                  4        VP                  4        Ve   VP                  4        \        P                  P                  ;_uu_ 4        \	        V4      p\	        V4      p\        VP                  4       4      ^,
          p^ \        V4      u;8  d   V8:  g   M \        RV 24      h^ \        V4      u;8  d   V8:  g   M \        RV 24      h^ \        V4      u;8  d   V8:  g   M \        RV 24      h\        VV4      p\        VV4      p\        VV4      pV	f   \        ^ .V4      p	M4^ \        V	4      u;8  d   V8:  g   M \        RV 24      h\        V	V4      p	\        V\        \        P                  P                  P                  34      '       g   \        R	\        V4       24      hV'       d)   V! VV4      pVP                  4       pV! VVVV	VVV4      pM£\!        VP"                  4      p\!        VP"                  4      p\        V4      \        V4      8w  dU   \        V4      ^8X  d   \        V4      ^8X  g$   \        R
\        V4       R\        V4       24      hVP%                  ^4       V! VVVVV4      p^ .\!        \'        \)        ^\        V4      ^,           4      4      4      ,           p\        V4      .V,           pRRR4       V P+                  VX4      p\,        ;QJ d    R X 4       F  '       d   K   RM	  RM! R X 4       4      '       * pV'       g   \/        V4      R8X  d)   \1        V4      '       d   \2        P4                  ! V4      pMN\/        V4      R8X  d4   VP7                  4       ^ ,          ^ 8X  d   \2        P4                  ! V4      pM\9        V4      p\/        V4      \/        V4      8w  d$   \        R\/        V4       R\/        V4       24      h\/        V4      \:        9  d   \        R\/        V4       24      hV.pV
ee   V
w  ppppVP                  4        VP                  4        VP                  4        VP                  4        VVV.,           V.,           VV.,           pM
VV.,          pVeJ   V P+                  VV4      p\        V\<        4      '       g   \        R\        V4       24      hVV.,          p\?        VPA                  4       VPC                  4       \E        V4      \E        V4      4      pWEWg.p V'       d   V PG                  ^V	4       Ve   VPI                  V4       MV PG                  ^ V4       VV VVV3#   + '       g   i     ELœ; i)ae  
This function is a helper function to prepare inputs, layout and constant args
for convolution post-op fusion's create function, including deciding the output
layout (channels first or channels last), realizing inputs and make them etc. The
function only supports the CPU/XPU device since conv post-op fusion kernel is only
supported on CPU/XPU right now.
c                 óz  € \        V 4      \        V4      8w  d   \        R 4      h\        V 4      pV^8:  d   \        R4      h^ p^p	. p
V
P                  W,          4       V
P                  W,          V,          4       \        ^V4       F—  pW,          ^,
          W[^,
          ,          ,          ^,           pW,          ^,
          WK^,
          ,          ,          W+^,
          ,          ^,          ,
          V,           W;^,
          ,          ,           pV
P                  V4       K™  	  \	        \        \        V
4      4      # )zExpect input dim == weight dimzExpect input dim > 2)ÚlenÚAssertionErrorÚappendÚranger+   Úmapr)   )Úoutput_sizeÚweight_sizer!   r&   r"   r#   r$   ÚdimÚ	BATCH_DIMÚWEIGHT_INPUT_CHANNELS_DIMÚ
input_sizeÚdÚkernelÚinput_size_ds   &&&&&&&       r-   Ú_conv_input_sizeÚ<_prepare_convolution_fusion_create.<locals>._conv_input_size6   s  € ô ˆ{Óœs ;Ó/Ô/Ü Ð!AÓBÐBÜ�+ÓˆØ�!Œ8Ü Ð!7Ó8Ð8àˆ	Ø$%Ð!Øˆ
Ø×Ñ˜+Õ0Ô1Ø×Ñ˜+Õ@À6ÕIÔJÜ�q˜#–ˆAØ!•n qÕ(¨H¸µU­OÕ;¸aÕ?ˆFà• !Õ# v°!­e¥}Õ4Ø˜q�5•> AÕ%õ'àõð ! Q¥Õ'õ(ð ð ×Ñ˜lÖ+ñ ô ”Cœ˜ZÓ(Ó)Ð)r/   Nc                 óÈ  € VR Jp\        V 4      p. pVP                  V ^ ,          4       VP                  V^ ,          4       \        ^V4       F�  pV'       d   WH^,
          ,          M^p	W‘V,          ^,
          ,          ^,           p
W,          ^W(^,
          ,          ,          ,           V
,
          VV^,
          ,          ,          ^,           pVP                  V4       K’  	  V# ©N)r2   r4   r5   )r<   r8   r!   r"   r#   Úhas_dilationr9   r7   r=   Ú	dilation_r>   Úoutput_size_ds   &&&&&       r-   Ú_conv_output_sizeÚ=_prepare_convolution_fusion_create.<locals>._conv_output_sizeP   sÃ   € Ø tÐ+ˆÜ�*‹oˆØˆØ×Ñ˜: a�=Ô)Ø×Ñ˜; q�>Ô*Ü�q˜#–ˆAç+7˜ Q¥ž¸QˆIØ¨a¥.°1Õ"4Õ5¸Õ9ˆFØ'�]¨a°'¸a½%µ.Õ.@ÕAÀFÕJÈvØ�A•õPõ àõˆMð ×Ñ˜}Ö-ñ ð Ðr/   c                 ó~  a€ V P                  4       o\        S4      pV^8:  d   \        R4      hV^8”  dh   . pVP                  S^,          V,          4       VP                  S^ ,          V,          4       VP	                  V3R l\        ^V4       4       4       V# V P                  ^ ^4      P                  4       pV# )r   zExpect weight dim > 2c              3   ó6   <"  € T F  pSV,          x € K  	  R # 5irC   © )Ú.0r=   Úprepacked_weight_sizes   & €r-   Ú	<genexpr>Ú[_prepare_convolution_fusion_create.<locals>._original_deconv_weight_size.<locals>.<genexpr>p   s   øé € ÐOÁ¸AÐ4°Q×7Ò7Ãùs   ƒ)Úsizer2   r3   r4   Úextendr5   Ú	transpose)Úprepacked_weightr$   r9   r8   rM   s   &&  @r-   Ú_original_deconv_weight_sizeÚH_prepare_convolution_fusion_create.<locals>._original_deconv_weight_sized   sµ   ø€ ð !1× 5Ñ 5Ó 7ÐÜÐ'Ó(ˆØ�!Œ8Ü Ð!8Ó9Ð9Ø�AŒ:ØˆKØ×ÑÐ4°QÕ7¸&Õ@ÔAØ×ÑÐ4°QÕ7¸&Õ@ÔAØ×ÑÔOÄÀqÈ#ÄÓOÔOð Ðð +×4Ñ4°Q¸Ó:×?Ñ?ÓAˆKØÐr/   zexpected 0 < len(padding) <= zexpected 0 < len(dilation) <= zexpected 0 < len(stride) <= z$expected 0 < len(output_padding) <= zexpected groups to be int, got z;expected len(x_shape) == 3 and len(weight_shape) == 4, got ú and c              3   óB   "  € T F  p\        V\        4      x € K  	  R # 5irC   )Ú
isinstancer)   )rL   Úis   & r-   rN   Ú5_prepare_convolution_fusion_create.<locals>.<genexpr>¼   s   é € ÐG¹+°AœZ¨¬3×/Ð/»+ùs   ‚FTÚxpuú*expected x and weight on same device, got úunsupported mkldnn device z$expected other to be TensorBox, got rC   )%Úrealizer   ÚgraphÚ	fake_moder   r2   rP   r3   r   rX   r)   ÚsympyÚcoreÚnumbersÚIntegerÚtyper+   ÚshapeÚpopÚreversedr5   Úrequire_stride_orderÚallr   r   r   Úcontiguous_stridesÚ
get_strider   r   r   r   Úget_device_or_errorÚ	get_dtyper   Úinsertr4   )!Úclsr   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r@   rG   rT   Úx_fakeÚweight_fakeÚdimsr8   r<   r7   Úx_shapeÚweight_shapeÚreq_stride_orderÚdynamic_shapesÚoutput_strideÚinputsÚx_scaleÚx_zero_pointÚw_scaleÚw_zero_pointÚkernel_layoutÚconstant_argss!   &&&&&&&&&&&&                     r-   Ú"_prepare_convolution_fusion_creater€      sì  € ò.*ô4ò(ð" ‡I�I„KØ
‡N�NÔØÒØ�‰ŒÜ	
�‰×	×	Ó	ä" 1Ó%ˆÜ'¨Ó/ˆÜ�6—;‘;“=Ó! AÕ%ˆØ”C˜“LÖ( DÖ(Ü Ð#@ÀÀÐ!GÓHÐHØ”C˜“MÖ) TÖ)Ü Ð#AÀ$ÀÐ!HÓIÐIØ”C˜“KÖ' 4Ö'Ü Ð#?À¸vÐ!FÓGÐGÜ˜w¨Ó-ˆÜ ¨$Ó/ˆÜ˜f dÓ+ˆØÒ!Ü)¨1¨#¨tÓ4‰Nàœ˜NÓ+Ö3¨tÖ3Ü$Ð'KÈDÈ6Ð%RÓSÐSÜ)¨.¸$Ó?ˆNÜ˜&¤3¬¯
©
×(:Ñ(:×(BÑ(BÐ"C×DÒDÜ Ð#BÄ4ÈÃ<À.Ð!QÓRÐRßñ 7°{ÀFÓKˆKØŸ™›ˆJÙ*ØØØØØØØó‰Kô ˜6Ÿ<™<Ó(ˆGÜ × 1Ñ 1Ó2ˆLÜ�7‹|œs <Ó0Ô0Ü˜G›¨Ô)¬c°,Ó.?À1Ô.DÜ(ðÜ" 7›|˜n¨E´#°lÓ2CÐ1DðFóð ð × Ñ  Ô#Ù+ØØØØØóˆKð ˜3¤¤h¬u°Q¼¸F»Àa½Ó/HÓ&IÓ!JÕJÐÜÐ 0Ó1Ð2Ð5EÕEÐ÷q 
ðt 	× Ñ  Ð$4Ó5€A÷ ›ÑG¹+ÓGŸŸšÑG¹+ÓGÓGÔG€Nçœ/¨!Ó,°Ô5Ü
*¨1×
-Ò
-Ü$2×$EÒ$EÀkÓ$R‰ô 
˜Ó	˜uÔ	$¨¯©«¸Õ):¸aÔ)?Ü&×9Ò9¸+ÓF‰ä6°{ÓCˆä�qÓœ_¨VÓ4Ô4ÜØ8Ü˜qÓ!Ð" %¬¸Ó(?Ð'@ðBó
ð 	
ô �qÓÔ!9Ô9ÜÐ9¼/È!Ó:LÐ9MÐNÓOÐOØˆS€FàÒ Ø7DÑ4ˆ�˜w¨Ø�‰ÔØ×ÑÔØ�‰ÔØ×ÑÔØ˜7 LÐ1Õ1°V°HÕ<ÀÈÐ?VÕV‰à�6�(ÕˆàÒØ×(Ñ(¨Ð0@ÓAˆÜ˜%¤×+Ò+Ü Ð#GÌÈUËÀ}Ð!UÓVÐVØ�5�'ÕˆäØ	×ÑÓØ	�‰‹Ü! +Ó.Ü! -Ó0ó	€Mð  hÐ7€MßØ×Ñ˜Q Ô/àÒØ�‰�dÕà×Ñ˜Q Ô%Ø�= -Ð1AÀ5ÐHÐH÷u 
×	Ð	ús   Á"E1U;ÇDU;Õ;V	c                ór   € V ^8„  d   QhRRRRRRR\         R,          R,          R\        R,          R\        /# )	r   r   r   r   r    r'   Nr(   Ú
binary_sum)r+   r   r*   )r,   s   "r-   r.   r.   ö   se   € ÷ AIñ AIàðAIð ðAIð ð	AIô
 ˜Õ$ tÕ+ðAIô �KÕ ðAIô ñAIr/   c           
     ó@  € VP                  4        VP                  4        Ve   VP                  4        VP                  4       Ev rxVP                  4       w  r‰\        V4      V	.,           p
\        \        \	        \        VP                  4       4      4      4      4      pV P                  W4      p\        V4      \        V4      8w  d$   \        R\        V4       R\        V4       24      h\        V4      \        9  d   \        R\        V4       24      hV.pVec   Vw  rÞppVP                  4        VP                  4        VP                  4        VP                  4        WÍV.,           V.,           VV.,           pM	WÂ.,          pVe#   V'       d   V P                  W[4      pWÅ.,           p\        P                  ! V
4      p\        VP                  4       VP                  4       V
V4      p. pVe   VP                  V4       MVP!                  ^ V4       VVVWµ3# )zî
This function is a helper function to prepare inputs, layout and constant args
for linear post-op fusion's create function. The function only supports the CPU device
since linear post-op fusion kernel is only supported on CPU right now.
r\   rV   r]   )r^   Úget_sizer+   rh   r5   r2   ri   r   r3   r   r   rk   r   Ú
get_devicern   r4   ro   )rp   r   r   r    r'   r(   r‚   ÚmÚ_Úocr7   rv   ry   rz   r{   r|   r}   rx   r~   r   s   &&&&&&&             r-   Ú_prepare_linear_fusion_creater‰   ö   så  € ð ‡I�I„KØ
‡N�NÔØÒØ�‰Œà�J‰J‹L�E€Qð �O‰OÓ�E€AÜ�q“'˜R˜D•.€KÜœH¤U¬3¨q¯z©z«|Ó+<Ó%=Ó>Ó?Ðà× Ñ  Ó5€AÜ�qÓœ_¨VÓ4Ô4ÜØ8Ü˜qÓ!Ð" %¬¸Ó(?Ð'@ðBó
ð 	
ô �qÓÔ!9Ô9ÜÐ9¼/È!Ó:LÐ9MÐNÓOÐOØˆS€FàÒ Ø7DÑ4ˆ˜w¨Ø�‰ÔØ×ÑÔØ�‰ÔØ×ÑÔØ LÐ1Õ1°V°HÕ<ÀÈÐ?VÕV‰à�(ÕˆàÒßØ×,Ñ,¨UÓEˆEØ˜'Õ!ˆä"×5Ò5°kÓB€MÜØ	�‰‹Ø	�‰‹ØØó	€Mð  "€MàÒØ�‰�dÕà×Ñ˜Q Ô%Ø�= -Ð1AÐHÐHr/   c                 óŠ   € \        V P                  4       V . 4      p\        V P                  4       R 7      V n        V.V n        V# )©Údevice)r   Ú
get_layoutr   r…   ÚlayoutÚoutputs)ÚpackedÚ	output_irs   & r-   Ú_create_output_noder’   :  sD   € ÜØ×ÑÓØØ
ó€Iô
 &¨V×->Ñ->Ó-@ÔA€F„MØ�[€F„NØÐr/   c                   ój   a a€ ] tR tRt oRV3R lV 3R llltV 3R lt]V3R lR l4       tRtVt	V ;t
# )	ÚConvolutionUnaryiE  c                ó   <€ V ^8„  d   QhRR/# ©r   ÚreturnNrK   )r,   Ú__classdict__s   "€r-   r.   ÚConvolutionUnary.__annotate__F  ó   ø€ ÷ 
ñ 
ð
 
ñ
r/   c           
     óÔ   <€ \        V^ ,          4      V n        \        SV `  VVVR\        P
                  P                  P                  P                  RV P                   R2R7       R# )r   NÚaoti_torch_Ú_mkldnn__convolution_pointwise©Úop_overloadÚcpp_kernel_name)	r   Údevice_typeÚsuperÚ__init__ÚtorchÚopsÚmkldnnÚ_convolution_pointwiseÚdefault©ÚselfrŽ   ry   r   Ú	__class__s   &&&&€r-   r£   ÚConvolutionUnary.__init__F  sa   ø€ ô +¨6°!­9Ó5ˆÔÜ‰ÑØØØØÜŸ	™	×(Ñ(×?Ñ?×GÑGØ)¨$×*:Ñ*:Ð);Ð;YÐZð 	ö 	
r/   c                ód   <€ VP                  R V P                   R24       \        SV `  V4       R# ©z&torch/csrc/inductor/aoti_torch/c/shim_z.hN©Úinclude_extra_headerr¡   r¢   Úcodegen©rª   Úwrapperr«   s   &&€r-   r±   ÚConvolutionUnary.codegenV  ó2   ø€ Ø×$Ñ$Ø4°T×5EÑ5EÐ4FÀbÐIô	
ô 	‰‰˜Ö r/   c                ó’   <€ V ^8„  d   QhRRRRRRRS[ S[,          RS[ S[,          RS[ S[,          RS[R	S[ S[,          R
,          /# )r   r   r   r   r    Úpadding_Ústride_rE   r$   ÚscalarsN©r+   r)   r   )r,   r˜   s   "€r-   r.   r™   ]  sp   ø€ ÷  +ñ  +àð +ð ð +ð ð	 +ñ
 ‘s•)ð +ñ ‘c•ð +ñ ™•9ð +ñ ð +ñ ‘c•˜TÕ!ñ +r/   c           
     ó†   € \        WW#WEWg4      w  pppppVV\        V	4      V
.,           p\        VVVR 7      p\        V4      # )©rŽ   ry   r   )r€   r   r”   r’   )rp   r   r   r    r·   r¸   rE   r$   Úattrr¹   Ú	algorithmry   r   r~   r‡   r�   s   &&&&&&&&&&&     r-   ÚcreateÚConvolutionUnary.create\  sj   € ô( /Ø�F (°Yó
ñ	
ØØØØØð &ØÜ# GÓ,Øð)
õ 
ˆô
 "Ø ØØ'ô
ˆô
 # 6Ó*Ð*r/   ©r¡   ©rK   ©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r£   r±   Úclassmethodr¿   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r«   r˜   s   @@r-   r”   r”   E  s-   ù‡ € ÷
õ 
õ !ð ÷ +ó ÷ +ð  +r/   r”   c                   ój   a a€ ] tR tRt oRV3R lV 3R llltV 3R lt]V3R lR l4       tRtVt	V ;t
# )	ÚConvolutionBinaryi€  c                ó   <€ V ^8„  d   QhRR/# r–   rK   )r,   r˜   s   "€r-   r.   ÚConvolutionBinary.__annotate__�  s   ø€ ÷ 3ñ 3ð 
ñ3r/   c           
     óà   <€ \        V^ ,          4      V n        \        SV `  VVVR\        P
                  P                  P                  P                  RV P                   R2R7       W@n	        R# )r   Nrœ   Ú%_mkldnn__convolution_pointwise_binaryrž   )
r   r¡   r¢   r£   r¤   r¥   r¦   r§   ÚbinaryÚcpp_constant_args)rª   rŽ   ry   r   rÔ   r«   s   &&&&&€r-   r£   ÚConvolutionBinary.__init__�  si   ø€ ô +¨6°!­9Ó5ˆÔÜ‰ÑØØØØÜŸ	™	×(Ñ(×?Ñ?×FÑFØ)¨$×*:Ñ*:Ð);Ð;`Ðað 	ô 	
ð "3Ör/   c                ód   <€ VP                  R V P                   R24       \        SV `  V4       R# r®   r¯   r²   s   &&€r-   r±   ÚConvolutionBinary.codegen“  rµ   r/   c                óØ   <€ V ^8„  d   QhRRRRRRRRRS[ S[,          RS[ S[,          RS[ S[,          R	S[R
S[RS[R,          RS[R,          RS[ S[,          R,          RS[R,          /# ©r   r   r   r(   r   r    r·   r¸   rE   r$   Úbinary_attrÚbinary_alphaNÚ
unary_attrÚunary_scalarsÚunary_algorithm©r+   r)   ÚstrÚfloatr   )r,   r˜   s   "€r-   r.   rÐ   š  s®   ø€ ÷ (+ñ (+àð(+ð ð(+ð ð	(+ð
 ð(+ñ ‘s•)ð(+ñ ‘c•ð(+ñ ™•9ð(+ñ ð(+ñ ð(+ñ ˜d•lð(+ñ ˜$•Jð(+ñ ™C•y 4Õ'ð(+ñ ˜t�ñ(+r/   c           
     óÒ   € \        WW4WVWx4      w  pppppV P                  VV4      pVP                  ^V4       VV	V
V\        V4      V.,           p\	        VVVR7      p\        V4      # )é   r¼   )r€   ri   ro   r   rÎ   r’   )rp   r   r(   r   r    r·   r¸   rE   r$   rÚ   rÛ   rÜ   rÝ   rÞ   ry   r   r~   rv   r‡   r�   s   &&&&&&&&&&&&&&      r-   r¿   ÚConvolutionBinary.create™  s‘   € ô. /Ø�F (°Yó
ñ	
ØØØØØð
 ×(Ñ(¨Ð0@ÓAˆØ�‰�a˜ÔØ%ØØØÜ# MÓ2Øð)
õ 
ˆô #Ø ØØ'ô
ˆô
 # 6Ó*Ð*r/   )rÔ   r¡   )rK   rK   rÃ   rÌ   s   @@r-   rÎ   rÎ   €  s-   ù‡ € ÷3õ 3õ$!ð ÷(+ó ÷(+ð (+r/   rÎ   c                   ó|   a a€ ] tR tRt oR
V3R lV 3R llltV 3R ltV3R lR lt]V3R lR l4       tR	t	Vt
V ;t# )ÚConvolutionBinaryInplaceiÅ  c                ó   <€ V ^8„  d   QhRR/# r–   rK   )r,   r˜   s   "€r-   r.   Ú%ConvolutionBinaryInplace.__annotate__Æ  s   ø€ ÷ 
ñ 
ð
 
ñ
r/   c           
     óê  <€ \        V^ ,          4      V n        V^,          V^ ,          .VR,          ,           p\        SV `  VVVR\        P
                  P                  P                  P                  RV P                   R2R7       \        \        V^ ,          P                  4       R7      V^ ,          V 4      \        \        V^,          P                  4       R7      V^,          V 4      .V n        R# )r   :r   NNNrœ   Ú&_mkldnn__convolution_pointwise_binary_rž   r‹   )r   r¡   r¢   r£   r¤   r¥   r¦   Ú_convolution_pointwise_rÓ   r   r   r…   Úmutation_outputs)rª   r~   ry   r   Úreordered_inputsr«   s   &&&& €r-   r£   Ú!ConvolutionBinaryInplace.__init__Æ  sÏ   ø€ ô +¨6°!­9Ó5ˆÔØ" 1�I v¨a¥yÐ1°F¸2µJÕ>Ðä‰ÑØØØØÜŸ	™	×(Ñ(×@Ñ@×GÑGØ)¨$×*:Ñ*:Ð);Ð;aÐbð 	ô 	
ô œ:¨V°A­Y×-AÑ-AÓ-CÔDÀfÈQÅiÐQUÓVÜœ:¨V°A­Y×-AÑ-AÓ-CÔDÀfÈQÅiÐQUÓVð!
ˆÖr/   c                ód   <€ VP                  R V P                   R24       \        SV `  V4       R# r®   r¯   r²   s   &&€r-   r±   Ú ConvolutionBinaryInplace.codegenÞ  rµ   r/   c                óD   <€ V ^8„  d   QhRS[ S[P                  ,          /# ©r   r—   ©r	   ra   ÚSymbol)r,   r˜   s   "€r-   r.   rè   ä  ó   ø€ ÷ ñ ©*±U·\±\Õ*Bñ r/   c                ó   € \        4       # rC   r   ©rª   s   &r-   Úget_unbacked_symbol_defsÚ1ConvolutionBinaryInplace.get_unbacked_symbol_defsä  ó
   € Ü‹|Ðr/   c                óØ   <€ V ^8„  d   QhRRRRRRRRRS[ S[,          RS[ S[,          RS[ S[,          R	S[R
S[RS[R,          RS[R,          RS[ S[,          R,          RS[R,          /# rÙ   rß   )r,   r˜   s   "€r-   r.   rè   è  s®   ø€ ÷ + ñ + àð+ ð ð+ ð ð	+ ð
 ð+ ñ ‘s•)ð+ ñ ‘c•ð+ ñ ™•9ð+ ñ ð+ ñ ð+ ñ ˜d•lð+ ñ ˜$•Jð+ ñ ™C•y 4Õ'ð+ ñ ˜t�ñ+ r/   c           
     ó   € \        WW4WVWx4      w  pppppV P                  VV4      pVP                  ^V4       VV	V
V\        V4      V.,           p\	        \        V^,          P                  4       R7      VVR7      pVP                  ^ ,          # )rã   r‹   )r~   ry   r   )r€   ri   ro   r   ræ   r   r…   ry   )rp   r   r(   r   r    r·   r¸   rE   r$   rÚ   rÛ   rÜ   rÝ   rÞ   ry   r   r‡   rv   r�   s   &&&&&&&&&&&&&&     r-   r¿   ÚConvolutionBinaryInplace.createç  s§   € ô. /Ø�F (°Yó
ñ	
ØØØØØð
 ×(Ñ(¨Ð0@ÓAˆØ�‰�a˜ÔØ%ØØØÜ# MÓ2Øð)
õ 
ˆô *Ü$¨F°1­I×,@Ñ,@Ó,BÔCØØ'ô
ˆð �}‰}˜QÕÐr/   )r¡   rì   rÂ   )rÄ   rÅ   rÆ   rÇ   r£   r±   rø   rÈ   r¿   rÉ   rÊ   rË   rÌ   s   @@r-   ræ   ræ   Å  s7   ù‡ € ÷
õ 
õ0!÷ð ð ÷+ ó ÷+ ð + r/   ræ   c                   ój   a a€ ] tR tRt oRV3R lV 3R llltV 3R lt]V3R lR l4       tRtVt	V ;t
# )	ÚConvolutionTransposeUnaryi  c                ó   <€ V ^8„  d   QhRR/# r–   rK   )r,   r˜   s   "€r-   r.   Ú&ConvolutionTransposeUnary.__annotate__  rš   r/   c           
     óÔ   <€ \        V^ ,          4      V n        \        SV `  VVVR\        P
                  P                  P                  P                  RV P                   R2R7       R# )r   Nrœ   Ú(_mkldnn__convolution_transpose_pointwiserž   )	r   r¡   r¢   r£   r¤   r¥   r¦   Ú _convolution_transpose_pointwiser¨   r©   s   &&&&€r-   r£   Ú"ConvolutionTransposeUnary.__init__  sa   ø€ ô +¨6°!­9Ó5ˆÔÜ‰ÑØØØØÜŸ	™	×(Ñ(×IÑI×QÑQØ)¨$×*:Ñ*:Ð);Ð;cÐdð 	ö 	
r/   c                ód   <€ VP                  R V P                   R24       \        SV `  V4       R# r®   r¯   r²   s   &&€r-   r±   Ú!ConvolutionTransposeUnary.codegen'  rµ   r/   c                ó¨   <€ V ^8„  d   QhRRRRRRRS[ S[,          RS[ S[,          RS[ S[,          RS[ S[,          R	S[R
S[ S[,          R,          /	# )r   r   r   r   r    r·   Úoutput_padding_r¸   rE   Úgroups_r¹   Nrº   )r,   r˜   s   "€r-   r.   r  .  s~   ø€ ÷ ++ñ ++àð++ð ð++ð ð	++ñ
 ‘s•)ð++ñ ™c�ð++ñ ‘c•ð++ñ ™•9ð++ñ ð++ñ ‘c•˜TÕ!ñ++r/   c                ó–   € R p\        V VVVVVVVVV4
      w  pppppVV	\        V
4      V.,           p\        VVVR7      p\        V4      # )Tr¼   )r€   r   rÿ   r’   )rp   r   r   r    r·   r	  r¸   rE   r
  r½   r¹   r¾   r%   ry   r   r~   r‡   r�   s   &&&&&&&&&&&&      r-   r¿   Ú ConvolutionTransposeUnary.create-  s†   € ð ˆ
ô /ØØØØØØØØØØó
ñ	
ØØØØØð &ØÜ# GÓ,Øð)
õ 
ˆô
 +Ø ØØ'ô
ˆô
 # 6Ó*Ð*r/   rÁ   rÂ   rÃ   rÌ   s   @@r-   rÿ   rÿ     s-   ù‡ € ÷
õ 
õ !ð ÷++ó ÷++ð ++r/   rÿ   c                   ój   a a€ ] tR tRt oRV3R lV 3R llltV 3R lt]V3R lR l4       tRtVt	V ;t
# )	ÚQConvPointWisePT2Ei\  c                ó   <€ V ^8„  d   QhRR/# r–   rK   )r,   r˜   s   "€r-   r.   ÚQConvPointWisePT2E.__annotate__]  s   ø€ ÷ 
ñ 
ð
 
ñ
r/   c           
     óú   <€ \        V^ ,          4      V n        \        V4      ^8H  V n        \        SV `  VVVR\        P                  P                  P                  P                  RV P                   R2R7       R# )a­  
if bias is not None
    - inputs = [x, w, b, weight_scale, weight_zp]
    - const_args is: [stride, padding, dilation, groups, x_scale, x_zp, o_scale, o_zp,
      fp32_output, unary_attr, unary_scalars, unary_algorithm]
else
    - inputs = [x, w, weight_scale, weight_zp]
    - const_args is: [bias, stride, padding, dilation, groups, x_scale, x_zp, o_scale, o_zp,
      fp32_output, unary_attr, unary_scalars, unary_algorithm]
Nrœ   Ú__qconv_pointwise_tensorrž   )r   r¡   r2   Úhas_biasr¢   r£   r¤   r¥   ÚonednnÚqconv_pointwiseÚtensorr©   s   &&&&€r-   r£   ÚQConvPointWisePT2E.__init__]  sq   ø€ ô  +¨6°!­9Ó5ˆÔÜ˜F› qÑ(ˆŒÜ‰ÑØØØØÜŸ	™	×(Ñ(×8Ñ8×?Ñ?Ø)¨$×*:Ñ*:Ð);Ð;SÐTð 	ö 	
r/   c                óÊ   <€ VP                  R V P                   R24       \        SV `  V4       \	        V P
                  \        4      '       d   V P                  V4       R# R# r®   ©r°   r¡   r¢   r±   rX   rŽ   r   Úcodegen_size_assertsr²   s   &&€r-   r±   ÚQConvPointWisePT2E.codegenx  óV   ø€ Ø×$Ñ$Ø4°T×5EÑ5EÐ4FÀbÐIô	
ô 	‰‰˜Ô Ü�d—k‘k¤6×*Ò*Ø×%Ñ% gÖ.ñ +r/   c                ó†   <€ V ^8„  d   QhRRRRRRRRRRRRRS[ S[,          R	S[ S[,          R
S[ S[,          RS[RS[RS[/# )r   Úqxr   rz   r{   Úqwr|   r    r"   r!   r#   r$   Úoutput_scaleÚoutput_zero_point)r+   r)   rá   )r,   r˜   s   "€r-   r.   r  �  s�   ø€ ÷ C
ñ C
àðC
ð ðC
ð "ð	C
ð
 ðC
ð ðC
ð ðC
ñ ‘S•	ðC
ñ ‘c•ðC
ñ ‘s•)ðC
ñ ðC
ñ ðC
ñ ñC
r/   c                ót  € R pRp\        V VVVV	VV
VVVW#WV.4      w  pppppVf   V^,          V^,          uV^&   V^&   MV^,          V^ ,          uV^ &   V^&   VVVVV\        V4      V.,           pVf   \        R4      hV\        P                  \        P
                  39   d   VVn        \        VVVR7      # )FNú$expected output_dtype to be not Noner¼   )r€   r   r3   r¤   Úfloat32Úbfloat16Údtyper  )rp   r  rz   r{   r  r|   r}   r    r"   r!   r#   r$   r   r!  Úoutput_dtyper½   r¹   r¾   r%   r&   ry   r   r~   r‡   s   &&&&&&&&&&&&&&&&&&      r-   r¿   ÚQConvPointWisePT2E.create€  s
  € ð* ˆ
Øˆô /ØØØØØØØØØØØ GÐ:ó
ñ	
ØØØØØð Š<Ø1>¸qÕ1AÀ=ÐQRÕCSÐ.ˆM˜!Ñ˜m¨AÒ.à1>¸qÕ1AÀ=ÐQRÕCSÐ.ˆM˜!Ñ˜m¨AÑ.à%ØØØØÜ# GÓ,Øð)
õ 
ˆð ÒÜ Ð!GÓHÐHØœEŸM™M¬5¯>©>Ð:Ô:ð #/ˆMÔä!Ø ØØ'ô
ð 	
r/   ©r¡   r  rÂ   rÃ   rÌ   s   @@r-   r  r  \  s0   ù‡ € ÷
õ 
õ6/ð ÷C
ó ÷C
ð C
r/   r  c                   óŽ   a a€ ] tR tRt oRV3R lV 3R llltV 3R ltV3R lR ltV3R lR lt]V3R	 lR
 l4       t	Rt
VtV ;t# )ÚQConvPointWiseBinaryPT2EiÇ  c                ó   <€ V ^8„  d   QhRR/# r–   rK   )r,   r˜   s   "€r-   r.   Ú%QConvPointWiseBinaryPT2E.__annotate__È  s   ø€ ÷ 
ñ 
ð
 
ñ
r/   c           
     ó  <€ \        V^ ,          4      V n        \        V4      ^8H  V n        ^V n        \
        SV `  VVVR\        P                  P                  P                  P                  RV P                   R2R7       R# )a  
Needs input/weight/output qparams
if bias is not None
    - inputs = [x, x_scale, x_zp, w,  w_scale, w_zp, accum, b]
    - const_args = [stride, padding, dilation, groups, o_scale, o_zp,
    output_dtype, accum_scale, accum_zp, binary_attr, alpha, unary_attr, unary_scalars, unary_algorithm]
else
    - inputs = [x, x_scale, x_zp, w,  w_scale, w_zp, accum]
    - const_args [b, stride, padding, dilation, groups, o_scale, o_zp,
     output_dtype, accum_scale, accum_zp, binary_attr, alpha, unary_attr, unary_scalars, unary_algorithm]
Nrœ   Ú!__qconv2d_pointwise_binary_tensorrž   )r   r¡   r2   r  Úidx_for_inplace_sumr¢   r£   r¤   r¥   r  Úqconv2d_pointwiseÚbinary_tensorr©   s   &&&&€r-   r£   Ú!QConvPointWiseBinaryPT2E.__init__È  sy   ø€ ô" +¨6°!­9Ó5ˆÔÜ˜F› qÑ(ˆŒØ#$ˆÔ Ü‰ÑØØØØÜŸ	™	×(Ñ(×:Ñ:×HÑHà˜d×.Ñ.Ð/Ð/PÐQð 	ö 		
r/   c                óÊ   <€ VP                  R V P                   R24       \        SV `  V4       \	        V P
                  \        4      '       d   V P                  V4       R# R# r®   r  r²   s   &&€r-   r±   Ú QConvPointWiseBinaryPT2E.codegenç  r  r/   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# rò   ©r   rà   )r,   r˜   s   "€r-   r.   r-  ï  s   ø€ ÷ ;ñ ;¡H©S¥Mñ ;r/   c                ó:   € V P                  V P                  4      .# rC   )Ú
input_namer0  r÷   s   &r-   Úget_mutation_namesÚ+QConvPointWiseBinaryPT2E.get_mutation_namesï  s   € Ø—‘ × 8Ñ 8Ó9Ð:Ð:r/   c                óD   <€ V ^8„  d   QhRS[ S[P                  ,          /# rò   ró   )r,   r˜   s   "€r-   r.   r-  ò  rõ   r/   c                ó   € \        4       # rC   r   r÷   s   &r-   rø   Ú1QConvPointWiseBinaryPT2E.get_unbacked_symbol_defsò  rú   r/   c                ó‚   <€ V ^8„  d   QhRRRRRRRRRRRRRS[ S[,          R	S[ S[,          R
S[ S[,          RS[RRRR/# )r   r  r   rz   r{   r  Úqaccumr    r"   r!   r#   r$   r   r!  )r+   r)   )r,   r˜   s   "€r-   r.   r-  ö  s�   ø€ ÷ P9ñ P9àðP9ð ðP9ð "ð	P9ð
 ðP9ð ðP9ð ðP9ñ ‘S•	ðP9ñ ‘c•ðP9ñ ‘s•)ðP9ñ ðP9ð "ðP9ð 'ñP9r/   c                óð  € R pRp\        V VVVV
V	VVVVW#WV.V4      w  pppppVf   V^,          V^,          uV^&   V^&   MV^,          V^ ,          uV^ &   V^&   VVVVVVVVV\        V4      V.
,           pVR8w  d   \        R4      h\        P                  P                  VP                  4       4       \        \        VP                  4       R7      VVR7      pVP                  VP                  ,          # )FNÚsumzCFor now, only post op sum is supported in QConvPointWiseBinaryPT2E.r‹   r¼   )r€   r   r3   r   r_   Úmark_buffer_mutatedÚget_namer+  r   r…   ry   r0  )rp   r  rz   r{   r  r|   r}   r@  r    r"   r!   r#   r$   r   r!  r'  Úaccum_scaleÚaccum_zero_pointrÚ   ÚalpharÜ   rÝ   rÞ   r%   r&   ry   r   Ú_kernel_layoutrv   r�   s   &&&&&&&&&&&&&&&&&&&&&&&       r-   r¿   ÚQConvPointWiseBinaryPT2E.createõ  s=  € ð4 ˆ
Øˆô /ØØØØØØØØØØØ GÐ:Øó
ñ	
ØØØØØð" Š<Ø1>¸qÕ1AÀ=ÐQRÕCSÐ.ˆM˜!Ñ˜m¨AÒ.à1>¸qÕ1AÀ=ÐQRÕCSÐ.ˆM˜!Ñ˜m¨AÑ.à%ØØØØØØØØÜ# MÓ2Øð)
õ 
ˆð ˜%ÔÜ ØUóð ô 	
�‰×#Ñ# F§O¡OÓ$5Ô6Ü)Ü V×%6Ñ%6Ó%8Ô9ØØ'ô
ˆð �}‰}˜V×7Ñ7Õ8Ð8r/   ©r¡   r  r0  rÂ   )rÄ   rÅ   rÆ   rÇ   r£   r±   r:  rø   rÈ   r¿   rÉ   rÊ   rË   rÌ   s   @@r-   r+  r+  Ç  sD   ù‡ € ÷
õ 
õ>/÷;ð ;÷ð ð ÷P9ó ÷P9ð P9r/   r+  c                   ó^   a a€ ] tR tRt oRV3R lV 3R llltV 3R lt]R 4       tRtVt	V ;t
# )ÚMKLPackedLineariI  c                ó   <€ V ^8„  d   QhRR/# r–   rK   )r,   r˜   s   "€r-   r.   ÚMKLPackedLinear.__annotate__J  ó   ø€ ÷ 
ñ 
ð
 
ñ
r/   c                óˆ   <€ \         SV `  VVVR \        P                  P                  P
                  P                  R7       R # ©N)rŸ   )r¢   r£   r¤   r¥   ÚmklÚ_mkl_linearr¨   r©   s   &&&&€r-   r£   ÚMKLPackedLinear.__init__J  s:   ø€ ô 	‰ÑØØØØÜŸ	™	Ÿ™×1Ñ1×9Ñ9ð 	ö 	
r/   c                óH   <€ VP                  R 4       \        SV `	  V4       R# ©ú+torch/csrc/inductor/aoti_torch/c/shim_cpu.hN©r°   r¢   r±   r²   s   &&€r-   r±   ÚMKLPackedLinear.codegenX  s   ø€ Ø×$Ñ$Ð%RÔSÜ‰‰˜Ö r/   c                óô  € V P                  V P                  V4      4      pV P                  V P                  V4      4      pVP                  4       Ev rgVP                  4       w  r‡\        V4      V.,           p	\        P
                  ! V	4      p
WV.pV.pVe   W´.,          pMVP                  ^ R 4       VP                  4       pVf   \        R4      h\        \        WÑP                  4       Wš4      VVR7      # )Núexpected x to have a devicer¼   )Úrequire_stride1Úrealize_inputr„   r+   r   rk   ro   r…   r3   rL  r   rn   )rp   r   Úpacked_wÚorig_wÚBÚ
batch_sizer†   r‡   rˆ   r7   rx   ry   r   rŒ   s   &&&&&&        r-   r¿   ÚMKLPackedLinear.create\  sà   € à×Ñ × 1Ñ 1°!Ó 4Ó5ˆØ×$Ñ$ S×%6Ñ%6°vÓ%>Ó?ˆØ—
‘
“‰ˆØ—‘Ó!‰ˆÜ˜1“g  •nˆÜ&×9Ò9¸+ÓFˆØ˜vÐ&ˆØ#˜ˆØŠ=Ø�c�M‰Fà× Ñ   DÔ)à—‘“ˆØŠ>Ü Ð!>Ó?Ð?ÜÜ˜v§{¡{£}°kÓQØØ'ô
ð 	
r/   rK   rÂ   rÃ   rÌ   s   @@r-   rL  rL  I  s-   ù‡ € ÷
õ 
õ!ð ñ
ó ÷
ð 
r/   rL  c                   ód   a a€ ] tR tRt oRV3R lV 3R llltV 3R lt]R 4       tR tRt	Vt
V ;t# )	ÚLinearUnaryiu  c                ó   <€ V ^8„  d   QhRR/# r–   rK   )r,   r˜   s   "€r-   r.   ÚLinearUnary.__annotate__v  rš   r/   c           
     óÔ   <€ \        V^ ,          4      V n        \        SV `  VVVR\        P
                  P                  P                  P                  RV P                   R2R7       R# )r   Nrœ   Ú__linear_pointwiserž   )	r   r¡   r¢   r£   r¤   r¥   r¦   Ú_linear_pointwiser¨   r©   s   &&&&€r-   r£   ÚLinearUnary.__init__v  sa   ø€ ô +¨6°!­9Ó5ˆÔÜ‰ÑØØØØÜŸ	™	×(Ñ(×:Ñ:×BÑBØ)¨$×*:Ñ*:Ð);Ð;MÐNð 	ö 	
r/   c                ód   <€ VP                  R V P                   R24       \        SV `  V4       R# r®   r¯   r²   s   &&€r-   r±   ÚLinearUnary.codegen†  rµ   r/   c                óH  € V P                  V P                  V4      4      pV P                  V P                  V4      4      pVP                  4       Ev rxVP                  4       w  r˜\        V4      V	.,           p
W.pYE'       d   TMR.V.pVe3   V P                  V P                  V4      4      pVP	                  V4       MVP                  ^ R4       VP                  4       pVf   \        R4      h\        \        VVP                  4       V
R7      VVR7      p\        V4      # )rã   Nr[  ©rŒ   r&  rP   r¼   éÿÿÿÿ)Úrequire_contiguousr]  r„   r+   r4   ro   r…   r3   rd  r   rn   r’   )rp   r   Úwr`  r½   r¹   r¾   r†   Ú_icrˆ   r7   ry   r   rŒ   r�   s   &&&&&&&        r-   r¿   ÚLinearUnary.createŒ  s  € à×"Ñ" 3×#4Ñ#4°QÓ#7Ó8ˆØ×"Ñ" 3×#4Ñ#4°QÓ#7Ó8ˆà—*‘*“,‰ˆØ—*‘*“,‰ˆÜ˜1“g  •nˆØ�ˆØ®'™w¸°t¸YÐGˆØŠ=Ø×&Ñ& s×'8Ñ'8¸Ó';Ó<ˆAØ�M‰M˜!Õà× Ñ   DÔ)à—‘“ˆØŠ>Ü Ð!>Ó?Ð?äÜØØ—k‘k“mØ ôð
 Ø'ô
ˆô # 6Ó*Ð*r/   c                ó   € R # rC   rK   r÷   s   &r-   Úapply_constraintÚLinearUnary.apply_constraint«  ó   € Ùr/   rÁ   rÂ   )rÄ   rÅ   rÆ   rÇ   r£   r±   rÈ   r¿   ru  rÉ   rÊ   rË   rÌ   s   @@r-   rd  rd  u  s2   ù‡ € ÷
õ 
õ !ð ñ+ó ð+÷<ò r/   rd  c                   óh   a a€ ] tR tRt oRtR	V3R lV 3R llltV 3R lt]R 4       tR t	Rt
VtV ;t# )
ÚLinearBinaryi¯  z)torch.ops.mkldnn._linear_pointwise.binaryc                ó   <€ V ^8„  d   QhRR/# r–   rK   )r,   r˜   s   "€r-   r.   ÚLinearBinary.__annotate__²  rš   r/   c           
     óÔ   <€ \        V^ ,          4      V n        \        SV `  VVVR\        P
                  P                  P                  P                  RV P                   R2R7       R# )r   Nrœ   Ú__linear_pointwise_binaryrž   )	r   r¡   r¢   r£   r¤   r¥   r¦   ri  rÓ   r©   s   &&&&€r-   r£   ÚLinearBinary.__init__²  sa   ø€ ô +¨6°!­9Ó5ˆÔÜ‰ÑØØØØÜŸ	™	×(Ñ(×:Ñ:×AÑAØ)¨$×*:Ñ*:Ð);Ð;TÐUð 	ö 	
r/   c                ód   <€ VP                  R V P                   R24       \        SV `  V4       R# r®   r¯   r²   s   &&€r-   r±   ÚLinearBinary.codegenÂ  rµ   r/   c                ór  € V P                  V P                  V4      4      pV P                  V P                  V4      4      pV P                  V P                  V4      4      pVP                  4       Ev rgVP                  4       w  r‡\        V4      V.,           p	WV.p
V.pVe3   V P                  V P                  V4      4      pV
P	                  V4       MVP                  ^ V4       VP                  4       pVf   \        R4      h\        \        VVP                  4       V	R7      V
VR7      p\        V4      # )Nr[  rn  r¼   )rp  r]  r„   r+   r4   ro   r…   r3   ry  r   rn   r’   )rp   r   Úyrq  r`  r½   r†   rr  rˆ   r7   ry   r   rŒ   r�   s   &&&&&&        r-   r¿   ÚLinearBinary.createÈ  s  € à×"Ñ" 3×#4Ñ#4°QÓ#7Ó8ˆØ×"Ñ" 3×#4Ñ#4°QÓ#7Ó8ˆØ×"Ñ" 3×#4Ñ#4°QÓ#7Ó8ˆà—*‘*“,‰ˆØ—*‘*“,‰ˆÜ˜1“g  •nˆØ˜�ˆØ˜ˆØŠ=Ø×&Ñ& s×'8Ñ'8¸Ó';Ó<ˆAØ�M‰M˜!Õà× Ñ   AÔ&à—‘“ˆØŠ>Ü Ð!>Ó?Ð?ÜÜØØ—k‘k“mØ ôð
 Ø'ô
ˆô # 6Ó*Ð*r/   c                ó   € R # rC   rK   r÷   s   &r-   ru  ÚLinearBinary.apply_constraintç  rw  r/   rÁ   rÂ   )rÄ   rÅ   rÆ   rÇ   r>   r£   r±   rÈ   r¿   ru  rÉ   rÊ   rË   rÌ   s   @@r-   ry  ry  ¯  s7   ù‡ € Ø8€F÷
õ 
õ !ð ñ+ó ð+÷<ò r/   ry  c                   ój   a a€ ] tR tRt oRV3R lV 3R llltV 3R lt]V3R lR l4       tRtVt	V ;t
# )	ÚQLinearPointwisePT2Eië  c                ó   <€ V ^8„  d   QhRR/# r–   rK   )r,   r˜   s   "€r-   r.   Ú!QLinearPointwisePT2E.__annotate__ì  s   ø€ ÷ 
ñ 
ð 
ñ
r/   c           
     óà   <€ \        V^ ,          4      V n        W@n        \        SV `  VVVR\
        P                  P                  P                  P                  RV P                   R2R7       R# )ag  
if bias is not None
    - inputs = [x, w, b, weight_scale, weight_zp]
    - const_args is: [x_scale, x_zp, o_scale, o_zp,
      fp32_output, unary_attr, unary_scalars, unary_algorithm]
else
    - inputs = [x, w, weight_scale, weight_zp]
    - const_args is: [bias, x_scale, x_zp, o_scale, o_zp,
      fp32_output, unary_attr, unary_scalars, unary_algorithm]
Nrœ   Ú__qlinear_pointwise_tensorrž   )
r   r¡   r  r¢   r£   r¤   r¥   r  Úqlinear_pointwiser  ©rª   rŽ   ry   r   r  r«   s   &&&&&€r-   r£   ÚQLinearPointwisePT2E.__init__ì  sf   ø€ ô" +¨6°!­9Ó5ˆÔØ ŒÜ‰ÑØØØØÜŸ™×)Ñ)×;Ñ;×BÑBà˜d×.Ñ.Ð/Ð/IÐJð 	ö 		
r/   c                óÊ   <€ VP                  R V P                   R24       \        SV `  V4       \	        V P
                  \        4      '       d   V P                  V4       R# R# r®   r  r²   s   &&€r-   r±   ÚQLinearPointwisePT2E.codegen
  sV   ø€ Ø×$Ñ$Ø4°T×5EÑ5EÐ4FÀbÐIô	
ô 	‰‰˜Ô ä�d—k‘k¤6×*Ò*Ø×%Ñ% gÖ.ñ +r/   c                óB   <€ V ^8„  d   QhRRRRRRRRRRRRRRR	S[ R
S[/	# )r   r  r   rz   r{   r  r|   r}   r    r   r!  ©rá   r)   )r,   r˜   s   "€r-   r.   r‰    se   ø€ ÷ -
ñ -
àð-
ð ð-
ð "ð	-
ð
 ð-
ð ð-
ð "ð-
ð ð-
ñ ð-
ñ ñ-
r/   c           
     óö   € \        V VVVW#WV.4      w  rïp pVVV	V
V\        V4      V.,           pV
f   \        R4      hV
\        P                  \        P
                  39   d   V
Vn        \        VVVVR JR7      # )Nr#  ©rŽ   ry   r   r  )r‰   r   r3   r¤   r$  r%  r&  r‡  )rp   r  rz   r{   r  r|   r}   r    r   r!  r'  Úpost_op_nameÚpost_op_argsÚpost_op_algorithmry   r   r~   r‡   s   &&&&&&&&&&&&&&    r-   r¿   ÚQLinearPointwisePT2E.create  s¥   € ô" 8UØØØØØ GÐ:ó8
Ñ4ˆ ¨q°!ð &ØØØØÜ# LÓ1Øð)
õ 
ˆð ÒÜ Ð!GÓHÐHØœEŸM™M¬5¯>©>Ð:Ô:ð #/ˆMÔä#Ø ØØ'Ø $Ð&ô	
ð 	
r/   r)  ©rK   TrÃ   rÌ   s   @@r-   r‡  r‡  ë  s-   ù‡ € ÷
õ 
õ</ð ÷-
ó ÷-
ð -
r/   r‡  c                   ó|   a a€ ] tR tRt oR
V3R lV 3R llltV 3R ltV3R lR lt]V3R lR l4       tR	t	Vt
V ;t# )ÚQLinearPointwiseBinaryPT2EiD  c                ó   <€ V ^8„  d   QhRR/# r–   rK   )r,   r˜   s   "€r-   r.   Ú'QLinearPointwiseBinaryPT2E.__annotate__E  s   ø€ ÷ 
ñ 
ð 
ñ
r/   c           
     óî   <€ \        V^ ,          4      V n        W@n        ^V n        \        SV `  VVVR\        P                  P                  P                  P                  RV P                   R2R7       R# )aš  
if bias is not None
    - inputs = [x, w, x_scale, x_zp, weight_scale, weight_zp, x2, bias]
    - const_args is: [o_scale, o_zp,
      fp32_output, binary_attr, alpha, unary_attr, unary_scalars, unary_algorithm]
else
    - inputs = [x, w, x_scale, x_zp, weight_scale, weight_zp, x2]
    - const_args is: [bias, o_scale, o_zp,
      fp32_output, binary_attr, alpha, unary_attr, unary_scalars, unary_algorithm]
Nrœ   Ú!__qlinear_pointwise_binary_tensorrž   )r   r¡   r  r0  r¢   r£   r¤   r¥   r  rŒ  r2  r�  s   &&&&&€r-   r£   Ú#QLinearPointwiseBinaryPT2E.__init__E  sn   ø€ ô" +¨6°!­9Ó5ˆÔØ ŒØ#$ˆÔ Ü‰ÑØØØØÜŸ™×)Ñ)×;Ñ;×IÑIØ)¨$×*:Ñ*:Ð);Ð;\Ð]ð 	ö 	
r/   c                óÊ   <€ VP                  R V P                   R24       \        SV `  V4       \	        V P
                  \        4      '       d   V P                  V4       R# R# r®   r  r²   s   &&€r-   r±   Ú"QLinearPointwiseBinaryPT2E.codegenb  r  r/   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# rò   r7  )r,   r˜   s   "€r-   r.   r�  j  s   ø€ ÷ ñ ¡H©S¥Mñ r/   c                óð   € V P                   R,          pVR8X  d\   V P                  V P                  ,          p\        V\        4      '       g   \        R\        V4       24      hVP                  4       .# . # )é   rB  z!expected input to be IRNode, got éûÿÿÿ)r   ry   r0  rX   r   r3   re   rD  )rª   Úbinary_post_opÚinputs   &  r-   r:  Ú-QLinearPointwiseBinaryPT2E.get_mutation_namesj  sg   € Ø×+Ñ+¨BÕ/ˆØ˜UÔ"Ø—K‘K × 8Ñ 8Õ9ˆEÜ˜e¤V×,Ò,Ü$Ð'HÌÈeËÈÐ%VÓWÐWØ—N‘NÓ$Ð%Ð%àˆIr/   c                óF   <€ V ^8„  d   QhRRRRRRRRRRRRRRR	RR
S[ RS[/
# )r   r  r   rz   r{   r  r|   r}   r(   r    r   r!  r’  )r,   r˜   s   "€r-   r.   r�  u  s{   ø€ ÷ I
ñ I
àðI
ð ðI
ð "ð	I
ð
 ðI
ð ðI
ð "ðI
ð ðI
ð ðI
ñ ðI
ñ ñI
r/   c                óþ  € \        V VVVW#WV.VVR 8H  4      w  pppppVV	V
VVVVVV\        V4      V.
,           pVR 8X  dt   \        P                  P	                  VP                  4       4       \        \        VP                  4       R7      VVVRJR7      pVP                  VP                  ,          # Vf   \        R4      hV\        P                  \        P                  39   d   VVn        \        VVVVRJR7      # )rB  r‹   Nr”  r#  )r‰   r   r   r_   rC  rD  r›  r   r…   ry   r0  r3   r¤   r$  r%  r&  )rp   r  rz   r{   r  r|   r}   r(   r    r   r!  r'  Úother_scaleÚother_zpr§  rÛ   Úunary_post_opÚunary_post_op_argsÚunary_post_op_algorithmry   r   r~   rv   r�   s   &&&&&&&&&&&&&&&&&&&     r-   r¿   Ú!QLinearPointwiseBinaryPT2E.createt  s&  € ô8 *ØØØØØ GÐ:ØØ˜eÑ#ó
ñ	
ØØØØØð &ØØØØØØØØÜ#Ð$6Ó7Ø#ð)
õ 
ˆð ˜UÔ"Ü�G‰G×'Ñ'¨¯©Ó(8Ô9Ü/Ü!¨×)9Ñ)9Ó);Ô<ØØ+Ø dÐ*ô	ˆFð —=‘= ×!;Ñ!;Õ<Ð<àÒÜ Ð!GÓHÐHØœEŸM™M¬5¯>©>Ð:Ô:ð #/ˆMÔä)Ø ØØ'Ø $Ð&ô	
ð 	
r/   rJ  r™  )rÄ   rÅ   rÆ   rÇ   r£   r±   r:  rÈ   r¿   rÉ   rÊ   rË   rÌ   s   @@r-   r›  r›  D  s:   ù‡ € ÷
õ 
õ:/÷ð ð ÷I
ó ÷I
ð I
r/   r›  c                   ój   a a€ ] tR tRt oRV3R lV 3R lllt]V3R lR l4       tV 3R ltRtVt	V ;t
# )	ÚMkldnnRnnLayeriÁ  c                ó   <€ V ^8„  d   QhRR/# r–   rK   )r,   r˜   s   "€r-   r.   ÚMkldnnRnnLayer.__annotate__Â  rO  r/   c                óˆ   <€ \         SV `  VVVR \        P                  P                  P
                  P                  R7       R # rQ  )r¢   r£   r¤   r¥   ÚatenÚmkldnn_rnn_layerr¨   r©   s   &&&&€r-   r£   ÚMkldnnRnnLayer.__init__Â  s:   ø€ ô 	‰ÑØØØØÜŸ	™	Ÿ™×7Ñ7×?Ñ?ð 	ö 	
r/   c                 ó|   <€ V ^8„  d   QhRRRRRRRRRRRRRRR	S[ R
S[S[,          RS[RS[RS[RS[ RS[ RS[ RS[ /# )r   r   r   Úw0Úw1Úw2Úw3ÚhxÚcxÚreverseÚbatch_sizesÚmodeÚhidden_sizeÚ
num_layersÚ
has_biasesÚbidirectionalÚbatch_firstÚtrain)r*   r+   r)   )r,   r˜   s   "€r-   r.   rµ  Ñ  sÁ   ø€ ÷ gñ gàðgð ðgð ð	gð
 ðgð ðgð ðgð ðgñ ðgñ ™#•Yðgñ ðgñ ðgñ ðgñ ðgñ ðgñ  ð!gñ" ñ#gr/   c                óÎ  € V P                  V P                  V4      4      pVP                  4        V P                  V P                  V4      4      pV P                  V P                  V4      4      pV P                  V P                  V4      4      pV P                  V P                  V4      4      pV P                  V P                  V4      4      pVP                  4        V P                  V P                  V4      4      pVP                  4        VP                  4       p\	        V4      ^8w  d   \        R4      hVw  pppVVV.pVP                  4       pVP                  4       pWW4WVV.pVV	V
VVVVVV.	pVP                  4       pVf   \        R4      h\        \        VR7      VVR7      pR pVVV^..pV! VV4      \        P                  ! V4      \        P                  ! V4      ^..p\        \        VV4      4       UUU u. uFE  w  pw  pp \        \        VP                  4       VP                  4       VV 4      V\         V3.4      NKG  	  p!ppp V!Vn        V!# u up ppi )é   zExpect lstm input to be 3Dr[  r‹   )ry   r   c                 ód   € \        V 4      ^8w  d   \        R4      h\        P                  ! V 4      # )rË  zExpect output_shape to be 3D)r2   r3   r   rk   )Úoutput_shaperÈ  s   &&r-   Úget_strides_of_lstm_outputÚ9MkldnnRnnLayer.create.<locals>.get_strides_of_lstm_output  s,   € Ü�<Ó  AÔ%Ü$Ð%CÓDÐDÜ!×4Ò4°\ÓBÐBr/   )r\  r]  Úfreeze_layoutr„   r2   r3   r…   r³  r   r   rk   Ú	enumerateÚzipr   r   rn   Útupler�   )"rp   r   r»  r¼  r½  r¾  r¿  rÀ  rÁ  rÂ  rÃ  rÄ  rÅ  rÆ  rÇ  rÈ  rÉ  r<   Ú
seq_lengthÚ
mini_batchrÍ  Úhy_shapeÚcy_shapery   r   rŒ   r�   rÎ  Úoutput_sizesÚoutput_stridesrY   r7   rx   r‘   s"   &&&&&&&&&&&&&&&&&                 r-   r¿   ÚMkldnnRnnLayer.createÐ  sn  € ð* ×Ñ × 1Ñ 1°!Ó 4Ó5ˆð 	
�‰Ôà× Ñ  ×!2Ñ!2°2Ó!6Ó7ˆà× Ñ  ×!2Ñ!2°2Ó!6Ó7ˆà× Ñ  ×!2Ñ!2°2Ó!6Ó7ˆà× Ñ  ×!2Ñ!2°2Ó!6Ó7ˆà× Ñ  ×!2Ñ!2°2Ó!6Ó7ˆØ
×ÑÔà× Ñ  ×!2Ñ!2°2Ó!6Ó7ˆØ
×ÑÔà—Z‘Z“\ˆ
Üˆz‹?˜aÔÜ Ð!=Ó>Ð>ð .8Ñ*ˆ
�J 
Ø" J°Ð<ˆà—;‘;“=ˆØ—;‘;“=ˆà˜ ¨Ð,ˆàØØØØØØØØð

ˆð —‘“ˆØŠ>Ü Ð!>Ó?Ð?ÜÜ VÔ,ØØ'ô
ˆò	Cð % h°¸1¸#Ð>ˆá& |°[ÓAÜ×-Ò-¨hÓ7Ü×-Ò-¨hÓ7ØˆCð	
ˆô" 4=Ü�L .Ó1ô4õ
ñ4Ñ/�Ñ/�K ô ÜØ—L‘L“NØ—K‘K“MØØ!ó	ð Ü˜��ö	ñ4ð 	ò 
ð #ˆŒàÐùô#
s   ÈAI c                óD   <€ VP                  R 4       \        SV `	  V4      # )rW  rX  r²   s   &&€r-   r±   ÚMkldnnRnnLayer.codegen:  s!   ø€ Ø×$Ñ$Ð%RÔSÜ‰w‰˜wÓ'Ð'r/   rK   rÂ   )rÄ   rÅ   rÆ   rÇ   r£   rÈ   r¿   r±   rÉ   rÊ   rË   rÌ   s   @@r-   r³  r³  Á  s0   ù‡ € ÷
õ 
ð ÷gó ðg÷R(õ (r/   r³  c                   ój   a a€ ] tR tRt oRV3R lV 3R llltV 3R lt]V3R lR l4       tRtVt	V ;t
# )	ÚWeightInt4PackMatmuli@  c                ó   <€ V ^8„  d   QhRR/# r–   rK   )r,   r˜   s   "€r-   r.   Ú!WeightInt4PackMatmul.__annotate__A  s   ø€ ÷ 
ñ 
ð
 
ñ
r/   c           	     ó&  <€ \        V4      ^8w  d   \        R\        V4       24      h\        V4      ^ 8w  d   \        R\        V4       24      h\        SV `  VVVR\        P
                  P                  P                  P                  RR7       R# )zA
inputs = [x, w, qGroupSize, qScalesAndZeros]
constant_args = ()
zexpected 4 inputs, got zexpected 0 constant_args, got NÚ-aoti_torch_cpu__weight_int4pack_mm_cpu_tensorrž   )	r2   r3   r¢   r£   r¤   r¥   Ú	quantizedÚint4mm_packed_weight_cpur¨   r©   s   &&&&€r-   r£   ÚWeightInt4PackMatmul.__init__A  sˆ   ø€ ô ˆv‹;˜!ÔÜ Ð#:¼3¸v»;¸-Ð!HÓIÐIÜˆ}Ó Ô"Ü Ð#AÄ#ÀmÓBTÐAUÐ!VÓWÐWÜ‰ÑØØØØÜŸ™×,Ñ,×EÑE×MÑMØLð 	ö 	
r/   c                ó®   <€ VP                  R 4       \        SV `	  V4       \        V P                  \
        4      '       d   V P                  V4       R# R# rV  )r°   r¢   r±   rX   rŽ   r   r  r²   s   &&€r-   r±   ÚWeightInt4PackMatmul.codegenX  sB   ø€ Ø×$Ñ$Ð%RÔSÜ‰‰˜Ô ä�d—k‘k¤6×*Ò*Ø×%Ñ% gÖ.ñ +r/   c                ó*   <€ V ^8„  d   QhRRRRRRRR/# )r   r   r   rq  Ú
qGroupSizeÚqScalesAndZerosrK   )r,   r˜   s   "€r-   r.   rà  `  s3   ø€ ÷ 
ñ 
àð
ð ð
ð  ð	
ð
 %ñ
r/   c                ó  € WW4.pVP                  4       Ev rgVP                  4       w  r‡\        V4      V.,           p	\        P                  ! V	4      p
\	        VP                  4       VP                  4       V	V
4      p\        VVR 7      # ))rŽ   ry   )r„   r+   r   rk   r   r…   rn   rÞ  )rp   r   rq  ré  rê  ry   r†   r‡   Únr7   rx   r~   s   &&&&&       r-   r¿   ÚWeightInt4PackMatmul.create_  s~   € ð ˜
Ð4ˆØ—
‘
“‰ˆØ�z‰z‹|‰ˆÜ˜1“g  •mˆÜ&×9Ò9¸+ÓFˆÜ#Ø�L‰L‹NØ�K‰K‹MØØó	
ˆô $Ø Øô
ð 	
r/   rK   rÂ   rÃ   rÌ   s   @@r-   rÞ  rÞ  @  s-   ù‡ € ÷
õ 
õ./ð ÷
ó ÷
ð 
r/   rÞ  )FNNN)NNF)1Úcollections.abcr   Útypingr   r   ra   r¤   Útorch._prims_commonr   r   Útorch.utils._ordered_setr	   Úirr
   r   r   r   r   r   r   r   r   r   r   r   r   r   Úutilsr   r   r   Úvirtualizedr   r€   r‰   r’   r”   rÎ   ræ   rÿ   r  r+  rL  rd  ry  r‡  r›  r³  rÞ  rK   r/   r-   Ú<module>rõ     s  ðå $ß  ã ã ß JÝ /÷÷ ÷ ÷ ÷  UÑ TÝ ÷TI÷nAIòHô8+Ð(ô 8+ôvB+Ð)ô B+ôJN Ð0ô N ôbC+Ð 1ô C+ôLh
Ð*ô h
ôV9Ð0ô 9ôD)
Ð'ô )
ôX7Ð#ô 7ôt9Ð$ô 9ôxV
Ð,ô V
ôrz
Ð!2ô z
ôz{(Ð&ô {(ô~5
Ð,ö 5
r/   