+
    –°³j\²  ã                  ó(  € R t ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIHtHtHtHt ^ RIt^ RIHt ^ RIt^ RIHt ^ RI H!t! ^ RI"H#t# ^ R	IH$t$ ^ R
I%H&t& ^ RI'H(t( ^ RI)H*t*H+t+ ^RI,H-t- ^RIH.t.H/t/H0t0 ]'       d   ^ RI1H2t2H3t3 ^ RI4H5t5 ^ RI6H7t7 ]
Pp                  ! ]94      t:]! R4      t;]! R4      t<]<P{                  4       t>]>'       d   ^ RI?t@. tARtBRtC]>'       da   . RROtA]@Pˆ                  PŠ                  PŒ                  P�                  4       P‘                  RR4      tCRP“                  R ]A 4       4      tJR]J R2tB. RSOtK ! R R4      tLR R ltM^tN ! R R ]O4      tP ! R! R"4      tQ]P¤                  R# R$ l4       tSR%R&/R' R( lltTR%R&/R) R* lltUR+ R, ltVR- R. ltW ! R/ R0]X4      tYR1 R2 ltZRTR3 R4 llt[RUR5R&R6R&/R7 R8 lllt\R9 R: lt]R; R< lt^R= R> lt_RUR5R&R6R&/R? R@ lllt`RA RB ltaRC RD ltb]b! ]PÆ                  4      td]b! ]PÊ                  ! RE4      4      tf]b! ^ 4      tg]b! R&4      th]b! R&4      ti ! RF RG4      tj ! RH RI4      tkRJ RK ltl ! RL RM4      tmRVRN RO lltnRP RQ ltoR# )Waã  
Debug utilities for TorchDynamo compilation and execution.

This module provides various debugging tools and utilities for TorchDynamo, including:

- Minification support for reducing test cases while preserving bugs
- Input/output handling via InputReader and InputWriter for reproducible testing
- Accuracy checking between original and compiled models
- Neural network module string conversion via NNModuleToString
- Profiling tools and system information collection
- Buck build system integration for Meta-internal testing

Key classes:
- InputReader/InputWriter: Handle serialization of model inputs/outputs
- NNModuleToString: Converts nn.Modules to string representations
- BuckTargetWriter: Manages Buck build system integration
)ÚannotationsN)ÚCounter)Úimport_module)ÚAnyÚcastÚTYPE_CHECKINGÚTypeVar)ÚTensor)Úrand_strided)Únormalize_path_separator)Úis_float_dtype)ÚStorageWeakRef)ÚConfigModule)ÚContentStoreReaderÚContentStoreWriter)Úconfig)Úclone_inputsÚget_debug_dirÚ	warn_once)ÚCallableÚSequence)Útqdm)ÚUntypedStorageÚTztorch._inductor.configÚ zfbcode:ú//Ú
c              #  ó.   "  € T F  pR V R2x € K  	  R# 5i)z    "ú",N© )Ú.0Úxs   & ÚZ/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_dynamo/debug_utils.pyÚ	<genexpr>r#   Y   s   é € Ð C¹
°1 5¨¨¨2¥»
ùó   ‚zfor _extra_dep in [
zY
]:
    try:
        torch.ops.load_library(_extra_dep)
    except OSError:
        pass
c                  ó>   € ] tR t^ftR R ltR R ltR	R R lltRtR# )
ÚBuckTargetWriterc               ó    € V ^8„  d   QhRRRR/# )é   ÚfilenameÚstrÚreturnÚNoner   )Úformats   "r"   Ú__annotate__ÚBuckTargetWriter.__annotate__g   s   € ÷ 6ñ 6 ð 6¨ñ 6ó    c                	ó>  € \         P                  P                  \         P                  P                  V4      4      w  V n        V n        V P
                  P                  R R4      V n        V P                  P                  RR4       RV P                   2V n        V P                  V P                  P                  R4      R V n        V P                  R,          V n        V P                  pW"P                  R4      R R,          pRV R	V P                   2V n	        R# )
z.pyr   Ú/Ú.zfbcode.N:é   NNzfbcode/r   Ú:)
ÚosÚpathÚsplitÚabspathÚsubdirÚpy_fileÚreplaceÚtargetÚfindÚcmd_line_path)Úselfr)   Útmps   && r"   Ú__init__ÚBuckTargetWriter.__init__g   sØ   € Ü$&§G¡G§M¡M´"·'±'·/±/À(Ó2KÓ$LÑ!ˆŒ�T”\Ø—l‘l×*Ñ*¨5°"Ó5ˆŒð —{‘{×*Ñ*¨3°Ó4Ð5°Q°t·{±{°mÐDˆŒ	Ø—I‘I˜dŸi™iŸn™n¨YÓ7Ð9Ð:ˆŒ	Ø—I‘I˜b•MˆŒ	ð �k‰kˆØ—(‘(˜9Ó%Ð'Ð(¨Õ,ˆØ! #  a¨¯© }Ð5ˆÖr0   c               ó   € V ^8„  d   QhRR/# ©r(   r+   r*   r   )r-   s   "r"   r.   r/   u   s   € ÷ 
ñ 
�sñ 
r0   c                	óî   € R P                  \         Uu. uF	  pRV R2NK  	  up4      p\        P                  ! RV P                   RV P
                   R\         RV RV P                   R24      # u upi )	r   z	        "r   za
load("@fbcode_macros//build_defs:python_binary.bzl", "python_binary")

python_binary(
    name="z",
    srcs = ["z©"],
    compile = False,
    deps = [
        "//caffe2:torch",
        "//caffe2:libtorch",
        "//caffe2/functorch:functorch",
        "//triton:triton",
        "z",
    ],
    cpp_deps = [
z
    ],
    main_module = "z",
    par_style = "xar",
)
)ÚjoinÚ
extra_depsÚtextwrapÚdedentr=   r;   Ú
cur_targetr7   )r@   r!   Úextra_cpp_depss   &  r"   ÚbuildÚBuckTargetWriter.buildu   sŽ   € ØŸ™½zÓ#J¹z¸! i°¨s°"Ó$5¹zÑ#JÓKˆÜ�Šðð �;‰;ˆ-ð Ø�l‰lˆ^ð 
ô ˆð ð Ð ð à—I‘I�;ð ð#ó
ð 	
ùò $Ks   ”A2c               ó    € V ^8„  d   QhRRRR/# )r(   Ú	print_msgÚboolr+   ú	list[str]r   )r-   s   "r"   r.   r/   �   s   € ÷ ñ ˜tð ¨yñ r0   c                	ó‚  € \         P                  P                  V P                  R 4      p\	        VR4      ;_uu_ 4       pVP                  V P                  4       4       RRR4       \        V P                  .,           pV'       d&   \        P                  RRP                  V4      4       V#   + '       g   i     LW; i)ÚTARGETSÚwNzFFound an example that reproduces the error. Run this cmd to repro - %sÚ )r6   r7   rG   r:   ÚopenÚwriterM   ÚBUCK_CMD_PREFIXr?   ÚlogÚwarning)r@   rP   Útarget_fileÚfdÚ	cmd_splits   &&   r"   rX   ÚBuckTargetWriter.write�   s„   € Ü—g‘g—l‘l 4§;¡;°	Ó:ˆÜ�+˜s×#Ô# rØ�H‰H�T—Z‘Z“\Ô"÷ $ô $ t×'9Ñ'9Ð&:Õ:ˆ	ßÜ�K‰KØXØ—‘˜Ó#ôð Ð÷ $×#ús   ¿ B.Â.B>	)r?   r7   r;   r:   r=   N)T)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rB   rM   rX   Ú__static_attributes__r   r0   r"   r&   r&   f   s   † õ6õ
÷4ó r0   r&   c               ó   € V ^8„  d   QhRR/# rE   r   )r-   s   "r"   r.   r.   �   s   € ÷ ñ �cñ r0   c                 ó2  € \         P                  P                  \        4       R 4      p V f.   \        P
                  ! 4        R\        P                  ! 4        2p \         P                  P                  V 4      '       g   \         P                  ! V RR7       V # )Úminifierz
/minifier_T)Úexist_ok)
r6   r7   rG   r   ÚtempfileÚ
gettempdirÚgetpassÚgetuserÚexistsÚmakedirs)r7   s    r"   Úminifier_dirro   �   se   € Ü�7‰7�<‰<œ›¨Ó4€DØ‚|Ü×%Ò%Ó'Ð(¨
´7·?²?Ó3DÐ2EÐFˆÜ�7‰7�>‰>˜$×ÒÜ
�Š�D 4Õ(Ø€Kr0   c                  ó   € ] tR t^©tRtR# )ÚUnsupportedNNModuleErrorr   N©r`   ra   rb   rc   rd   r   r0   r"   rq   rq   ©   ó   † Ûr0   rq   c                  ó”  € ] tR t^­tRR0t0 RmtRR0tRt]P                  P                  ]P                  P                  ]P                  P                  ]P                  P                  ]P                  P                  ]P                  P                  ]P                  P                   ]P                  P"                  ]P                  P$                  ]P                  P&                  ]P                  P(                  ]P                  P*                  ]P                  P,                  ]P                  P.                  ]P                  P0                  ]P                  P2                  ]P                  P4                  ]P                  P6                  ]P                  P8                  ]P                  P:                  ]P                  P<                  .t] R R l4       t!] R R l4       t"] R	 R
 l4       t#] R R l4       t$] R R l4       t%] R R l4       t&] R R l4       t'] R R l4       t(] RR/R R ll4       t)] RR/R R ll4       t*Rt+R# )ÚNNModuleToStringz0torch.ao.quantization.fake_quantize.FakeQuantizezAtorch.ao.quantization.fake_quantize.FusedMovingAvgObsFakeQuantizez%torch.ao.nn.qat.modules.linear.Linearz8torch.ao.nn.intrinsic.qat.modules.linear_relu.LinearReLUc               ó    € V ^8„  d   QhRRRR/# )r(   Úgmútorch.fx.GraphModuler+   rQ   r   )r-   s   "r"   r.   ÚNNModuleToString.__annotate__ä   s   € ÷ ñ Ð"6ð ¸4ñ r0   c                	óH  € \        4       pV P                  4        F[  w  r#\        V\        P                  P
                  4      '       d   K1  \        P                  V4      e   KJ  VP                  V4       K]  	  \        V4      ^ 8”  d   \        P                  RV4       R# R# )Nz2Cannot safely convert some modules to strings - %sFT)ÚsetÚnamed_childrenÚ
isinstanceÚtorchÚfxÚGraphModuleru   Ú_module_constructor_stringÚaddÚlenrZ   r[   )rw   Úcant_convertÚ_Úmodules   &   r"   Úcan_convert_to_stringÚ&NNModuleToString.can_convert_to_stringã   s�   € ä“uˆØ×*Ñ*Ö,‰IˆAô ˜&¤%§(¡(×"6Ñ"6×7Ò7ÙÜ×:Ñ:¸6ÓBÔJØ× Ñ  Ö(ñ -ô ˆ|Ó˜qÔ Ü�K‰KØDÀlôñ Ùr0   c               ó    € V ^8„  d   QhRRRR/# ©r(   r†   útorch.nn.Moduler+   r*   r   )r-   s   "r"   r.   ry   ö   s   € ÷ Dñ D /ð D°cñ Dr0   c                	ó\   € \        V 4      P                   R \        V 4      P                   2# ©r3   )Útypera   r`   )r†   s   &r"   Ú_module_type_nameÚ"NNModuleToString._module_type_nameõ   s)   € ä�v“,×)Ñ)Ð*¨!¬D°«L×,AÑ,AÐ+BÐCÐCr0   c               ó    € V ^8„  d   QhRRRR/# )r(   Útype_ztype[object]r+   r*   r   )r-   s   "r"   r.   ry   ú   s   € ÷ 6ñ 6˜,ð 6¨3ñ 6r0   c                	ó8   € V P                    R V P                   2# r�   )ra   r`   )r’   s   &r"   Ú
_type_nameÚNNModuleToString._type_nameù   s   € à×"Ñ"Ð# 1 U§^¡^Ð$4Ð5Ð5r0   c               ó    € V ^8„  d   QhRRRR/# ©r(   r†   r‹   r+   ú
str | Noner   )r-   s   "r"   r.   ry   þ   s   € ÷ 3ñ 3¨ð 3¸Jñ 3r0   c                	óÖ  € \         P                  V 4      pV\         P                  9  d   R # V P                  p\	        \
        V P                  4      p\	        \
        V P                  4      p\        VRR4      '       d   V^,          pV^,          ^,           pR\         P                  \        V4      4       2RV: 2RV: 2RV P                  : 2RV P                  : 2RV P                  : 2.p\        VR4      '       d    VP                  R	VP                   : 24       \        VR
4      '       d    VP                  RVP"                  : 24       V RRP%                  V4       R2# )NÚreduce_rangeFz	observer=z
quant_min=z
quant_max=údtype=zqscheme=zis_dynamic=zreduce_range=Úch_axiszch_axis=Ú(ú, Ú))ru   r�   Úfake_quant_modulesÚactivation_post_processr   ÚintÚ	quant_minÚ	quant_maxÚgetattrr”   rŽ   ÚdtypeÚqschemeÚ
is_dynamicÚhasattrÚappendrš   rœ   rG   )r†   Úmodule_typeÚobserverr£   r¤   Úargss   &     r"   Ú_fake_quant_constructorÚ(NNModuleToString._fake_quant_constructorý   sJ  € ä&×8Ñ8¸Ó@ˆØÔ.×AÑAÔAÙà×1Ñ1ˆÜœ˜f×.Ñ.Ó/ˆ	Üœ˜f×.Ñ.Ó/ˆ	Ü�8˜^¨U×3Ò3Ø˜�NˆIØ! A�¨Õ)ˆIàÔ(×3Ñ3´D¸³NÓCÐDÐEØ˜™Ð&Ø˜™Ð&Ø�V—\‘\Ñ$Ð%Ø�v—~‘~Ñ(Ð)Ø˜&×+Ñ+Ñ.Ð/ð
ˆô �8˜^×,Ò,Ø�K‰K˜-¨×(=Ñ(=Ñ'@ÐAÔBÜ�8˜Y×'Ò'Ø�K‰K˜( 8×#3Ñ#3Ñ"6Ð7Ô8Ø�˜a §	¡	¨$£Ð0°Ð2Ð2r0   c               ó    € V ^8„  d   QhRRRR/# r—   r   )r-   s   "r"   r.   ry     s   € ÷ ñ ¨ð ¸Zñ r0   c                	ó
  € \        V R R4      p\        P                   FO  p \        P                  P
                  P                  V4      p\        T4      \        T4      8X  g   KH  RT: R2u # 	  R#   \         d     Kc  i ; i)ÚqconfigNz6qconfig=torch.ao.quantization.get_default_qat_qconfig(rŸ   )	r¥   ru   Údefault_qat_qconfig_backendsr~   ÚaoÚquantizationÚget_default_qat_qconfigÚAssertionErrorÚrepr)r†   r²   ÚbackendÚdefault_qconfigs   &   r"   Ú_qat_qconfig_constructorÚ)NNModuleToString._qat_qconfig_constructor  sƒ   € ä˜& )¨TÓ2ˆÜ'×DÔDˆGðÜ"'§(¡(×"7Ñ"7×"OÑ"OÐPWÓ"X�ô �G‹}¤ _Ó 5Ö5ðØ‘{ !ð%òñ Eñ øô "ô Úðús   ¢)A3Á3BÂBc               ó    € V ^8„  d   QhRRRR/# r—   r   )r-   s   "r"   r.   ry   '  s   € ÷ 3ñ 3 oð 3¸*ñ 3r0   c           
     	ó¦  € \         P                  V 4      pV\         P                  9  d   R # \         P                  V 4      pVf   R # \	        V P
                  4      \	        V P                  4      RV P                  : 2RV P                  : 2RV P                  : 2RV P                  : 2RV P                  : 2RV P                  R J 2RV P                  : 2.	p\        V RR 4      pVe?   VP                  R	VP                   : 2R
VP"                  : 2RV P$                  : 2.4       VP'                  V4       V RRP)                  V4       R2# )Nzkernel_size=zstride=zpadding=z	dilation=zgroups=úbias=zpadding_mode=Úbnzeps=z	momentum=z
freeze_bn=r�   rž   rŸ   )ru   r�   Úqat_conv_modulesr»   r¸   Úin_channelsÚout_channelsÚkernel_sizeÚstrideÚpaddingÚdilationÚgroupsÚbiasÚpadding_moder¥   ÚextendÚepsÚmomentumÚ	freeze_bnrª   rG   )r†   r«   r²   r­   rÀ   s   &    r"   Ú_qat_conv_constructorÚ&NNModuleToString._qat_conv_constructor&  sP  € ä&×8Ñ8¸Ó@ˆØÔ.×?Ñ?Ô?ÙÜ"×;Ñ;¸FÓCˆØŠ?Ùô �×#Ñ#Ó$Ü�×$Ñ$Ó%Ø˜6×-Ñ-Ñ0Ð1Ø�f—m‘mÑ&Ð'Ø�v—~‘~Ñ(Ð)Ø˜Ÿ™Ñ*Ð+Ø�f—m‘mÑ&Ð'Ø�F—K‘K tÐ+Ð,Ð-Ø˜F×/Ñ/Ñ2Ð3ð

ˆô �V˜T 4Ó(ˆØŠ>Ø�K‰Kà˜2Ÿ6™6™*Ð%Ø §¡™Ð/Ø  ×!1Ñ!1Ñ 4Ð5ðôð 	�‰�GÔØ�˜a §	¡	¨$£Ð0°Ð2Ð2r0   c               ó    € V ^8„  d   QhRRRR/# r—   r   )r-   s   "r"   r.   ry   G  s   € ÷ 3ñ 3¨ð 3¸Jñ 3r0   c                	ó4  € \         P                  V 4      pV\         P                  9  d   R # \         P                  V 4      pVf   R # \	        V P
                  4      \	        V P                  4      RV P                  R J 2V.pV RRP                  V4       R2# )Nr¿   r�   rž   rŸ   )	ru   r�   Úqat_linear_modulesr»   r¸   Úin_featuresÚout_featuresrÉ   rG   )r†   r«   r²   r­   s   &   r"   Ú_qat_linear_constructorÚ(NNModuleToString._qat_linear_constructorF  s–   € ä&×8Ñ8¸Ó@ˆØÔ.×AÑAÔAÙÜ"×;Ñ;¸FÓCˆØŠ?Ùô �×#Ñ#Ó$Ü�×$Ñ$Ó%Ø�F—K‘K tÐ+Ð,Ð-Øð	
ˆð �˜a §	¡	¨$£Ð0°Ð2Ð2r0   c               ó$   € V ^8„  d   QhRRRRRR/# )r(   r†   r‹   Ú
module_strr*   r+   rQ   r   )r-   s   "r"   r.   ry   X  s"   € ÷ ñ ¨_ð È#ð ÐRVñ r0   c                	óŒ   € \        V 4      \        P                  9  d   R #  \        RV 2RR4       R#   \         d     R # i ; i)Fzmod = z<module repr>ÚexecT)rŽ   ru   Ú
safe_reprsÚcompileÚSyntaxError)r†   rÙ   s   &&r"   Ú_can_emit_module_constructorÚ-NNModuleToString._can_emit_module_constructorW  sI   € ä�‹<Ô/×:Ñ:Ô:Ùð	Ü�f˜Z˜LÐ)¨?¸FÔCñ øô ô 	Úð	ús   ¢4 ´AÁAÚallow_unsafe_reprFc               ó$   € V ^8„  d   QhRRRRRR/# )r(   r†   r‹   rá   rQ   r+   r˜   r   )r-   s   "r"   r.   ry   c  s$   € ÷ ñ ØðØ7;ðà	ñr0   c               	ó  € \        V 4      p\        P                  W4      '       d   V# \        P                  V 4      ;'       g3    \        P	                  V 4      ;'       g    \        P                  V 4      pVe   V# V'       d   V# R # ©N)r¸   ru   rß   r®   rÏ   rÖ   )r†   rá   rÙ   Úconstructor_strs   &$  r"   r�   Ú+NNModuleToString._module_constructor_stringb  s…   € ô ˜&“\ˆ
Ü×8Ñ8¸×LÒLØÐä×4Ñ4°VÓ<÷ @ð @Ü×5Ñ5°fÓ=÷@ð @ä×7Ñ7¸Ó?ð 	ð
 Ò&Ø"Ð"ßØÐÙr0   c               ó$   € V ^8„  d   QhRRRRRR/# )r(   rw   rx   rá   rQ   r+   r*   r   )r-   s   "r"   r.   ry   u  s-   € ÷ ]Wñ ]WÐ(ð ]WÀð ]WÐQTñ ]Wr0   c               	ó¬   aaaaaaa€ ^ RI Ho R	o/ o. oR VVV3R lloR VVVV3R lloRS! V 4       2pRRP                  SV.,           4      ,           # )
é    )Ú
_addindentc               ó$   € V ^8„  d   QhRRRRRR/# )r(   Ú	name_hintr*   Úsubrx   r+   r   )r-   s   "r"   r.   Ú.NNModuleToString.convert.<locals>.__annotate__ƒ  s"   € ÷ 		ñ 		¨ð 		Ð3Gð 		ÈCñ 		r0   c                óÆ   <€ \        V4      S9   d   S\        V4      ,          # V  R \        S4       2pVS\        V4      &   S! V4      pSP                  RV RV 24       V# )r…   zclass z(torch.nn.Module):
)Úidrƒ   rª   )rì   rí   Ú
class_nameÚbodyÚemit_module_bodyÚsubgraph_classesÚsubgraph_defss   &&  €€€r"   Úregister_subgraphÚ3NNModuleToString.convert.<locals>.register_subgraphƒ  ss   ø€ ô �#‹wÐ*Ô*Ø'¬¨3«Õ0Ð0Ø%˜; a¬Ð,<Ó(=Ð'>Ð?ˆJØ(2ÐœR ›WÑ%Ù# CÓ(ˆDØ× Ñ  6¨*¨Ð5IÈ$ÈÐ!PÔQØÐr0   c               ó    € V ^8„  d   QhRRRR/# rŠ   r   )r-   s   "r"   r.   rî   Ž  s   € ÷ @	ñ @	 _ð @	¸ñ @	r0   c                ó@  <€ S R S^,           R2pV P                  4        EF  w  r#\        V\        P                  P                  4      '       d$   S! W#4      pVS^,           RV RV R2,          pKS  \
        P                  VSR7      pVf   \        RV: 24      h\        VP                  4       R4      pVe   TM\        VP                  4       R4      pVe.   VP                  P                  R8w  d   V R	VP                   R
2pVS^,           RV RV R2,          pEK  	  V P                  P                  4        EF  w  r‰V	f   K  V	P                  4       \         8:  dH   ^ RIHp
 V
P&                  \         8  d!   \)        RV
P&                   R\          R24      h\+        V	4      pMi\        P,                  ! V	4      '       d(   R\/        V	P0                  4       RV	P2                   R2pM&R\/        V	P0                  4       RV	P2                   R2pV	P                  P                  R8w  d   V R	V	P                   R
2pVS^,           RV RV R2,          pEK  	  V P4                  P                  4        Fy  w  rÍVf   K  RpVP                  P                  R8w  d   RVP                   R2pR\/        VP0                  4       RVP2                   V R2pVS^,           RV RV R2,          pK{  	  VS! V P6                  \9        S4      4       R2,          pV# )zdef __init__(self) -> None:
zsuper().__init__()
zself.z = z()
)rá   Nz!Cannot convert module to string: Úcpuz.to("z")r   )Ú
PRINT_OPTSzPRINT_OPTS.threshold (z() must be >= MAX_CONSTANT_NUMEL_INLINE (rŸ   ztorch.randn(z, dtype=ztorch.randint(1, size=zself.register_buffer('z', z)
r   z
, device="Ú"ztorch.nn.Parameter(torch.randn(z)))r|   r}   r~   r   r€   ru   r�   rq   ÚnextÚ
parametersÚbuffersÚdevicerŽ   Ú_buffersÚitemsÚnumelÚMAX_CONSTANT_NUMEL_INLINEÚtorch._tensor_strrû   Ú	thresholdr·   r¸   Úis_floating_pointÚlistÚshaper¦   Ú_parametersÚcoderƒ   )r†   Ú	model_strÚmodule_nameÚchildrñ   rÙ   Úexample_paramÚexample_tensorÚbuffer_nameÚbufferrû   Ú
tensor_strÚ
param_nameÚparamÚmaybe_devicerê   rá   rö   Útabs   &              €€€€r"   ró   Ú2NNModuleToString.convert.<locals>.emit_module_bodyŽ  s;  ø€ à�%Ð4°S¸1µW°IÐ=QÐRð ð '-×&;Ñ&;×&=Ñ"�Ü˜e¤U§X¡X×%9Ñ%9×:Ò:Ù!2°;Ó!F�JØ C¨!¥G 9¨E°+°¸cÀ*ÀÈTÐ!RÕR�IÙÜ-×HÑHØÐ->ð Ió �
ð Ò%Ü2Ø;¸E¹9ÐEóð ô
 !% U×%5Ñ%5Ó%7¸Ó >�ð %Ò0ñ "ä˜eŸm™m›o¨tÓ4ð ð
 "Ò-°.×2GÑ2G×2LÑ2LÐPUÔ2UØ$. <¨u°^×5JÑ5JÐ4KÈ2Ð!N�JØ  a¥˜y¨¨k¨]¸#¸j¸\ÈÐLÕL“	ñ- '>ð0 (.§¡×'<Ñ'<×'>Ñ#�Ø’>Ùà—<‘<“>Ô%>Ô>Ý<à!×+Ñ+Ô.GÔGÜ,Ø4°Z×5IÑ5IÐ4Jð K:Ü:SÐ9TÐTUðWóð ô "& f£‘JÜ×,Ò,¨V×4Ò4à&¤t¨F¯L©LÓ'9Ð&:¸(À6Ç<Á<À.ÐPQÐRñ ð $:¼$¸v¿|¹|Ó:LÐ9MÈXÐV\×VbÑVbÐUcÐcdÐ!e�JØ—=‘=×%Ñ%¨Ô.Ø$. <¨u°V·]±]°OÀ2Ð!F�JØØ˜Q•w�iÐ5°k°]À#ÀjÀ\ÐQTÐUõ“	ñ+ (?ð2 &,×%7Ñ%7×%=Ñ%=Ö%?Ñ!�
Ø’=ÙØ!�Ø—<‘<×$Ñ$¨Ô-Ø%/°·±¨~¸QÐ#?�LØ>¼tÀEÇKÁKÓ?PÐ>QÐQYÐZ_×ZeÑZeÐYfÐgsÐftÐtvÐw�
Ø  a¥˜y¨¨j¨\¸¸Z¸LÈÐKÕK’	ñ &@ð ™J v§{¡{´C¸³HÓ=Ð>¸bÐAÕAˆIØÐr0   zclass Repro(torch.nn.Module):
z
from torch.nn import *
r   ú    )Útorch.nn.modules.modulerê   rG   )	rw   rá   Úrepro_classrê   ró   rö   rô   rõ   r  s	   &d @@@@@@r"   ÚconvertÚNNModuleToString.convertt  s_   þ€ å6àˆð ,.ÐØ#%ˆ÷		ò 		÷@	ó @	ðD 8Ñ8HÈÓ8LÐ7MÐNˆà+¨d¯i©i¸ÈÈÕ8UÓ.VÕVÐVr0   r   N>   ú#torch.ao.nn.qat.modules.conv.Conv1dú#torch.ao.nn.qat.modules.conv.Conv2dú#torch.ao.nn.qat.modules.conv.Conv3dú5torch.ao.nn.intrinsic.qat.modules.conv_fused.ConvBn1dú5torch.ao.nn.intrinsic.qat.modules.conv_fused.ConvBn2dú5torch.ao.nn.intrinsic.qat.modules.conv_fused.ConvBn3dú7torch.ao.nn.intrinsic.qat.modules.conv_fused.ConvReLU1dú7torch.ao.nn.intrinsic.qat.modules.conv_fused.ConvReLU2dú7torch.ao.nn.intrinsic.qat.modules.conv_fused.ConvReLU3dú9torch.ao.nn.intrinsic.qat.modules.conv_fused.ConvBnReLU1dú9torch.ao.nn.intrinsic.qat.modules.conv_fused.ConvBnReLU2dú9torch.ao.nn.intrinsic.qat.modules.conv_fused.ConvBnReLU3d)ÚfbgemmÚx86ÚqnnpackÚonednn),r`   ra   rb   rc   r    rÁ   rÓ   r³   r~   ÚnnÚLinearÚConv1dÚConv2dÚConv3dÚBatchNorm1dÚBatchNorm2dÚBatchNorm3dÚ	LayerNormÚDropoutÚSoftmaxÚReLUÚGELUÚIdentityÚ	MaxPool2dÚ	EmbeddingÚTanhÚConvTranspose1dÚGLUÚLSTMÚFlattenÚAdaptiveAvgPool2drÜ   Ústaticmethodr‡   r�   r”   r®   r»   rÏ   rÖ   rß   r�   r  rd   r   r0   r"   ru   ru   ­   s  † à:ØKðÐò
Ðð  	0ØBðÐð $JÐ ð 	�‰�‰Ø�‰�‰Ø�‰�‰Ø�‰�‰Ø�‰×ÑØ�‰×ÑØ�‰×ÑØ�‰×ÑØ�‰×ÑØ�‰×ÑØ�‰�‰Ø�‰�‰Ø�‰×ÑØ�‰×ÑØ�‰×ÑØ�‰�‰Ø�‰× Ñ Ø�‰�‰Ø�‰�‰Ø�‰×ÑØ�‰×"Ñ"ð+€Jð0 ôó ðð" ôDó ðDð ô6ó ð6ð ô3ó ð3ð2 ôó ðð ô3ó ð3ð> ô3ó ð3ð  ôó ðð ðØ>Cöó ðð" ð]WÀuö ]Wó ô]Wr0   ru   c               ó   € V ^8„  d   QhRR/# rE   r   )r-   s   "r"   r.   r.   Ö  s   € ÷ ñ  3ñ r0   c                 óÆ  € \         P                  P                  4       '       g   R # Rp  \         P                  P                  fq   \
        P                  ! RR.4      pVP                  4       P                  R4      pRP                  V Uu. uF  q3R8w  g   K  RV R2NK  	  up4      pW R2,          p M
V R,          p  \        R
 \        \         P                  P                  4       4       4       4      pV R,          p VP                  4        F  w  rgV RV RV R2,          p K  	  V R,          p V # u upi   \        \
        P                  3 d    T R	,          p  LŸi ; i)z:# torch.cuda.is_available()==False, no GPU info collected
z# CUDA Info: 
Únvccz	--versionr   r   z# z 
z'# Not searching for nvcc on ROCM setup
z# nvcc not found
c              3  ó`   "  € T F$  p\         P                  P                  V4      x € K&  	  R # 5irä   )r~   ÚcudaÚget_device_name)r    Úis   & r"   r#   Ú,_cuda_system_info_comment.<locals>.<genexpr>æ  s&   é € ð Ù/O¨!Œ�
‰
×"Ñ" 1×%Ð%Ó/Oùs   ‚,.z# GPU Hardware Info: 
z : )r~   rI  Úis_availableÚversionÚhipÚ
subprocessÚcheck_outputÚdecoder8   rG   ÚOSErrorÚCalledProcessErrorr   ÚrangeÚdevice_countr  )r  Úcuda_version_outÚcuda_version_linesÚsÚcommentÚ	gpu_namesÚnameÚcounts           r"   Ú_cuda_system_info_commentr^  Õ  sJ  € ä�:‰:×"Ñ"×$Ò$ÙLà!€Ið	*Ü�=‰=×ÑÒ$Ü)×6Ò6¸ÀÐ7LÓMÐØ!1×!8Ñ!8Ó!:×!@Ñ!@ÀÓ!FÐØ—g‘gÑ4FÓRÑ4F¨qÈrÉ'œ{  A 3 c›{Ñ4FÑRÓSˆGØ˜9 B˜Õ'‰IàÐCÕC‰Iô ñ Ü/4´U·Z±Z×5LÑ5LÓ5NÔ/Oóó €Ið Ð*Õ*€IØ —‘Ö(‰ˆØ�r˜$˜˜s 5 '¨Ð-Õ-Š	ñ )à�Õ€IØÐùò Søô ”Z×2Ñ2Ð3ô *ØÐ)Õ)Š	ð*ús0   ªA"D9 ÂD4Â
D4Â#D9 Â6	D9 Ä4D9 Ä9$E ÅE Ústable_outputFc               ó    € V ^8„  d   QhRRRR/# ©r(   r_  rQ   r+   r*   r   )r-   s   "r"   r.   r.   ñ  s   € ÷ 	ñ 	¨tð 	Àñ 	r0   c                óv  aaa€ V '       d   R# . ROo. ROoRR.oR VVV3R llp\         P                  P                  4        UUu. uF.  w  r#V! V4      '       g   K  RV RVP                  RR	4       R2NK0  	  pppVP	                  R
 S 4       4       RP                  V4      p\        RV R24      # u uppi )zd
Generate a string configuration for environment variables related to Dynamo, Inductor, and Triton.
z+# env var omitted due to stable_output=TrueÚTORCHDYNAMO_REPRO_AFTERÚTORCHDYNAMO_REPRO_LEVELc               ó    € V ^8„  d   QhRRRR/# )r(   Úkeyr*   r+   rQ   r   )r-   s   "r"   r.   Ú.generate_env_vars_string.<locals>.__annotate__ü  s   € ÷ 
ñ 
�Cð 
˜Dñ 
r0   c                ó®   <a € \         ;QJ d    V 3R  lS 4       F  '       g   K   RM	  RM! V 3R  lS 4       4      ;'       d    S S9  ;'       d    S S9  # )c              3  ó,   <"  € T F	  qS9   x € K  	  R # 5irä   r   )r    Ústringrf  s   & €r"   r#   Ú;generate_env_vars_string.<locals>.filter.<locals>.<genexpr>þ  s   øé € Ð7©J &˜#–«Jùs   ƒTF)Úany)rf  Ú
allow_listÚrepro_env_varsÚ	skip_lists   f€€€r"   ÚfilterÚ(generate_env_vars_string.<locals>.filterü  sJ   ù€ ç‹CÔ7©JÓ7�C�CŠCÔ7©JÓ7Ó7÷ *ð *Ø˜9Ñ$÷*ð *à˜>Ñ)ð	
r0   zos.environ['z'] = 'Ú'rü   c              3  ó.   "  € T F  pR V R2x € K  	  R# 5i)zos.environ.pop('z', None)Nr   )r    rf  s   & r"   r#   Ú+generate_env_vars_string.<locals>.<genexpr>	  s   é € ÐSÁN¸SÐ*¨3¨%¨xÕ8ÃNùr$   r   z
import os
z
    )ÚTORCHÚDYNAMOÚINDUCTORÚTRITON)ÚTRITON_LIBDEVICE_PATHÚTRITON_PTXAS_PATHÚTRITON_LIBCUDA_PATH)r6   Úenvironr  r<   rË   rG   r   )	r_  rp  rf  ÚvalueÚconfig_linesÚconfig_stringrm  rn  ro  s	   $     @@@r"   Úgenerate_env_vars_stringr€  ñ  sÊ   ú€ ÷ Ù<â:€JÚU€IØ/Ð1JÐK€N÷
ò 
ô Ÿ*™*×*Ñ*Ô,ôá,‰JˆCÙ�#�;ô 	AˆL˜˜˜V E§M¡M°#°sÓ$;Ð#<¸AÓ@Ù,ð ñ ð ×ÑÑSÁNÓSÔSØ—I‘I˜lÓ+€MÜ#ð )à€ð ð%ó 	ð 	ùós   ÁB5ÁB5c               ó    € V ^8„  d   QhRRRR/# ra  r   )r-   s   "r"   r.   r.     s   € ÷ ñ ¨Tð ¸cñ r0   c                óŒ  € ^ RI p^ RIp^ RIHp V '       d   R# . pVP                  P                  4        FV  p\        V\        4      '       g   K  VP                  4       pV'       g   K5  VP                  RVP                   RV 24       KX  	  RP                  V4      pVP                  P                  P                  P                  4       pRVP                  P                   P                  4        RVP"                  P                   P                  4        RVP$                  P                   P                  4        RV RV R2# )ré   N)Úcommonz*# config omitted due to stable_output=Truezimport r   z~import torch._dynamo.config
import torch._inductor.config
import torch._functorch.config
import torch.fx.experimental._config
)Útorch._functorch.configÚtorch._inductor.configÚtorch._inductor.codegenrƒ  Úcustom_backend_codegen_configsÚvaluesr}   r   Úcodegen_configrª   r`   rG   r   ÚexperimentalÚ_configÚ_dynamor   Ú	_inductorÚ
_functorch)r_  r~   rƒ  Úextra_codegen_configsÚcr‰  Úextra_codegen_configs_strÚexperimental_configs   $       r"   Úgenerate_config_stringr“    s&  € Û"Û!Ý.çÙ;ð
 ÐØ×2Ñ2×9Ñ9Ö;ˆÜ�aœ×&Ô&Ø×-Ñ-Ó/ˆNß‰~Ø%×,Ñ,¨w°q·z±z°lÀ"À^ÐDTÐ-UÖVñ	 <ð
 !%§	¡	Ð*?Ó @ÐàŸ(™(×/Ñ/×7Ñ7×FÑFÓHÐðð
 ‡�×Ñ×$Ñ$Ó&Ð 'ð (Ø‡�×Ñ×&Ñ&Ó(Ð )ð *Ø×Ñ×Ñ×'Ñ'Ó)Ð *ð +ØÐ ð ØÐ ð ð
ð 
r0   c               ó   € V ^8„  d   QhRR/# rE   r   )r-   s   "r"   r.   r.   3  s   € ÷ @ñ @ ñ @r0   c                 óR   € \         P                  P                  \        4       R 4      # )zminifier_launcher.py)r6   r7   rG   ro   r   r0   r"   Úget_minifier_repro_pathr–  3  s   € Ü�7‰7�<‰<œ›Ð(>Ó?Ð?r0   c               ó    € V ^8„  d   QhRRRR/# )r(   Úcontentsr*   r+   r,   r   )r-   s   "r"   r.   r.   7  s   € ÷ Vñ V Sð V¨Tñ Vr0   c                ó„  € \        4       p\        P                  R V4       \        '       d   \	        V4      P                  4         \        VR4      ;_uu_ 4       pVP                  V 4       RRR4       R#   + '       g   i     R# ; i  \         d*   p\        P                  R4       \        RT 24      ThRp?ii ; i)zWriting minified repro to:
%srU   Nr   zCould not write to )
r–  rZ   r[   Úuse_buckr&   rX   rW   rS  Ú	exceptionÚNotImplementedError)r˜  Úminified_repro_pathr]   Úes   &   r"   Úhelper_for_dump_minifyrŸ  7  sš   € Ü1Ó3ÐÜ‡K�KÐ0Ð2EÔFçƒxÜÐ,Ó-×3Ñ3Ô5ðVÜÐ% s×+Ô+¨rØ�H‰H�XÔ÷ ,×+×+Ò+ûô ô VÜ�‰�bÔÜ!Ð$7Ð8KÐ7LÐ"MÓNÐTUÐUûðVús6   ÁB ÁA7Á-B Á7B	ÂB ÂB ÂB?Â$B:Â:B?c                  ó   € ] tR tRtRtR# )ÚAccuracyErroriF  r   Nrr   r   r0   r"   r¡  r¡  F  rs   r0   r¡  c               ó    € V ^8„  d   QhRRRR/# )r(   Úexample_inputsúSequence[Any]r+   ú	list[Any]r   )r-   s   "r"   r.   r.   J  s   € ÷ 
ñ 
°Mð 
Àiñ 
r0   c                óð   € \        V 4      p\        \        V 4      4       FR  p\        W,          \        P
                  4      '       g   K+  W,          P                  W,          P                  4       KT  	  V# )zÖ
This clone inputs is different from utils clone_input. In case of minifier,
all the tensors are leaf tensors while creating a new graph. So, we set the
requires_grad field w/o checking the leafness of the tensor.
)r   rU  rƒ   r}   r~   r	   Úrequires_grad_Úrequires_grad)r£  Úcloned_inputsÚidxs   &  r"   Úclone_inputs_retaining_gradnessr«  J  sX   € ô ! Ó0€MÜ”S˜Ó(Ö)ˆÜ�mÕ(¬%¯,©,×7Ô7ØÕ×-Ñ-¨nÕ.A×.OÑ.OÖPñ *ð Ðr0   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r(   rw   rx   r­   r¤  Úonly_fwdrQ   Údisable_cloner+   r   r   )r-   s   "r"   r.   r.   W  s:   € ÷ 0ñ 0Øð0à
ð0ð ð0ð ð	0ð
 	ñ0r0   c                ód  € ^RI HpHpHp \        P
                  ! V 4      p V'       g   \        V4      p\        V R4      '       d   V P                  R4       \        V RR4      '       d	   V ! V4      MV ! V!  pV'       d   V# V! V4      '       d   V! V4      pVP                  4        V! WRV4      # )zÓ
Runs a forward and possibly backward iteration for a given mod and args.

When disable_clone is True, we will use args as-is without cloning.
This is higher fidelity but we may destroy the args in the process.
)Úcollect_resultsÚreduce_to_scalar_lossÚrequires_bwd_passÚ	zero_gradTÚ_boxed_callFN)Útestingr°  r±  r²  ÚcopyÚdeepcopyr«  r©   r³  r¥   Úbackward)	rw   r­   r­  r®  r°  r±  r²  ÚoutÚlosss	   &&&&     r"   Úrun_fwd_maybe_bwdr»  W  s“   € ÷ SÑRä	�Š�rÓ	€BßÜ.¨tÓ4ˆäˆr�;×ÒØ
�‰�TÔô ˜b -°×7Ò7‰"ˆTŒ(¹RÀ¹Y€CçØˆ
Ù˜×ÒÙ$ SÓ)ˆØ�‰ŒÙ˜2 D¨$Ó/Ð/r0   Úrequire_fp64Úignore_non_fpc               ó4   € V ^8„  d   QhRRRRRRRRRRR	RR
R/# )r(   rw   rx   Úopt_gmr£  r¤  r­  rQ   r¼  r½  r+   r   )r-   s   "r"   r.   r.   w  sN   € ÷ 7ñ 7Øð7à ð7ð "ð7ð ð	7ð ð7ð ð7ð 
ñ7r0   c          	     óÜ  € ^RI Hp \        WV4      pRp\        P                  '       d9    \        \        P                  ! V 4      \        V4      4      w  rš\        WšV4      p \        WV4      pT! TTT\        P                  RTR7      pT#   \         d,    T'       d   \        R4      h\        P                  R4        L`i ; i  \         d    \        P                  R4        R# i ; i)aI  
Check two models have same accuracy.

require_fp64: if True, raise an error if we unable to calculate the fp64 reference
ignore_non_fp: if True, do not compare outputs which are not floating point.  This
    is mostly useful for the minifier (which wants to avoid quantizing floating point
    error into integer/boolean error)
)ÚsameNzfCould not generate fp64 outputs, workaround with torch._dynamo.config.same_two_models_use_fp64 = FalsezCould not generate fp64 outputsz�While minifying the program in accuracy minification mode, ran into a runtime exception which is likely an unrelated issue. Skipping this graph.T)ÚtolÚ	equal_nanr½  )ÚutilsrÁ  r»  r   Úsame_two_models_use_fp64Úcast_to_fp64r¶  r·  r«  Ú	ExceptionÚRuntimeErrorrZ   r[   r›  Úrepro_tolerance)rw   r¿  r£  r­  r¼  r½  rÁ  ÚrefÚfp64_refÚ
fp64_modelÚfp64_examplesÚresÚpassings   &&&&$$       r"   Úsame_two_modelsrÐ  w  sï   € õ" ä
˜B°Ó
9€Cà€HÜ×&×&Ð&ð
	;Ü(4Ü—’˜bÓ!Ô#BÀ>Ó#Ró)Ñ%ˆJô )¨ÀHÓMˆHð
Ü ¸ÓAˆñ ØØØÜ×"Ñ"ØØ#ô€Gð €Nøô7 ô 	;ßÜ"Ø|óð ô �K‰KÐ9Ö:ð	;ûô ô ô 	�‰ð$ô	
ò
 ðús)   ¬7B Á$C ÂCÂ! CÃCÃ C+Ã*C+c               ó    € V ^8„  d   QhRRRR/# )r(   Úmodelrx   r+   r   )r-   s   "r"   r.   r.   ±  s   € ÷ ñ Ð#7ð Ð<Pñ r0   c                óx  € V P                   P                   EFt  pVP                  R 8X  dè   VP                  \        P
                  P                  P                  P                  J d¬   \        VP                  4      ^8w  d"   \        R\        VP                  4       24      h\        VP                  ^,          4      '       dO   VP                  ^,          \        P                  8w  d)   VP                  ^ ,          \        P                  3Vn
        VP                  R 8X  g   EK  VP                  P                  R4      pVf   EK2  \        V4      '       g   EKF  \!        VP                  4      p\        P                  VR&   W1n        EKw  	  V P                   P#                  4        V P%                  4        V # )Úcall_functionz"Expected node to have 2 args, got r¦   )ÚgraphÚnodesÚopr=   r~   ÚopsÚprimsÚconvert_element_typeÚdefaultrƒ   r­   r·   r   Úfloat64ÚkwargsÚgetÚdictÚlintÚ	recompile)rÒ  Únoder¦   Ú
new_kwargss   &   r"   Úcast_dtype_args_to_fp64rä  ±  s"  € Ø—‘×!Õ!ˆà�G‰G�Ô&Ø—‘œuŸy™yŸ™×CÑC×KÑKÓKä�4—9‘9‹~ Ô"Ü$Ø8¼¸T¿Y¹Y»Ð8HÐIóð ô ˜dŸi™i¨�l×+Ò+°·	±	¸!µÄÇÁÔ0MØ!ŸY™Y q�\¬5¯=©=Ð9�”	Ø�7‰7�o×%Ø—K‘K—O‘O GÓ,ˆEØÕ ¤^°E×%:Õ%:Ü! $§+¡+Ó.�
Ü&+§m¡m�
˜7Ñ#Ø(—ñ! "ð$ 
‡K�K×ÑÔØ	‡O�OÔØ€Lr0   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r(   r¦   útorch.dtyperÒ  rx   Úinputsr¥  r+   ú&tuple[torch.fx.GraphModule, list[Any]]r   )r-   s   "r"   r.   r.   É  s,   € ÷ ñ ØðØ3ðØ=Fðà+ñr0   c                ó’   a € ^ RI Hp VP                  S 4      pS \        P                  8X  d   \        V4      pV! V 3R lV4      pW3# )ré   )Útree_mapc                ó–   <€ \        V \        P                  4      '       d(   V P                  4       '       d   V P	                  S4      # T # rä   )r}   r~   r	   r  Úto)r!   r¦   s   &€r"   Ú<lambda>Úcast_to.<locals>.<lambda>Õ  s<   ø€ Ü�aœŸ™×&Ò&¨1×+>Ñ+>×+@Ò+@ð —$‘$�u“+ð àðr0   )Útorch.utils._pytreerê  rì  r~   rÜ  rä  )r¦   rÒ  rç  rê  s   f&& r"   Úcast_torð  É  sK   ø€ õ -à�H‰H�U‹O€EØ”—‘Ôô (¨Ó.ˆáô	ð 	ó	€Fð ˆ=Ðr0   c               ó$   € V ^8„  d   QhRRRRRR/# )r(   rÒ  rx   rç  r¥  r+   rè  r   )r-   s   "r"   r.   r.   Ý  s$   € ÷ 1ñ 1Øð1Ø)2ð1à+ñ1r0   c                ó6   € \        \        P                  W4      # rä   )rð  r~   rÜ  )rÒ  rç  s   &&r"   rÆ  rÆ  Ý  s   € ô ”5—=‘= %Ó0Ð0r0   c               ó4   € V ^8„  d   QhRRRRRRRRR	RR
RRR/# )r(   rw   rx   r£  r¤  Úcompiler_fnzACallable[[torch.fx.GraphModule, list[Any]], torch.fx.GraphModule]r­  rQ   r¼  r½  r+   r   )r-   s   "r"   r.   r.   ã  sO   € ÷ ñ Øðà!ðð Sðð ð	ð ðð ðð 
ñr0   c          	     óÊ   €  V! \         P                  ! V 4      \        V4      4      p\        V VVVVVR 7      '       * #   \         d    \
        P                  R4        R# i ; i))r¼  r½  z�While minifying the program in accuracy minification mode, ran into a runtime exception which is likely an unrelated issue. Skipping this graphF)r¶  r·  r«  rÐ  rÇ  rZ   r›  )rw   r£  rô  r­  r¼  r½  Úcompiled_gms   &&&&$$ r"   Úbackend_accuracy_failsr÷  ã  st   € ðÙ!Ü�MŠM˜"ÓÔ>¸~ÓNó
ˆô #ØØØØØ%Ø'ô
ô 
ð 	
øô ô ô 	�‰ð#ô	
ò
 ðús   ‚;> ¾ A"Á!A"c               ó$   € V ^8„  d   QhRRRRRR/# )r(   rÅ   ú%torch._prims_common.StrideType | Noner	  útorch._prims_common.ShapeTyper+   ztorch._prims_common.StrideTyper   )r-   s   "r"   r.   r.     s-   € ÷ Vñ VØ1ðVð )ðVð $ñ	Vr0   c               ó:   € V e   V # \         P                  ! V4      # rä   )rÄ  Úmake_contiguous_strides_for)rÅ   r	  s   &$r"   Ú_stride_or_defaultrý    s   € ð
 Ò'ˆ6ÐU¬U×-NÒ-NÈuÓ-UÐUr0   c               ó    € V ^8„  d   QhRRRR/# )r(   Údr   r+   zCallable[[T | None], T]r   )r-   s   "r"   r.   r.     s   € ÷ /ñ /�Qð /Ð2ñ /r0   c                ó   a € V 3R  l# )c                ó   <€ V e   V # S# rä   r   )r!   rÿ  s   &€r"   rí  Ú_mk_defaulter.<locals>.<lambda>  s   ø€ ˜!š-�QÐ.¨QÐ.r0   r   )rÿ  s   fr"   Ú_mk_defaulterr    s	   ø€ Ü.Ð.r0   rú   c                  ó‚   € ] tR tRtR R ltRRRR/R R lltR	 R
 ltR R ltR R ltR R lt	R R lt
R R ltRtR# )ÚNopInputReaderi  c               ó   € V ^8„  d   QhRR/# ©r(   r+   r,   r   )r-   s   "r"   r.   ÚNopInputReader.__annotate__   s   € ÷ ñ ˜$ñ r0   c                	ó   € ^ V n         R# )ré   N©Útotal)r@   s   &r"   rB   ÚNopInputReader.__init__   s	   € ØˆŽ
r0   r   NÚ
dtype_hintc          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r(   Ústorage_hashr˜   Únbytesr¢   r   ú)torch._prims_common.DeviceLikeType | Noner  útorch.dtype | Noner+   r,   r   )r-   s   "r"   r.   r  #  s<   € ÷ ñ à ðð ðð
 :ðð 'ðð 
ñr0   c               	ó8   € V ;P                   ^,          un         R# ©é   Nr
  )r@   r  r  r   r  s   &&&$$r"   ÚstorageÚNopInputReader.storage#  s   € ð 	�
Š
�a��
r0   c               ó$   € V ^8„  d   QhRRRRRR/# )r(   r­   r   rÝ  r+   ztorch.Tensor | Noner   )r-   s   "r"   r.   r  -  s"   € ÷ ñ ˜Cð ¨3ð Ð3Fñ r0   c                	ó   € R # rä   r   ©r@   r­   rÝ  s   &*,r"   ÚtensorÚNopInputReader.tensor-  ó   € Ùr0   c               ó$   € V ^8„  d   QhRRRRRR/# )r(   r­   r   rÝ  r+   ú
int | Noner   )r-   s   "r"   r.   r  0  s!   € ÷ ñ ˜Cð ¨3ð °:ñ r0   c                	ó   € R # rä   r   r  s   &*,r"   ÚsymintÚNopInputReader.symint0  r  r0   c               ó    € V ^8„  d   QhRRRR/# ©r(   r\  r*   r+   r,   r   )r-   s   "r"   r.   r  3  s   € ÷ ñ ˜#ð  $ñ r0   c                	ó   € R # rä   r   ©r@   r\  s   &&r"   ÚconstÚNopInputReader.const3  r  r0   c               ó    € V ^8„  d   QhRRRR/# r$  r   )r-   s   "r"   r.   r  6  s   € ÷ ñ  ð ¨ñ r0   c                	ó   € R # rä   r   r&  s   &&r"   ÚunsupportedÚNopInputReader.unsupported6  r  r0   c               ó$   € V ^8„  d   QhRRRRRR/# )r(   Údevice_typer*   Údevice_indexr¢   r+   r,   r   )r-   s   "r"   r.   r  9  s!   € ÷ ñ  Sð ¸ð Àñ r0   c                	ó   € R # rä   r   )r@   r.  r/  s   &&&r"   Ú	generatorÚNopInputReader.generator9  r  r0   c               ó    € V ^8„  d   QhRRRR/# ©r(   Úscript_class_namer*   r+   r,   r   )r-   s   "r"   r.   r  <  s   € ÷ ñ ¨ð °ñ r0   c                	ó8   € V ;P                   ^,          un         R# r  r
  ©r@   r5  s   &&r"   ÚopaqueÚNopInputReader.opaque<  s   € Ø�
Š
�a��
r0   r
  ©r`   ra   rb   rc   rB   r  r  r!  r'  r+  r1  r8  rd   r   r0   r"   r  r    sD   † õðð
 =Aðð *.÷õõõõõ÷ñ r0   r  c            	      ó®   € ] tR tRtRRR/R R llltRRRR/R R	 lltRR
RRRRRRR/R R llltRR/R R lltR R ltR R lt	R R lt
R R ltRtR# )ÚInputReaderiB  NÚpbarc               ó$   € V ^8„  d   QhRRRRRR/# )r(   Úsave_dirr˜   r=  ztqdm | Noner+   r,   r   )r-   s   "r"   r.   ÚInputReader.__annotate__C  s$   € ÷ ñ Ø"ðØ4?ðà	ñr0   c               	ó~   € Vf   \         P                  R4       Ve   \        V4      MR V n        . V n        W n        R # )Nz0no save_dir specified, will generate random data)rZ   r[   r   Ústorer­   r=  )r@   r?  r=  s   &&$r"   rB   ÚInputReader.__init__C  s7   € ð ÒÜ�K‰KÐJÔKØ5=Ò5IÔ'¨Ô1ÈtˆŒ
Ø!ˆŒ	ØŽ	r0   r   r  c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r(   r  r˜   r  r¢   r   r  r  r  r+   r   r   )r-   s   "r"   r.   r@  P  sC   € ÷ Qñ Qà ðQð ðQð
 :ðQð 'ðQð 
ñQr0   c               	óô  € V P                   e   V P                   P                  ^4       \        V4      p\        V4      pV P                  eS   VeO    V P                  P                  V4      pW5P                  8w  d!   \        P                  RW5P                  4       V# \        RV R24       W$P                  ,          3p\        R VR7      p\        WgWC4      P                  4       #   \         d     LVi ; i)Nzdevice mismatch: %s != %szcould not load z , generating random data instead©r	  )r=  ÚupdateÚ_device_or_defaultÚ_dtype_or_defaultrB  Úread_storager   rZ   r[   ÚFileNotFoundErrorr   Úitemsizerý  r
   Úuntyped_storage)r@   r  r  r   r  r  r	  rÅ   s   &&&$$   r"   r  ÚInputReader.storageP  sÛ   € ð �9‰9Ò Ø�I‰I×Ñ˜QÔÜ# FÓ+ˆÜ& zÓ2ˆ
Ø�:‰:Ò! lÒ&>ð
ØŸ*™*×1Ñ1°,Ó?�ð Ÿ^™^Ô+Ü—K‘KÐ ;¸VÇ^Á^ÔTð �Ü�O L >Ð1QÐRÔSØ×.Ñ.Õ.Ð0ˆÜ# D°Ô6ˆÜ˜E¨:Ó>×NÑNÓPÐPøô %ô Ùðús   ÁC) Ã)C7Ã6C7Ústorage_offsetr¦   r¨  Úis_leafc               ó<   € V ^8„  d   QhRRRRRRRRR	R
RRRRRRRR/	# )r(   r  r   r	  rú  rÅ   rù  rO  r  r¦   r  r¨  zbool | NonerP  Úmetadatar   r+   útorch.Tensorr   )r-   s   "r"   r.   r@  m  sd   € ÷ #ñ #àð#ð -ð#ð 6ð	#ð #ð#ð "ð#ð #ð#ð ð#ð ð#ð 
ñ#r0   c               	óì  € \        W2R 7      p\        V4      p\        V4      p\        V4      p\	        V4      p\
        P                  ! . WQP                  VR7      p	\
        P                  ! 4       ;_uu_ 4        V	P                  WW#4       RRR4       V'       g   \
        P                  ! 4       ;_uu_ 4        V	P                  \
        P                  R7      p	RRR4       \
        P                  ! 4       ;_uu_ 4        V	P                  WW#4       RRR4       \
        P                  P                  P                  V	4      V8w  d9   \!        R\
        P                  P                  P                  V	4       RV 24      h\
        P"                  P%                  W˜4       V P&                  P)                  V	4       V	#   + '       g   i     EL9; i  + '       g   i     Lþ; i  + '       g   i     LÙ; i)rF  )r¦   r   r¨  N)Úmemory_formatz/Tensor leaf status mismatch: safe_is_leaf(t) = z, expected )rý  Ú_storage_offset_or_defaultrI  Ú_is_leaf_or_defaultÚ_requires_grad_or_defaultr~   r  r   Úno_gradÚset_Úenable_gradÚcloneÚpreserve_formatÚ_subclassesÚ
meta_utilsÚsafe_is_leafr·   Ú_utilsÚset_tensor_metadatar­   rª   )
r@   r  r	  rÅ   rO  r¦   r¨  rP  rR  Úts
   &&&&$$$$, r"   r  ÚInputReader.tensorm  sV  € ô $ FÔ8ˆÜ3°NÓCˆÜ! %Ó(ˆÜ% gÓ.ˆÜ1°-Ó@ˆÜ�LŠLØ�e§N¡NÀ-ô
ˆô �]Š]�_�_Ø�F‰F�7¨EÔ:÷ çä×"Ò"×$Õ$Ø—G‘G¬%×*?Ñ*?�GÓ@�÷ %ä—’—•Ø—‘�w°Ô>÷ !ä×Ñ×'Ñ'×4Ñ4°QÓ7¸7ÔBÜ ØAÜ×$Ñ$×/Ñ/×<Ñ<¸QÓ?Ð@ÀÈGÈ9ðVóð ô 	�‰×(Ñ(¨Ô5Ø�	‰	×Ñ˜ÔØˆ÷ �_ˆ_ú÷ %×$úç —ús$   Á9F<Â9!GÃ?G#Æ<G	ÇG 	Ç#G3	Úexprc               ó$   € V ^8„  d   QhRRRRRR/# )r(   Úvalr   re  r˜   r+   r   )r-   s   "r"   r.   r@  ’  s!   € ÷ ñ ˜#ð ¨
ð ¸cñ r0   c               	óÆ   € V P                   P                  V4       VeB   \        V R4      '       g   / V n        W P                  \	        V P                   4      ^,
          &   V# )NÚsymint_exprs)r­   rª   r©   ri  rƒ   )r@   rg  re  s   &&$r"   r!  ÚInputReader.symint’  sO   € Ø�	‰	×Ñ˜ÔØÒÜ˜4 ×0Ò0Ø46�Ô!Ø48×Ñœc $§)¡)›n¨qÕ0Ñ1Øˆ
r0   c               ó    € V ^8„  d   QhRRRR/# r$  r   )r-   s   "r"   r.   r@  š  s   € ÷ ñ ˜#ð  $ñ r0   c                	ó<   € V P                   P                  R 4       R # rä   ©r­   rª   r&  s   &&r"   r'  ÚInputReader.constš  ó   € Ø�	‰	×Ñ˜Ör0   c               ó    € V ^8„  d   QhRRRR/# r$  r   )r-   s   "r"   r.   r@  �  s   € ÷ ñ  ð ¨ñ r0   c                	ó<   € V P                   P                  R 4       R # rä   rm  r&  s   &&r"   r+  ÚInputReader.unsupported�  ro  r0   c               ó$   € V ^8„  d   QhRRRRRR/# )r(   r.  r*   r/  r¢   r+   r   r   )r-   s   "r"   r.   r@     s!   € ÷ ñ  Sð ¸ð Àñ r0   c                	ó–   € \         P                  ! W4      p\         P                  ! VR 7      pV P                  P	                  V4       V# ))r   )r~   r   Ú	Generatorr­   rª   )r@   r.  r/  r   Úgens   &&&  r"   r1  ÚInputReader.generator   s5   € Ü—’˜kÓ8ˆÜ�oŠo VÔ,ˆØ�	‰	×Ñ˜ÔØˆ
r0   c               ó    € V ^8„  d   QhRRRR/# r4  r   )r-   s   "r"   r.   r@  ¦  s   € ÷ ñ ¨ð °ñ r0   c                	ó<   € V P                   P                  R 4       R # rä   rm  r7  s   &&r"   r8  ÚInputReader.opaque¦  ro  r0   )r­   r=  rB  ri  rä   r:  r   r0   r"   r<  r<  B  s‰   † ñØBF÷ð ðQð
 =AðQð *.÷Qñ:#ð &*ð#ð %)ð#ð &*ð#ð  $÷#ð #ðJ°T÷ õõõ÷ñ r0   r<  c               ó    € V ^8„  d   QhRRRR/# )r(   r  zint | torch.SymIntr+   r*   r   )r-   s   "r"   r.   r.   ¶  s   € ÷ ñ Ð&8ð ¸Sñ r0   c                ó¸   € \        V \        P                  4      '       d1   ^ RIHp V! 4       P                  V P                  P                  4      # \        V 4      # )ré   )ÚSymExprPrinter)	r}   r~   ÚSymIntÚ%torch.fx.experimental.symbolic_shapesr}  Údoprintrâ  re  r¸   )r  r}  s   & r"   Ú_serialize_storage_nbytesr�  ¶  s>   € Ü�&œ%Ÿ,™,×'Ò'ÝHáÓ×'Ñ'¨¯©×(8Ñ(8Ó9Ð9Ü�‹<Ðr0   c                  ó–   € ] tR tRtRR/R R lltR R ltRR	R
R	/R R lltR R ltR R ltR R lt	R R lt
R R ltR R ltRtR	# )ÚInputWriteri¾  Ústable_hashFc               ó$   € V ^8„  d   QhRRRRRR/# )r(   r?  r˜   r„  rQ   r+   r,   r   )r-   s   "r"   r.   ÚInputWriter.__annotate__¿  s!   € ÷ 
;ñ 
; ð 
;¸Tð 
;Èdñ 
;r0   c               	ó�   € . V n         \        P                  ! 4       V n        Wn        Ve   \        WR7      MR V n        / V n        R # )N)r„  )Ú_linesÚ	itertoolsr]  Ústorage_counterr?  r   rB  Úseen_storages)r@   r?  r„  s   &&$r"   rB   ÚInputWriter.__init__¿  sC   € Ø!#ˆŒä(ŸšÓ0ˆÔØ Œð Ò#ô ˜xÕAàð 	Œ
ð
 9;ˆÖr0   c               ó   € V ^8„  d   QhRR/# )r(   r+   rR   r   )r-   s   "r"   r.   r†  Ë  s   € ÷ ñ �yñ r0   c                	ór   € R .pVP                  R V P                   4       4       VP                  R4       V# )zdef load_args(reader):c              3  ó,   "  € T F
  pR V 2x € K  	  R# 5i)r  Nr   )r    Úls   & r"   r#   Ú$InputWriter.lines.<locals>.<genexpr>Ï  s   é € Ð1¡[ �4˜�s•£[ùs   ‚zload_args._version = 0)rË   rˆ  rª   )r@   Úrs   & r"   ÚlinesÚInputWriter.linesË  s8   € à$ð
ˆð 	
�‰Ñ1 T§[¢[Ó1Ô1ð 	
�‰Ð)Ô*Øˆr0   Údevice_hintNr  c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r(   rM  r   r•  r  r  r  r+   r*   r   )r-   s   "r"   r.   r†  Ú  s2   € ÷ $ñ $à'ð$ð ?ð	$ð
 'ð$ð 
ñ$r0   c          
     	óŒ  € \        V4      pV P                  P                  V4      pVe   V# R\        V P                  4       2pRp\        R 4      \        V4      8w  d   RV: 2pRpVP                  pVP                  R8X  d   Vf   \        R4      hTp\        R 4      V8w  d   RV: 2pVP                  4       p	\        V	4      p
R pV P                  e7   VP                  P                  R8w  d   V P                  P                  V4      pV P                  P                  V RV: RV
 V V R	24       WPP                  V&   V# )
NÚbufr   z, dtype_hint=Úmetaz:device_hint must be provided when storage device is 'meta'z	, device=z = reader.storage(rž   rŸ   )r   r‹  rÞ  rý   rŠ  rI  r   rŽ   r·   rH  r  r�  rB  Úwrite_storagerˆ  rª   )r@   rM  r•  r  ÚwsÚvÚmaybe_dtype_hintr  r   r  Únbytes_sourcer  s   &&$$        r"   r  ÚInputWriter.storageÚ  sX  € ô ˜OÓ,ˆØ×Ñ×"Ñ" 2Ó&ˆØŠ=ØˆHØ”$�t×+Ñ+Ó,Ð-Ð.ˆØÐÜ˜TÓ"Ô&7¸
Ó&CÔCØ!.¨z©nÐ=Ðð ˆØ ×'Ñ'ˆØ�;‰;˜&Ô ØÒ"Ü$ØPóð ð !ˆFÜ˜dÓ# vÔ-Ø& v¡jÐ1ˆLØ ×'Ñ'Ó)ˆÜ1°&Ó9ˆØˆØ�:‰:Ò! o×&<Ñ&<×&AÑ&AÀVÔ&KØŸ:™:×3Ñ3°OÓDˆLØ�‰×ÑØˆcÐ# LÑ#3°2°m°_À\ÀNÐScÐRdÐdeÐfô	
ð "#×Ñ˜2ÑØˆr0   c               ó$   € V ^8„  d   QhRRRRRR/# )r(   r\  r*   rc  rS  r+   r,   r   )r-   s   "r"   r.   r†     s!   € ÷ 
ñ 
˜3ð 
 <ð 
°Dñ 
r0   c                	ó¾  € ^ RI HpHp V P                  VP	                  4       VP
                  VP                  R7      p. pV! V! \        RVP                  R7      VP                  4       4      4      '       g2   VP                  \        \        VP                  4       4      4      4       \        R4      VP
                  8w  d    VP                  RVP
                  : 24       V! \        R4      VP                  4       8H  4      '       g$   VP                  RVP                  4       : 24       \         P"                  P%                  V4      pV'       d'   VP'                  R VP)                  4        4       4       \+        R4      VP,                  8w  d    VP                  RVP,                  : 24       \         P.                  P0                  P3                  V4      p\5        R4      V8w  d   VP                  R	V: 24       V P6                  P                  R
RP9                  V\        \        VP                  4      4      .VO4      ,           RV 2,           4       R# )ré   )Ústatically_known_trueÚsym_eq)r  r•  NrF  r›   zstorage_offset=c              3  ó6   "  € T F  w  rV R V: 2x € K  	  R# 5i)Ú=Nr   )r    Úkrœ  s   &  r"   r#   Ú%InputWriter.tensor.<locals>.<genexpr>  s   é € ÐIÑ1H©¨˜1˜#˜Q˜q™e�Ó1Hùs   ‚zrequires_grad=zis_leaf=zreader.tensor(rž   ú)  # )r  r¢  r£  r  rM  r¦   r   rý  r	  rÅ   rª   r*   ÚtuplerI  rV  rO  r~   ra  Úget_tensor_metadatarË   r  rX  r¨  r^  r_  r`  rW  rˆ  rG   )	r@   r\  rc  r¢  r£  r  r­   Útensor_metadatarP  s	   &&&      r"   r  ÚInputWriter.tensor   sÊ  € ßWà—,‘,Ø×ÑÓ¨A¯G©GÀÇÁð ó 
ˆð ˆá$ÙÔ% d°!·'±'Ô:¸A¿H¹H»JÓG÷
ò 
ð �K‰KœœE !§(¡(£*Ó-Ó.Ô/Ü˜TÓ" a§g¡gÔ-Ø�K‰K˜& §¡¡Ð,Ô-Ù$Ü& tÓ,°×0@Ñ0@Ó0BÑB÷
ò 
ð �K‰K˜/¨!×*:Ñ*:Ó*<Ñ)?Ð@ÔAÜŸ,™,×:Ñ:¸1Ó=ˆßØ�K‰KÑI°×1FÑ1FÔ1HÓIÔIÜ$ TÓ*¨a¯o©oÔ=Ø�K‰K˜.¨¯©Ñ(;Ð<Ô=Ü×#Ñ#×.Ñ.×;Ñ;¸AÓ>ˆÜ˜tÓ$¨Ô/Ø�K‰K˜( 7¡+Ð.Ô/Ø�‰×ÑØØ�i‰i˜¤#¤e¨A¯G©G£nÓ"5Ð=¸Ð=Ó>õ?à�d�Vˆnõö	
r0   c               ó$   € V ^8„  d   QhRRRRRR/# )r(   r\  r*   Úargr   r+   r,   r   )r-   s   "r"   r.   r†     s!   € ÷ &ñ & ð &¨#ð &°$ñ &r0   c                	ó6  € V P                   P                  R V: R\        V4       24       \        V\        \
        34      '       dÒ   V P                   P                  R4       \        V4       FŠ  w  r4V RV R2p\        V\        P                  4      '       d   V P                  WT4       K@  \        V\        \        P                  34      '       d   V P                  WT4       Ky  V P                  WT4       KŒ  	  V P                   P                  R4       R# R# )zreader.unsupported(z#)  # unsupported type for dumping: z"""Ú[Ú]N)rˆ  rª   rŽ   r}   r  r©  Ú	enumerater~   r	   r  r¢   r~  r!  r+  )r@   r\  r®  rK  ÚaÚname_is   &&&   r"   r+  ÚInputWriter.unsupported   sÖ   € à�‰×ÑØ! $¡Ð)LÌTÐRUËYÈKÐXô	
ô
 �cœD¤%˜=×)Ò)Ø�K‰K×Ñ˜uÔ%Ü! #ž‘�Ø ˜6  1 # Q˜�Ü˜a¤§¡×.Ò.Ø—K‘K Ö*Ü ¤C¬¯©Ð#6×7Ò7Ø—K‘K Ö*à×$Ñ$ VÖ/ñ 'ð �K‰K×Ñ˜uÖ%ñ *r0   c               ó    € V ^8„  d   QhRRRR/# r$  r   )r-   s   "r"   r.   r†  4  s   € ÷ 
ñ 
˜#ð 
 $ñ 
r0   c                	óL   € V P                   P                  R V: RV R24       R# )zreader.const(r¨  z!, filtered out during compilationN©rˆ  rª   r&  s   &&r"   r'  ÚInputWriter.const4  s'   € Ø�‰×ÑØ˜D™8 5¨¨Ð.OÐPö	
r0   c               ó$   € V ^8„  d   QhRRRRRR/# )r(   r\  r*   rg  r   r+   r,   r   )r-   s   "r"   r.   r†  :  s&   € ÷ Dñ D˜3ð D Sð D¨Tñ Dr0   c                	óD  € \        V\        P                  4      '       d^   \        VP                  P
                  4      pVP                  P                  pV P                  P                  R V: RV: RV 24       R# V P                  P                  R V: RV 24       R# )zreader.symint(z, expr=r¨  N)	r}   r~   r~  r*   râ  re  Úhintrˆ  rª   )r@   r\  rg  Úexpr_strr¼  s   &&&  r"   r!  ÚInputWriter.symint:  sw   € Ü�cœ5Ÿ<™<×(Ò(Ü˜3Ÿ8™8Ÿ=™=Ó)ˆHØ—8‘8—=‘=ˆDØ�K‰K×Ñ °©x°w¸x¹lÈ%ÐPTÈvÐVÖWà�K‰K×Ñ °©w°e¸D¸6ÐBÖCr0   c               ó$   € V ^8„  d   QhRRRRRR/# )r(   r\  r*   r®  ztorch._C.Generatorr+   r,   r   )r-   s   "r"   r.   r†  B  s"   € ÷ 
ñ 
˜cð 
Ð(:ð 
¸tñ 
r0   c                	ó’   € VP                   pV P                  P                  R VP                  : RVP                  : RV 24       R# )zreader.generator(rž   r¨  N)r   rˆ  rª   rŽ   Úindex)r@   r\  r®  r   s   &&& r"   r1  ÚInputWriter.generatorB  s<   € Ø—‘ˆØ�‰×ÑØ §¡™¨b°·±Ñ0@ÀÀdÀVÐLö	
r0   c               ó$   € V ^8„  d   QhRRRRRR/# )r(   r\  r*   r5  r+   r,   r   )r-   s   "r"   r.   r†  H  s&   € ÷ Nñ N˜3ð N°3ð N¸4ñ Nr0   c                	óJ   € V P                   P                  R V: RV 24       R# )zreader.opaque(r¨  Nr¸  )r@   r\  r5  s   &&&r"   r8  ÚInputWriter.opaqueH  s#   € Ø�‰×Ñ˜^Ð,=Ñ+@ÀÀdÀVÐLÖMr0   )rˆ  r?  r‹  rŠ  rB  )r`   ra   rb   rc   rB   r“  r  r  r+  r'  r!  r1  r8  rd   r   r0   r"   rƒ  rƒ  ¾  sV   † ð
;ÀE÷ 
;õð$ð BFð	$ð
 *.÷$õL
õ@&õ(
õDõ
÷Nñ Nr0   rƒ  c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r(   Úfuncz&Callable[[list[Tensor]], list[Tensor]]r   r*   Ú
sym_shapeszdict[str, int] | NoneÚdefault_sym_shaper  r+   zdict[str, Any]r   )r-   s   "r"   r.   r.   L  sA   € ÷ dñ dØ
0ðdàðdð &ðdð "ð	dð
 ñdr0   c           	     ó  aaaa€ ^ RI Hp VP                  4        UUu/ uF  w  rVWebK	  	  pppRP                  VP	                  4       4      p\
        P                  ! V 4      p	RV R2p
RV R2pRp ! R R	4      p/ pT;'       g    / oR
 VV3R lloR VV3R llpV P                  pVP                  ! 4        F«  w  ppVR8X  d   K  \        P                  ! VV4      pV'       dC   VP                  4       w  pp\        VP                  R4      4      pVV,          pV! VV4      VV&   \        P                  ! VV4      pV'       g   K‘  S! VP                  ^4      4      VV&   K­  	  R\
        P                  ! V 4      P                  9   dv   V! 4       pVVR&   \        P                   ! W©4       FO  pVP                  4       w  pppp\        VP                  R4      4      pVV,          p\#        VVV! VV4      4       KQ  	  V# u uppi )aÞ  
Takes in a function which has been printed with print_readable() and constructs kwargs to run it.

Handles Tensor inputs, Symints, and a graph module which might have tensor constants.

Consider a function `forward` defined as follows:

def forward(self, primals_1: "f32[1001, 6]", primals_2: "f32[s0]", primals_3: "Sym(s0)",):
    _tensor_constant0: "i64[4190]" = self._tensor_constant0
    # Further implementation

kwargs = aot_graph_input_parser(forward)
forward(**kwargs)
)Údtype_abbrsÚ|z(_tensor_constant\d+): \"(z0)\[\s*(.*?)\s*\]\" = self\.(_tensor_constant\d+)r�   z)\[\s*(.*?)\s*\]zSym\((s\d+)\)c                  ó   € ] tR tRtRtRtR# )Ú/aot_graph_input_parser.<locals>.TensorContainerip  z#Container for tensors as attributesr   N)r`   ra   rb   rc   Ú__doc__rd   r   r0   r"   ÚTensorContainerrÎ  p  s   † Ý-r0   rÐ  c               ó    € V ^8„  d   QhRRRR/# )r(   r!  r*   r+   r¢   r   )r-   s   "r"   r.   Ú,aot_graph_input_parser.<locals>.__annotate__x  s   € ÷ >ñ >˜Cð > Cñ >r0   c                ó~   <a € \         P                  ! S S9   ;'       g    SR JV 3R l4       SP                  S S4      # )Nc                 ó   <€ S  R 2# )z; not in symbolic_shapes and default sym shape not passed inr   )r!  s   €r"   rí  Ú=aot_graph_input_parser.<locals>.get_sym_int.<locals>.<lambda>{  s   ø€ �v�hÐYÑZr0   )r~   Ú_checkrÞ  )r!  rÉ  Úsym_shapes_dicts   f€€r"   Úget_sym_intÚ+aot_graph_input_parser.<locals>.get_sym_intx  s>   ù€ Ü�ŠØ�oÑ%×FÐFÐ):À$Ð)FÜZô	
ð ×"Ñ" 6Ð+<Ó=Ð=r0   c               ó$   € V ^8„  d   QhRRRRRR/# )r(   r	  rú  r¦   ræ  r+   r	   r   )r-   s   "r"   r.   rÒ    s#   € ÷ ñ Ð7ð Àð ÐPVñ r0   c                óÎ  <€ . p. p\        V 4       Fl  w  rEVP                  4       pR V9   d-   S! V4      pVP                  V4       VP                  V4       KH  V'       g   KR  VP                  \        V4      4       Kn  	  VP                  '       d   \
        P                  M\
        P                  pV! W!S
R7      pV F"  p	\
        P                  P                  W‰4       K$  	  V# )rY  )r¦   r   )
r²  Ústriprª   r¢   r  r~   ÚrandnÚzerosrŒ  Úmark_dynamic)r	  r¦   Úresolved_shapeÚdynamic_dimsrK  ÚdimrY  Úconstructorr¹  rÿ  r   rØ  s   &&        €€r"   Ú
gen_tensorÚ*aot_graph_input_parser.<locals>.gen_tensor  s¶   ø€ àˆØˆÜ Ö&‰FˆAØ—)‘)“+ˆCØ�cŒzÙ Ó$�Ø×%Ñ% aÔ(Ø×#Ñ# AÖ&ç‘3Ø"×)Ñ)¬#¨c«(Ö3ñ 'ð &+×%<×%<Ð%<”e—k’kÄ%Ç+Á+ˆÙ˜.¸fÔEˆÛˆAÜ�M‰M×&Ñ& sÖ.ñ àˆ
r0   r+   Ú,r@   )Útorch.utils._dtype_abbrsrË  r  rG   rˆ  ÚinspectÚ	getsourceÚ__annotations__ÚreÚsearchrÈ   r©  r8   ÚgroupÚ	signaturerþ   ÚfinditerÚsetattr)rÇ  r   rÈ  rÉ  rË  rf  r}  Ú	dtype_mapÚdtype_patternÚsourceÚtensor_assignment_regexÚtensor_regexÚsym_shape_regexrÐ  rÝ  rä  r   r  Ú
annotationÚmatchÚ	data_typeÚ	shape_strr	  r¦   Ú	containerÚ	attr_namer…   rØ  r×  s   &f&f                       @@r"   Úaot_graph_input_parserrý  L  sô  û€ õ* 5ð &1×%6Ñ%6Ô%8ô)Ù%8‘z�sˆŠ
Ñ%8ð ñ )ð Ÿ™ +×"4Ñ"4Ó"6Ó7€Mô ×Ò˜tÓ$€Fð "<¸M¸?ÐJzÐ{ÐØ˜�Ð&6Ð7€LØ&€O÷.ñ .ð  €Fà&0×&6Ð&6°B€O÷>ñ >÷ñ ð* ×&Ñ&€KØ(×.Ò.Ö0Ñˆˆzà�HÔÙä—	’	˜,¨
Ó3ˆßØ#(§<¡<£>Ñ ˆI�yÜ˜)Ÿ/™/¨#Ó.Ó/ˆEØ˜iÕ(ˆEá& u¨eÓ4ˆF�5‰Mä—	’	˜/¨:Ó6ˆß‰5Ù'¨¯©°A«Ó7ˆF�5‹Mñ 1ð" ”×"Ò" 4Ó(×3Ñ3Ô3Ù#Ó%ˆ	Ø"ˆˆv‰Ü—[’[Ð!8ÖAˆEØ16·±³Ñ.ˆI�y )¨QÜ˜)Ÿ/™/¨#Ó.Ó/ˆEØ˜iÕ(ˆEä�I˜y©*°U¸EÓ*BÖCñ Bð €Mùó[)s   žHc               ó    € V ^8„  d   QhRRRR/# )r(   r)   r*   r+   zCallable[[T], T]r   )r-   s   "r"   r.   r.   ³  s   € ÷ #ñ #˜cð #Ð&6ñ #r0   c                óþ   a a€ \         P                  ! 4       o\        P                  P	                  \        P                  P                  S 4      4      o R V3R llpR V V3R llp\        P                  ! V4       V# )z†
Decorator to cProfile a given function and save the result to disk on process exit.

Args:
    filename: filename to save profile to
c               ó    € V ^8„  d   QhRRRR/# )r(   Úfnr   r+   r   )r-   s   "r"   r.   Ú%profile_to_file.<locals>.__annotate__½  s   € ÷ 	ñ 	�cð 	˜cñ 	r0   c                óP   <a € \         P                  ! S 4      R  V V3R ll4       pV# )c               ó$   € V ^8„  d   QhRRRRRR/# )r(   r­   r   rÝ  r+   r   )r-   s   "r"   r.   Ú8profile_to_file.<locals>.decorator.<locals>.__annotate__¿  s!   € ÷ 	ñ 	˜3ð 	¨#ð 	°#ñ 	r0   c                 ó€   <€ SP                  4         S! V / VB SP                  4        #   SP                  4        i ; irä   )ÚenableÚdisable)r­   rÝ  r  Úprofs   *,€€r"   ÚwrapperÚ3profile_to_file.<locals>.decorator.<locals>.wrapper¾  s1   ø€ à�K‰KŒMðÙ˜4Ð* 6Ñ*à—‘•ø�—‘•ús   “+ «=)Ú	functoolsÚwraps)r  r
  r	  s   f €r"   Ú	decoratorÚ"profile_to_file.<locals>.decorator½  s*   ù€ Ü	�Š˜Ó	÷	ð 	ó 
ð	ð ˆr0   c               ó   € V ^8„  d   QhRR/# r  r   )r-   s   "r"   r.   r  È  s   € ÷ 
ñ 
�Tñ 
r0   c            	     óž   <€ SP                  S 4       \        P                  P                  \        P
                  ! R S  RS  R24      4       R# )z!                Wrote profile to z+, view with:

                    snakeviz z

                N)Ú
dump_statsÚsysÚstderrrX   rI   rJ   )r)   r	  s   €€r"   Úsave_itÚ profile_to_file.<locals>.save_itÈ  sK   ø€ Ø�‰˜Ô!Ü�
‰
×ÑÜ�OŠOð"Ø"* ð ,à&˜Zð (ðóö		
r0   )ÚcProfileÚProfiler6   r7   r9   Ú
expanduserÚatexitÚregister)r)   r  r  r	  s   f  @r"   Úprofile_to_filer  ³  s\   ù€ ô ×ÒÓ€DÜ�w‰w�‰œrŸw™w×1Ñ1°(Ó;Ó<€H÷	ð 	÷
ñ 
ô ‡O‚O�GÔØÐr0   )z1//caffe2/torch/fb/sparsenn:sparsenn_operators_gpuz-//caffe2/torch/fb/sparsenn:sparsenn_operatorsz///deeplearning/fbgemm/fbgemm_gpu:sparse_ops_cpuz+//deeplearning/fbgemm/fbgemm_gpu:sparse_ops)Úbuck2Úrunz@mode/dev-nosan)FF)F)rI  NN)prÏ  Ú
__future__r   r  r¶  r  r  rk   rè  r‰  Úloggingr6   rë  rP  r  ri   rI   Úcollectionsr   Ú	importlibr   Útypingr   r   r   r   r~   Útorch._prims_commonÚ_prims_commonrÄ  Útorch._subclasses.meta_utilsr	   Útorch._dynamo.testingr
   Útorch._inductor.cpp_builderr   r   Ú torch.multiprocessing.reductionsr   Útorch.utils._config_moduler   Útorch.utils._content_storer   r   r   r   r   r   r   Úcollections.abcr   r   Ú	torch.hubr   Útorch.storager   Ú	getLoggerr`   rZ   r   Úinductor_configÚ	is_fbcoderš  Úlibfb.py.build_infoÚlibfbrH   Úextra_importsrK   ÚpyÚ
build_infoÚ	BuildInfoÚget_build_ruler<   rG   Ú_extra_deps_listrY   r&   ro   r  r·   rq   ru   Úcacher^  r€  r“  r–  rŸ  rÇ  r¡  r«  r»  rÐ  rä  rð  rÆ  r÷  rý  r  Úfloat32rI  r   rH  rV  rX  rW  r  r<  r�  rƒ  rý  r  r   r0   r"   Ú<module>r<     s“  ðñõ$ #ã Û Û Û Û Û Û Û Û 	Û 	Û Û 
Û Û Ý Ý #ß 4Ó 4ã Ý #Û #Ý Ý .Ý @Ý .Ý ;Ý 3ß Må ß 9Ñ 9÷ ß2åÝ,ð ×Ò˜Ó!€áˆCƒL€ñ  Ð 8Ó9€Ø×$Ñ$Ó&€çÛð €
Ø€Ø€
ßò€Jð —‘×$Ñ$×.Ñ.×=Ñ=Ó?×GÑGÈ	ÐSWÓX€Jð
 —y‘yÑ C¹
Ó CÓCÐà
Ð 0Ð1ð 2ð 	ð ò 6€÷4ñ 4õnð Ð ô	˜~ô 	÷eWñ eWðP	 ‡�ôó ðð6	°e÷ 	ð@°E÷ õD@õVô	�Iô 	õ
÷0ñ@7ð ð7ð  ÷7ð 7õtõ0õ(1ñð ðð  ÷ð õRVõ/ñ " %§-¡-Ó0Ð Ù" 5§<¢<°Ó#6Ó7Ð Ù*¨1Ó-Ð Ù)¨%Ó0Ð Ù# EÓ*Ð ÷ñ ÷Feñ eõh÷KNñ KN÷\d÷N#r0   