+
    –°³jD ã                   ó´  € R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHtHt ^ RI	H
t
HtHt ^ RIHtHtHtHtHt ^ RIt^ RIHu Ht ^ RIHt ^ RIHtHtHtHtHt ^ RI H!t!H"t" ^ RI#H$t$H%t%H&t&H't' ^ R	I(H)t)H*t* ^ R
I+H,t,H-t-H.t.H/t/ ^ RI0H1t1H2t2 ^ RI3H4t4 ^ RI5H6t6 ^ RI7H8t8 ^ RI9H:t: ^ RI;H<t< ^ RI=H>t>H?t?H@t@HAtAHBtBHCtC ^ RIDHEtEHFtF ^ RIGHHtHHItI ^ RIJHKtKHLtL ^ RIMHNtN ^ RIOHPtP ]'       d   ^ RIQHRtRHStS ^ RITHUtU RtV]1! ]WR4      tX]1! ]WR4      tY]R;,          tZR R lt[R R lt\R  R! lt] ! R" R#]4      t^R$ R% lt_ ! R& R'4      t` ! R( R)4      ta ! R* R+4      tb]a! 4       tc. R<Otd]N! ]]]PÊ                  ].4      tf]PÎ                  ! 4       shR, R- lti ! R. R/4      tjR0skR0slR0smR0sn^ so]Pà                  R=R1 R2 ll4       tq]Pà                  R3 R4 l4       trR5 R6 ltsR7 R8 lttR9 R: ltuR# )>aò  
Provides functionality for compiling PyTorch's autograd (automatic differentiation) system.

This module implements compiled autograd, which traces and optimizes backward pass
computations at runtime. The key components are:

- AutogradCompilerInstance: Traces and compiles autograd graphs using FX
- Context managers (_enable/_disable): Control when compiled autograd is active
- Utility functions: Support graph manipulation, tensor operations, and hooks

Compiled autograd can significantly improve backward pass performance by removing
Python overhead and enabling additional optimizations. It works by capturing
backward computations into an FX graph that can be compiled and optimized,
while maintaining the same semantics as eager mode autograd.
N)ÚCounterÚdefaultdict)ÚCallableÚ	GeneratorÚSequence)ÚAnyÚcastÚLiteralÚProtocolÚTYPE_CHECKING)Úenable_python_dispatcher)Úcall_accumulate_gradÚcall_backwardÚ	call_hookÚFakeCompiledAutogradEngineÚunwrap_maybe_dynamic_int©ÚGetItemSourceÚLocalSource)ÚcountersÚget_chromium_event_loggerÚlazy_format_graph_codeÚset_locals_to_steal)ÚAutogradLazyBackwardCompileInfoÚ%CachedAutogradLazyBackwardCompileInfo)Úcompile_contextÚCompileContextÚ	CompileIdÚSource)ÚgetArtifactLoggerÚtrace_structured©Úclone_preserve_strides)ÚFakeTensorMode)Ú
FakeTensor)ÚGraphModule)ÚBackwardState)Údisable_autocast_cacheÚdisable_proxy_modes_tracingÚfetch_object_proxyÚProxyTorchDispatchModeÚPythonKeyTracerÚtrack_tensor_tree)Ú
DimDynamicÚShapeEnv)Úpreserve_node_metaÚset_stack_trace)ÚFloatLikeTypeÚIntLikeType)Ú
OrderedSet)ÚCapturedTraceback)ÚSubclassMetaÚViewAndMutationMeta)ÚProxya»  You can turn off compiled autograd by either:
1. Moving the unsupported autograd call outside of the torch.compile'd region.
2. Wrapping the unsupported autograd call in the torch._dynamo.compiled_autograd._disable() context manager.
3. Setting torch._dynamo.config.compiled_autograd=False for the torch.compile call containing the unsupported autograd call.
4. Setting torch._dynamo.config.compiled_autograd=False at the start of the program.Úcompiled_autogradÚcompiled_autograd_verbosec                ó$   € V ^8„  d   QhR\         /# ©é   Úreturn©Úbool)Úformats   "Ú`/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_dynamo/compiled_autograd.pyÚ__annotate__rB   _   s   € ÷ ñ ¬$ñ ó    c                  óh   € \         P                  P                  P                  P	                  R 4      # )r9   )ÚtorchÚ_loggingÚ	_internalÚ	log_stateÚis_artifact_enabled© rC   rA   Ú snapshot_verbose_logging_enabledrK   _   s(   € Ü�>‰>×#Ñ#×-Ñ-×AÑAØ#óð rC   c                ó$   € V ^8„  d   QhR\         /# r;   r>   )r@   s   "rA   rB   rB   e   s   € ÷ 4ñ 4¤Dñ 4rC   c                  ó^   € \         P                  P                  P                  P                  # ©N)rE   Ú	_inductorÚconfigÚtritonÚ
cudagraphsrJ   rC   rA   Úsnapshot_cudagraph_enabledrS   e   s   € Ü�?‰?×!Ñ!×(Ñ(×3Ñ3Ð3rC   c                ót   € V ^8„  d   QhR\         P                  R,          R\         P                  R,          /# )r<   ÚxNr=   ©rE   ÚTensor)r@   s   "rA   rB   rB   i   s,   € ÷ ñ ”5—<‘< $Õ&ð ¬5¯<©<¸$Õ+>ñ rC   c                 ó$   € V e   \        V 4      # V # rN   r!   )rU   s   &rA   Úmaybe_clonerY   i   s   € Ø‚}Ü% aÓ(Ð(Ø€HrC   c                   ó0   a € ] tR t^ot o RtV 3R ltRtV tR# )Ú_AOTCompiledFunctionzÖStructural type for the AOTAutograd autograd.Function subclass that
compiled autograd retraces. The concrete class is generated locally inside
AOTAutograd, so we describe only the private attributes consumed here.
c                ó¤   <€ V ^8„  d   Qh/ S[ S[,          R,          ;R&   R;R&   R;R&   S[;R&   S[RS[3,          ;R	&   S[RS[3,          ;R
&   # )r<   NÚ_lazy_backward_infor6   ÚmetadatazSubclassMeta | NoneÚmaybe_subclass_metadataÚ_aot_id.Ú_bw_prologue_fnÚ_bw_epilogue_fn)r   r   Úintr   r   )r@   Ú__classdict__s   "€rA   rB   Ú!_AOTCompiledFunction.__annotate__o   sr   ø‡ ‚ ñ 	(Ñ*OÕOÐRVÕVññ ð $Ñ#ñ ð 3Ñ2ñ ñ �Lñ ñ ˜c¡3˜hÕ'Ñ'ñ ñ ˜c¡3˜hÕ'Ñ'ò rC   rJ   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©rd   s   @rA   r[   r[   o   s   ø‡ € ñ÷ ƒ rC   r[   c                ó0   € V ^8„  d   QhR\         R\        /# )r<   ÚCompiledFunctionr=   )r[   r%   )r@   s   "rA   rB   rB      s   € ÷ 
ñ 
Ô(<ð 
Äñ 
rC   c                 ó²  € \        V P                  \        4      '       d%   \        \        V P                  P
                  4      # \        V P                  \        4      '       dV   \        P                  P                  P                  4       ;_uu_ 4        V P                  P                  4       uuR R R 4       # \        R4      h  + '       g   i     R # ; i)NzEUnexpected Lazy Backward Compilation Info Type. Please file an issue.)Ú
isinstancer]   r   r   r%   Ú	bw_moduler   rE   Ú_subclassesÚfake_tensorÚunset_fake_temporarilyÚbw_module_fnÚAssertionError)rp   s   &rA   Úextract_bw_modulery      s§   € ÜØ×,Ñ,Ô.M÷ò ô ”KÐ!1×!EÑ!E×!OÑ!OÓPÐPÜ	Ø×,Ñ,Ô.S÷
ò 
ô ×Ñ×*Ñ*×AÑA×CÕCØ#×7Ñ7×DÑDÓF÷ DÒCô ØSó
ð 	
÷ D×CÐCús   ÂCÃC	c                   óh   a € ] tR t^št o V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltR	tV t	R
# )Ú
NaNCheckerc                ó$   <€ V ^8„  d   QhRS[ RR/# )r<   Úaccumulate_gradr=   Nr>   )r@   rd   s   "€rA   rB   ÚNaNChecker.__annotate__›   s   ø€ ÷ *ñ *©ð *°ñ *rC   c                ó<   € Wn         . V n        / V n        . V n        R # rN   )r}   Úparams_indicesÚparams_to_checkÚoutput_names)Úselfr}   s   &&rA   Ú__init__ÚNaNChecker.__init__›   s    € Ø.ÔØ)+ˆÔØ8:ˆÔØ')ˆÖrC   c                óL   <€ V ^8„  d   QhRS[ P                  P                  RR/# )r<   Úgraphr=   N)rE   ÚfxÚGraph)r@   rd   s   "€rA   rB   r~   ¡   s'   ø€ ÷ "Añ "A¡U§X¡X§^¡^ð "A¸ñ "ArC   c                óÖ  € \        \        VP                  4      4      pVP                  R \        R7      pVP                  RR7      ^ ,          P
                  ^ ,          pV P                  \        V4      8w  d&   \        RV P                   R\        V4       R24      hV P                  V'       * 8w  d!   \        RV P                   RV'       *  24      hV Fé  pVP
                  ^ ,          pVP                  \        P                  Jd   \        RVP                   24      hVP
                  ^ ,          VJd   \        R	4      h\        VP
                  ^,          \        4      '       g)   \        R
\        VP
                  ^,          4       24      hV P                  P!                  VP
                  ^,          4       Kë  	  V Uu. uF  qUP"                  NK  	  upV n        R# u upi )Úcall_function©ÚopÚtargetÚoutput©r�   z#accumulate_grad mismatch: expected z, got z acc_grad_nodesz5accumulate_grad mismatch with output_nodes: expected z7Expected param_node target to be operator.getitem, got z-Expected param_node.args[0] to be inputs_nodez+Expected param_node.args[1] to be int, got N)ÚnextÚiterÚnodesÚ
find_nodesr   Úargsr}   r?   rx   rŽ   ÚoperatorÚgetitemrr   rc   Útyper€   ÚappendÚnamer‚   )rƒ   r‡   Úinputs_nodeÚacc_grad_nodesÚoutput_nodesÚnodeÚ
param_nodes   &&     rA   Úprep_with_graphÚNaNChecker.prep_with_graph¡   sÄ  € Üœ4 §¡Ó,Ó-ˆØ×)Ñ)ØÔ';ð *ó 
ˆð ×'Ñ'¨8Ð'Ó4°QÕ7×<Ñ<¸QÕ?ˆØ×Ñ¤4¨Ó#7Ô7Ü Ø5°d×6JÑ6JÐ5Kð LÜ˜NÓ+Ð,¨Oð=óð ð ×Ñ¨Ô$4Ô5Ü ØGÈ×H\ÑH\ÐG]ð ^Ø'Ô'Ð(ð*óð ó
 #ˆDØŸ™ 1�ˆJð × Ñ ¬×(8Ñ(8Ó8Ü$ØMÈj×N_ÑN_ÐM`Ðaóð ð �‰˜qÕ!¨Ó4Ü$Ð%TÓUÐUÜ˜jŸo™o¨aÕ0´#×6Ò6Ü$ØAÄ$ÀzÇÁÐWXÕGYÓBZÐA[Ð\óð ð ×Ñ×&Ñ& z§¡°qÕ'9Ö:ñ #ñ" 4@Ó@±<¨4ŸYœY±<Ñ@ˆÖùÒ@s   ÇG&c                óL   <€ V ^8„  d   QhRS[ S[P                  R3,          RR/# )r<   Úinputs.r=   N©ÚtuplerE   rW   )r@   rd   s   "€rA   rB   r~   Å   s-   ø€ ÷ Añ A¡u©U¯\©\¸3Ð->Õ'?ð AÀDñ ArC   c                ó0  € V P                   '       g   R # V P                   Fq  pW,          P                  pVe@   \        P                  ! V4      P                  4       '       d   \        RV R\         24      hW,          V P                  RV R2&   Ks  	  R # )Nz9Compiled autograd running under anomaly mode with inputs[z6] already having NaN gradient. This is not supported. zinputs[Ú])	r}   r€   ÚgradrE   ÚisnanÚanyrx   ÚTURN_OFF_MSGr�   )rƒ   r£   Úidxr¨   s   &&  rA   Úprep_with_inputsÚNaNChecker.prep_with_inputsÅ   s“   € Ø×#×#Ð#áð ×&Ô&ˆCØ•;×#Ñ#ˆDØÒÜ—;’;˜tÓ$×(Ñ(×*Ò*Ü(ØSÐTWÐSXð YGÜGSÀnðVóð ð
 6<µ[ˆD× Ñ  7¨3¨%¨qÐ!1Ó2ó 'rC   c                óL   <€ V ^8„  d   QhRS[ S[P                  R3,          RR/# )r<   Úout.r=   Nr¤   )r@   rd   s   "€rA   rB   r~   Ö   s)   ø€ ÷ ñ ™™uŸ|™|¨SÐ0Õ1ð °dñ rC   c                ó¾  € V P                   '       dÁ   V'       d   \        R 4      h. pV P                  P                  4        Fe  w  r4VP                  f   \        R4      h\
        P                  ! VP                  4      P                  4       '       g   KT  VP                  V4       Kg  	  V'       d   \        RRP                  V4       R24      hR# . p\        V4       FS  w  rg\
        P                  ! V4      P                  4       '       g   K1  VP                  V P                  V,          4       KU  	  V'       d   \        RRP                  V4       R24      hR# )z2Expected empty output for accumulate_grad backwardNz4Expected param.grad to be non-None for backward modez9Compiled Autograd returned NaN gradients for parameters: Ú,Ú.z;Compiled Autograd returned NaN gradients for output nodes: )r}   rx   r�   Úitemsr¨   rE   r©   rª   r™   ÚRuntimeErrorÚjoinÚ	enumerater‚   )rƒ   r°   Ú
nan_paramsÚ
inputs_strÚparamÚ	nan_gradsÚir¨   s   &&      rA   ÚcheckÚNaNChecker.checkÖ   s7  € Ø××ÐçÜ$ØHóð ð %'ˆJØ%)×%9Ñ%9×%?Ñ%?Ö%AÑ!�
Ø—:‘:Ò%Ü(ØNóð ô —;’;˜uŸz™zÓ*×.Ñ.×0Ô0Ø×%Ñ% jÖ1ñ &B÷ Ü"ØOÐPS×PXÑPXÐYcÓPdÐOeÐefÐgóð ñ ð $&ˆIÜ$ Sž>‘�Ü—;’;˜tÓ$×(Ñ(×*Ô*Ø×$Ñ$ T×%6Ñ%6°qÕ%9Ö:ñ *÷ Ü"ØQÐRU×RZÑRZÐ[dÓReÐQfÐfgÐhóð ñ rC   )r}   r‚   r€   r�   N)
rf   rg   rh   ri   r„   r    r­   r½   rl   rm   rn   s   @rA   r{   r{   š   s2   ø‡ € ÷*ð *÷"Að "A÷HAð A÷"ö rC   r{   c                   óV   a € ] tR t^üt o V 3R lR ltV 3R lR ltV 3R lR ltRtV tR# )	ÚOpNamespacec                ó   <€ V ^8„  d   QhRR/# ©r<   r=   NrJ   )r@   rd   s   "€rA   rB   ÚOpNamespace.__annotate__ý   s   ø€ ÷ Dñ D˜$ñ DrC   c                ó$   € \        4       V n        R # rN   )r   Úcustom_function_name_counter©rƒ   s   &rA   r„   ÚOpNamespace.__init__ý   s   € Ü:A»)ˆÖ)rC   c          
      óL   <€ V ^8„  d   QhRS[ RS[RS[3,          RS[RS[RS[ /# )r<   rš   Úfn.Úis_custom_functionÚis_traceabler=   ©Ústrr   r   r?   )r@   rd   s   "€rA   rB   rÃ      sF   ø€ ÷ ñ áðñ �S™#�XÕðñ !ð	ñ
 ðñ 
ñrC   c                ó¼  a€ V'       dB   R V,           pV P                   V,          pV P                   V;;,          ^,          uu&   V V 2p\        W4      '       d   \        RV R24      h\        WV4      oV'       d,   \	        W\
        P                  P                  S4      4       V# \
        P                  P                  R V3R ll4       p\	        WV4       V# )ÚCppNodezOp with name 'z' already existsc                ó<   € V ^8„  d   QhR\         R\         R\         /# ©r<   r•   Úkwargsr=   ©r   )r@   s   "rA   rB   Ú%OpNamespace.add.<locals>.__annotate__  s!   € ÷ /ñ /´cð /ÄSð /ÌSñ /rC   c                  ó   <€ S! V / VB # rN   rJ   )r•   rÒ   Úresults   *,€rA   Úrun_non_traceable_cpp_in_eagerÚ7OpNamespace.add.<locals>.run_non_traceable_cpp_in_eager  s   ø€ á˜tÐ. vÑ.Ð.rC   )	rÅ   Úhasattrrx   ÚOpÚsetattrrE   Ú_dynamoÚallow_in_graphÚdisable)rƒ   rš   rÉ   rÊ   rË   Úcountr×   rÖ   s   &&&&&  @rA   ÚaddÚOpNamespace.add   sÆ   ø€ ÷ Ø˜tÕ#ˆDØ×5Ñ5°dÕ;ˆEØ×-Ñ-¨d×3°qÕ8Ó3Ø�V˜E˜7Ð#ˆDä�4×ÒÜ  >°$°Ð7GÐ!HÓIÐIÜ�DÐ0Ó1ˆßä�D¤§¡× <Ñ <¸VÓ DÔEð ˆô �]‰]×"Ñ"÷/ó #ð/ô �DÐ >Ô?ØˆrC   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r<   rš   r=   )rÍ   r   )r@   rd   s   "€rA   rB   rÃ     s   ø€ ÷ #ñ #™ð #¡ñ #rC   c                ó   € \        W4      # rN   )Úgetattr)rƒ   rš   s   &&rA   ÚgetÚOpNamespace.get  s   € Ü�tÓ"Ð"rC   )rÅ   N)	rf   rg   rh   ri   r„   rà   rå   rl   rm   rn   s   @rA   rÀ   rÀ   ü   s%   ø‡ € ÷Dð D÷ð ÷:#ö #rC   rÀ   c                   óV   a € ] tR tRt o V 3R lR ltV 3R lR ltV 3R lR ltRtV tR	# )
rÚ   i!  c                óD   <€ V ^8„  d   QhRS[ RS[RS[3,          RS[RR/# )r<   rš   rÉ   .rÊ   r=   NrÌ   )r@   rd   s   "€rA   rB   ÚOp.__annotate__"  s<   ø€ ÷ @ñ @Ùð@Ù% c©3 hÕ/ð@ÙEIð@à	ñ@rC   c                ó8   € W n         W0n        Wn        R V n        R# )z#torch._dynamo.compiled_autograd.opsN)rÉ   rÊ   rf   rg   )rƒ   rš   rÉ   rÊ   s   &&&&rA   r„   ÚOp.__init__"  s   € ð ŒØ"4ÔØŒØ?ˆŽrC   c                ó,   <€ V ^8„  d   QhRS[ RS[ RS[ /# rÑ   rÓ   )r@   rd   s   "€rA   rB   ré   *  s"   ø€ ÷ (ñ (™cð (©Sð (±Sñ (rC   c                ó&   € V P                   ! V/ VB # rN   )rÉ   )rƒ   r•   rÒ   s   &*,rA   Ú__call__ÚOp.__call__*  s   € Ø�wŠw˜Ð' Ñ'Ð'rC   c                ó    <€ V ^8„  d   QhRS[ /# r;   ©rÍ   )r@   rd   s   "€rA   rB   ré   -  s   ø€ ÷ 5ñ 5™#ñ 5rC   c                óJ   € V P                   R ,           V P                  ,           # )r³   )rg   rf   rÆ   s   &rA   Ú__repr__ÚOp.__repr__-  s   € Ø�‰ Õ$ t§}¡}Õ4Ð4rC   )rg   rf   rÉ   rÊ   N)	rf   rg   rh   ri   r„   rî   ró   rl   rm   rn   s   @rA   rÚ   rÚ   !  s%   ø‡ € ÷@ð @÷(ð (÷5ö 5rC   rÚ   c                ó0   € V ^8„  d   QhR\         R\        /# )r<   Úcompiled_autograd_idr=   )rc   r   )r@   s   "rA   rB   rB   A  s   € ÷ 	ñ 	¬sð 	´sñ 	rC   c           
      óB   € \        \        \        V R R R7      4      4      # )N)rö   Úframe_idÚframe_compile_id)r   r   r   )rö   s   &rA   Úmake_compile_contextrú   A  s(   € ÜÜÜØ%9ØØ!%ôó	
óð rC   c                   óL  a € ] tR tRt o V 3R lR ltV 3R lR lt]V 3R lR l4       tV 3R lR	 ltV 3R
 lR lt	V 3R lR lt
V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R  lR! ltRZV 3R# lR$ lltV 3R% lR& ltV 3R' lR( ltV 3R) lR* ltV 3R+ lR, ltV 3R- lR. ltV 3R/ lR0 ltV 3R1 lR2 ltV 3R3 lR4 ltV 3R5 lR6 ltV 3R7 lR8 ltV 3R9 l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#]V 3RA lRB l4       t$V 3RC lRD lt%V 3RE lRF lt&V 3RG lRH lt'V 3RI lRJ lt(V 3RK lRL lt)V 3RM lRN lt*V 3RO lRP lt+V 3RQ lRR lt,RZV 3RS lRT llt-V 3RU lRV lt.V 3RW lRX lt/RYt0V t1R"# )[ÚAutogradCompilerInstanceiM  c                ó8   <€ V ^8„  d   QhRS[ RS[3,          RR/# )r<   Úcompiler_fn.r=   N)r   r   )r@   rd   s   "€rA   rB   Ú%AutogradCompilerInstance.__annotate__N  s$   ø€ ÷ .ñ .¡H¨S±#¨XÕ$6ð .¸4ñ .rC   c                ó6  € Wn         \        P                  ! 4       V n        V P                  P                  V n        \        4       V n        \        R R V P                  R7      V n        \        4       V n
        \        V P                  R4      V n        RV n        R# )T)Úallow_fallback_kernelsÚallow_non_fake_inputsÚ	shape_envÚsymbolicN)rþ   Ú
contextlibÚ	ExitStackÚstackÚcloser.   r  r#   Úfake_tensor_moder+   Ú	fx_tracerr*   Ú
proxy_modeÚhooks_proxy)rƒ   rþ   s   &&rA   r„   Ú!AutogradCompilerInstance.__init__N  sr   € Ø&ÔÜ×)Ò)Ó+ˆŒ
Ø—Z‘Z×%Ñ%ˆŒ
Ü!›ˆŒÜ .Ø#'Ø"&Ø—n‘nô!
ˆÔô
 )Ó*ˆŒÜ0°·±ÀÓLˆŒØ)-ˆÖrC   c                óN   <€ V ^8„  d   QhRS[ P                  RS[R,          RS[/# )r<   rU   ÚsourceNr=   )rE   rW   r   r$   )r@   rd   s   "€rA   rB   rÿ   \  s/   ø€ ÷ Cñ C™5Ÿ<™<ð C±¸$µð CÁ:ñ CrC   c                ó¨   € \        V\        P                  4      '       g   \        R \	        V4       24      hV P
                  P                  WR7      # )úExpected torch.Tensor, got )r  )rr   rE   rW   rx   r˜   r	  Úfrom_tensor)rƒ   rU   r  s   &&&rA   Ú	wrap_fakeÚ"AutogradCompilerInstance.wrap_fake\  sD   € Ü˜!œUŸ\™\×*Ò*Ü Ð#>¼tÀA»w¸iÐ!HÓIÐIØ×$Ñ$×0Ñ0°Ð0ÓBÐBrC   c                ó,   <€ V ^8„  d   QhRS[ RS[RS[/# )r<   rš   r¬   r=   )rÍ   r   r   )r@   rd   s   "€rA   rB   rÿ   b  s"   ø€ ÷ 5ñ 5‘Sð 5™sð 5¡}ñ 5rC   c                ó,   € \        \        V 4      V4      # rN   r   )rš   r¬   s   &&rA   r  ÚAutogradCompilerInstance.sourcea  s   € äœ[¨Ó.°Ó4Ð4rC   c                ó0  <€ V ^8„  d   QhRS[ S[P                  ,          RS[ S[,          RS[ S[S[,          ,          RS[ S[ S[S[S[3,          ,          ,          RS[RS[RS[S[S[ S[P                  ,          S[ S[,          S[ S[,          3,          /# )r<   r£   ÚsizesÚscalarsÚoriginsr}   Ú
check_nansr=   )	ÚlistrE   rW   rc   r2   r1   r¥   rÍ   r?   )r@   rd   s   "€rA   rB   rÿ   e  s¤   ø€ ÷ y
ñ y
á‘U—\‘\Õ"ðy
ñ ‘C�yðy
ñ ‘k¡MÕ1Õ2ð	y
ñ
 ‘d™5¡¡c �?Õ+Õ,ðy
ñ ðy
ñ ðy
ñ 
‰s‘D™Ÿ™Õ&©©[Õ(9¹4ÁÕ;NÐNÕ	Oñy
rC   c                ó–  a € \         R ,          R;;,          ^,          uu&   \        \        4      S n        \	        \
        4      S n        \        S P                  4      S n        S P                  P                  4        V'       d   \        V4      MRS n        \        P                  ! 4       S n        \        4       P!                  R S P                  RS P                  /RR7       \"        P$                  P'                  4       S P(                  n        \"        P,                  P/                  \0        R7      S P(                  n        / S P(                  n        / S n        V 3R l\8         4       w  pS n        S n        S n        S n         S PB                  PE                  \G        4       4       Vw  r‰p
S PB                  PE                  \I        4       4       V^ ,          p \K        V4       F)  w  rËS PM                  VS PO                  RV4      4      W&   K+  	  S PY                  YT4       \K        T4       UUu. uF@  w  rÎS PZ                  P]                  TS PO                  RT4      \^        P`                  4      NKB  	  ppp\c        \e        T4      4       Uu. uF  pS P:                  T,          NK  	  pp\K        T4       Fk  w  ppS P(                  Pg                  R\h        TT,          3/ 4      TT&   \k        T\
        4      '       d   KK  TT,          S P6                  TPl                  &   Km  	  S PY                  TTT	4      p\K        T4       FÑ  w  rÎS PO                  RT4      p\k        T\
        4      '       d0   S PZ                  P]                  TT\^        P`                  4      Y<&   K\  \k        T\n        4      '       dM   S PZ                  Pq                  S PZ                  Ps                  TT\^        P`                  R7      TTR7      Y<&   K¾  \u        R\U        T4      4      h	  S PY                  TS P<                  T
4       \K        T4       F0  w  ppS P<                  T,          S P6                  TPl                  &   K2  	  S PB                  PE                  S Pv                  4       S PB                  PE                  S Px                  4       S PB                  PE                  \{        4       4       S Pv                  PZ                  f   \u        R4      hS Pv                  PZ                  pS PB                  PE                  \"        P,                  P|                  P~                  P�                  T4      4       \ƒ        \„        P†                  ! 4       4      TTT3#   \P         d%   p\S        R	\U        T4       R
\V         24      ThRp?ii ; iu uppi u upi )r8   ÚcapturesNÚgraph_idT©Úlog_pt2_compile_event)Ú
tracer_clsc              3   ó`   <"  € T F#  pSP                   P                  R VR/ 4      x € K%  	  R# 5i)ÚplaceholderNrJ   )r
  Úcreate_proxy)Ú.0rš   rƒ   s   & €rA   Ú	<genexpr>Ú9AutogradCompilerInstance.begin_capture.<locals>.<genexpr>…  s0   øé € ð 
á+�ð �N‰N×'Ñ'¨°t¸RÀ×DÐDÛ+ùs   ƒ+.r£   zFound tensor of type z,, which is not supported by FakeTensorMode. r  r‹   r  )r  Údynamic_dim)Úhintr  zUnexpected scalar type: z+fake_tensor_mode.shape_env must not be None)Dr   r‘   ÚCOMPILE_COUNTERÚidr   rc   Úaot_id_counterrú   r   Ú	__enter__r{   Únan_checkerÚtimeÚtime_nsÚstart_time_nsr   Úlog_event_startrE   ÚnnÚModuler
  Úrootrˆ   r‰   r+   r‡   Útensor_attrsÚsymnode_proxy_lookupÚ_graph_placeholdersÚsizes_proxyÚscalars_proxyr  Úpacked_data_proxyr  Úenter_contextr/   r   r·   r  r  Ú	ExceptionÚNotImplementedErrorr˜   r«   Úbind_objects_to_proxiesr  Ú$create_unspecified_symint_and_symbolr-   ÚDYNAMICÚrangeÚlenr&  r   rr   rž   ÚfloatÚcreate_symfloatnodeÚcreate_unspecified_symbolrx   r	  r  r'   ÚexperimentalÚsymbolic_shapesÚ_suppress_guardsrÍ   r   Úcurrent_compile_id)rƒ   r£   r  r  r  r}   r  Ú
args_proxyÚinputs_originsÚsizes_originsÚscalars_originsrU   r¬   ÚeÚvalÚ	sym_sizesr¼   ÚproxiesÚsymintr  ÚsymvalÚenvs   f&&&&&&               rA   Úbegin_captureÚ&AutogradCompilerInstance.begin_capturee  sÀ  ø€ ô 	Ð$Õ% j×1°QÕ6Ó1Ü”Ó'ˆŒÜ.9¼#Ó.>ˆÔÜ3°D·G±GÓ<ˆÔØ×Ñ×&Ñ&Ô(ß:Dœ: oÔ6È$ˆÔÜ!Ÿ\š\›^ˆÔÜ!Ó#×3Ñ3ØØ×ÑØ˜Ÿ™Ð!Ø"&ð	 	4ô 	
ô $Ÿh™hŸo™oÓ/ˆ�‰ÔÜ$Ÿx™xŸ~™~¼˜~ÓIˆ�‰ÔØ&(ˆ�‰Ô#Ø$&ˆÔ!ô
å+ó
ñ	
ØØÔØÔØÔØÔ"ð 	�
‰
× Ñ Ô!3Ó!5Ô6Ø9@Ñ6ˆ ð 	�
‰
× Ñ Ô!9Ó!;Ô<ð �1�Iˆð	Ü# FÖ+‘�Ø"Ÿn™n¨Q°·±¸HÀcÓ0JÓK�“ñ ,ð 	×$Ñ$ V¸ÔHô & eÔ,ô
ñ -‘�ð �N‰N×?Ñ?ØØ—‘˜G SÓ)Ü×"Ñ"öñ
 -ð 	ñ 
ô 16´c¸)³nÔ0EÓFÑ0E¨1�4×#Ñ# A×&Ð&Ñ0EˆÐFÜ" 9Ö-‰IˆAˆvØŸ™×4Ñ4ØÜ(Ø˜•�Øó	ˆG�A‰Jô ˜f¤c×*Ô*Ø9@À½�×)Ñ)¨&¯+©+Ó6ñ .ð ×.Ñ.¨y¸'À=ÓQˆä! 'Ö*‰HˆCØ—[‘[ ¨CÓ0ˆFÜ˜#œs×#Ò#Ø#Ÿ~™~×RÑRØØÜ×&Ñ&ó �“ô
 ˜C¤×'Ò'Ø#Ÿ~™~×AÑAØ—N‘N×<Ñ<ØØ%Ü$.×$6Ñ$6ð =ó ð
 Ø!ð  Bó  �“ô %Ð%?ÄÀcÃÓKÐKñ' +ð( 	×$Ñ$ W¨d×.@Ñ.@À/ÔRÜ" 7Ö+‰IˆAˆvØ59×5GÑ5GÈÕ5JˆD×%Ñ% f§k¡kÓ2ñ ,ð 	�
‰
× Ñ  ×!6Ñ!6Ô7Ø�
‰
× Ñ  §¡Ô1Ø�
‰
× Ñ Ô!7Ó!9Ô:à× Ñ ×*Ñ*Ò2Ü Ð!NÓOÐOØ×#Ñ#×-Ñ-ˆØ�
‰
× Ñ Ü�H‰H×!Ñ!×1Ñ1×BÑBÀ3ÓGô	
ô
 ”×1Ò1Ó3Ó4ØØØð	
ð 	
øôG ô 	Ü%Ø'¬¨Q« yÐ0\Ô]iÐ\jÐkóàðûð	üó
ùò Gs%   Ç8V È4AW ÊWÖV=ÖV8Ö8V=c                ó4   <€ V ^8„  d   QhRS[ S[,          RR/# )r<   Úcompile_reasonsr=   N)r  rÍ   )r@   rd   s   "€rA   rB   rÿ   à  s#   ø€ ÷ 
ñ 
á™c�ð
ð 
ñ
rC   c                óT   a€ S'       g   \        R 4      h\        RR V3R lR7       R# )z!compile_reasons must not be emptyÚartifactc                  ó   € R RRR/# )rš   Ú!compiled_autograd_compile_reasonsÚencodingÚjsonrJ   rJ   rC   rA   Ú<lambda>Ú>AutogradCompilerInstance.log_compile_reasons.<locals>.<lambda>è  s   € ØÐ;Ø˜Fñ!rC   c                  ó   <€ S # rN   rJ   )r[  s   €rA   rb  rc  ì  s   ø€ ™rC   ©Úmetadata_fnÚ
payload_fnN)rx   r    )rƒ   r[  s   &frA   Úlog_compile_reasonsÚ,AutogradCompilerInstance.log_compile_reasonsà  s)   ø€ ÷ Ü Ð!DÓEÐEÜØñô /÷	
rC   c                ó
  <€ V ^8„  d   QhRS[ S[,          RS[ S[P                  ,          RS[ S[P                  ,          RRRS[P                  P
                  P                  RS[R,          R	S[S[,          R
S[ S[,          /# )r<   ÚpinputsÚpsaved_tensorsÚsaved_tensorsÚpctxr7   ÚctxÚmaybe_backward_state_idxNÚopaque_object_indicesr=   )	r   r   rE   rW   ÚautogradÚfunctionÚBackwardCFunctionrc   r  )r@   rd   s   "€rA   rB   rÿ   ï  s—   ø€ ÷ añ aá™#•ðañ !¡§¡Õ.ðañ  ¡§¡Õ-ð	að
 ðañ �^‰^×$Ñ$×6Ñ6ðañ #&¨¥*ðañ  $¡C�yðañ 
‘#�ñarC   c                óv  a aaaaaa€ SP                  4        Uu. uF  pS P                  V4      NK  	  p	pV U
u. uF  p
S P                  V
,          NK  	  pp
SP                  p\	        V4      oVP
                  pVP                  pVP                  oVP                  oVP                  p?\        P                  ! 4       '       d1   VP                   F   pVP                  '       g   K  \        R 4      h	  \        P                  P                   R V3R ll4       pS P"                  P%                  RVVV	VV3/ R7      oRoVe   S P                  V,          oR VVVVVV 3R llpV! 4       pVe   R V 3R	 llpV! VVR
7      pMV! V4      p\&        P(                  ! S P                  V4      pV# u upi u up
i )z@torch.compile does not currently support higher order gradients.c          
      óÀ   € V ^8„  d   QhR\         \        P                  ,          R\         \        ,          R\         \        ,          R\         \        ,          R\        /# )r<   Úctx_saved_tensorsÚctx_symintsÚctx_opaque_objsÚ	flat_argsr=   )r   rE   rW   r2   r   )r@   s   "rA   rB   ÚFAutogradCompilerInstance.proxy_call_aot_backward.<locals>.__annotate__   sP   € ÷ 	ñ 	Ü'¬¯©Õ5ð	ä!¤+Õ.ð	ô &¤c�]ð	ô  ¤•}ð		ô
 ñ	rC   c                 ó   <€ S! V VVV4      # rN   rJ   )rw  rx  ry  rz  Úbw_prologue_fns   &&&&€rA   Úcall_aot_bwd_prologueÚOAutogradCompilerInstance.proxy_call_aot_backward.<locals>.call_aot_bwd_prologue  s   ø€ ñ "Ø!ØØØó	ð rC   r‹   ©ÚkindrŽ   r•   rÒ   Nc                óN   € V ^8„  d   QhR\         \        P                  ,          /# r;   )r  rE   rW   )r@   s   "rA   rB   r{  ?  s   € ÷ k	ñ k	¬t´E·L±LÕ/Añ k	rC   c            	      ó@
  <aa€ R  R lp V ! SP                   4      p\        V\        SRJ4      ,
          4       Uu. uF  pSV,          NK  	  ppSP                  4       p\	        V4      \	        SP
                  4      8w  d.   \        R\	        V4       R\	        SP
                  4       24      hV Uu. uF  pSP                  V4      NK  	  ppWcR\	        V4      % Se   VP                  S4       ^ p/ oRp\        S4      oSP                  S,          '       d   SRSP                  S,           2,          oSP                  S;;,          ^,          uu&   R V3R llp	SP                   P                   EF&  p
V
P                  R8X  d:   W7,          P                  pV	! V
P                  4      Vn        VSV
&   V^,          pKN  V
P                  R	8X  d¼   \	        V
P                  4      ^8w  d"   \        R
\	        V
P                  4       24      hV
P                  ^ ,           Uu. uF`  p\!        V\"        P$                  P&                  4      '       d2   \"        P$                  P)                  SV,          SP*                  4      MTNKb  	  ppEK  V
P                  R8X  d�   V
P,                  pSP*                  P/                  V4      p\1        SP*                  P2                  V\5        SV4      4       SP*                  P7                  RVR/ 4      pV	! V
P                  4      Vn        VSV
&   EKº  V
P                  R8X  d¹   V
P,                  \"        P8                  P:                  P<                  P>                  J d4   \"        P8                  P:                  P@                  P>                  V
n        SP*                  P                   PC                  V
V3R l4      pV	! V
P                  4      Vn        VSV
&   EKƒ  V
P                  R8X  d‹   V
P,                  pSP*                  P/                  V4      p\1        SP*                  P2                  V\5        SV4      4       SP*                  P                   PC                  V
V3R l4      pWïn        VSV
&   EK  \        R4      h	  Vf   \        R4      hR R lpV Uu. uF6  p\!        V\"        P$                  P(                  4      '       d   V! 4       MTNK8  	  ppSPE                  VV4       V# u upi u upi u upi u upi )c                óX   € V ^8„  d   QhR\         P                  P                  R\        /# ©r<   r‡   r=   )rE   rˆ   r‰   rc   )r@   s   "rA   rB   ÚmAutogradCompilerInstance.proxy_call_aot_backward.<locals>.copy_paste_aot_backward_graph.<locals>.__annotate__@  s"   € ÷  ñ  ¤%§(¡(§.¡.ð  ´Sñ  rC   c                 ój   € ^ pV P                    F   pVP                  R8X  d   V^,          pK   V# 	  V# )é    r%  )r“   r�   )r‡   Únum_argsrž   s   &  rA   Ú
num_inputsÚkAutogradCompilerInstance.proxy_call_aot_backward.<locals>.copy_paste_aot_backward_graph.<locals>.num_inputs@  s<   € Ø�Ø!ŸKœK�DØ—w‘w -Ô/Ø  A�˜Ù àØ�ñ (ð  �rC   Nzsymints length mismatch: z vs Ú_c                ó0   € V ^8„  d   QhR\         R\         /# )r<   Ú	node_namer=   rñ   )r@   s   "rA   rB   r†  j  s   € ÷ :ñ :¤sð :¬sñ :rC   c                 ó   <€ R S RV  2# )ÚaotrŒ  rJ   )rŽ  Údeduped_aot_ids   &€rA   Úmake_uniqueÚlAutogradCompilerInstance.proxy_call_aot_backward.<locals>.copy_paste_aot_backward_graph.<locals>.make_uniquej  s   ø€ à˜^Ð,¨A¨i¨[Ð9Ð9rC   r%  r�   z(Expected output node to have 1 arg, got Úget_attrr‹   c                 ó   <€ SV ,          # rN   rJ   ©ÚnÚvalue_remaps   &€rA   rb  ÚiAutogradCompilerInstance.proxy_call_aot_backward.<locals>.copy_paste_aot_backward_graph.<locals>.<lambda>�  ó	   ø€ ¨°A®rC   Úcall_modulec                 ó   <€ SV ,          # rN   rJ   r–  s   &€rA   rb  r™  –  rš  rC   zshouldn't get herez&No output node found in backward graphc                ó8   € V ^8„  d   QhR\         P                  /# r;   rV   )r@   s   "rA   rB   r†  ¢  s   € ÷ 8ñ 8œ5Ÿ<™<ñ 8rC   c            	      ó˜   € \        4       ;_uu_ 4        \        P                  ! ^ ^ ^ ^ ^{4      uuRRR4       #   + '       g   i     R# ; i)rˆ  N©r(   rE   ÚzerosrJ   rC   rA   ÚdummyÚfAutogradCompilerInstance.proxy_call_aot_backward.<locals>.copy_paste_aot_backward_graph.<locals>.dummy¢  s.   € Ü0×2Õ2Ü Ÿ;š; q¨!¨Q°°3Ó7÷ 3×2×2Ó2ús	   “8¸A		rJ   )#r‡   rD  rc   Ú_get_compiled_autograd_symintsrE  Úsymintsrx   Úto_proxyr™   rÍ   r.  r“   r�   rž   rš   r•   rr   rE   rˆ   ÚNoder7   r
  rŽ   Úget_fresh_qualnamerÛ   r7  rä   Úcreate_nodeÚopsÚatenÚviewÚdefaultÚreshapeÚ	node_copyrA  )rŠ  r‰  r¼   Ú	pall_argsr¤  rQ  ÚpsymintsÚargs_idxÚpoutputsr’  rž   Úphr—  rš   ÚqualnamerÖ   r¡  ÚoÚoutputsr‘  r˜  Úaot_idrs   ro  Úpbackward_stateÚpgradsrƒ   s                      @@€€€€€€rA   Úcopy_paste_aot_backward_graphÚWAutogradCompilerInstance.proxy_call_aot_backward.<locals>.copy_paste_aot_backward_graph?  sH  ú€ õ ñ " )§/¡/Ó2ˆHä#(¨´C¸ÈtÐ8SÓ4TÕ)TÔ#UóÙ#U˜a��q—	�	Ñ#Uð ð ð ×8Ñ8Ó:ˆGÜ�7‹|œs 3§;¡;Ó/Ô/Ü$Ø/´°G³¨~¸TÄ#ÀcÇkÁkÓBRÐASÐTóð ñ 3:Ó:±'¨Q˜Ÿ™ aÖ(±'ˆHÐ:Ø(0�nœ˜G›Ð%àÒ*Ø× Ñ  Ô1ð ˆHàˆKØ48ˆHô ! ›[ˆNØ×"Ñ" 6×*Ô*Ø A d×&9Ñ&9¸&Õ&AÐ%BÐ"CÕC�Ø×Ñ ×'¨1Õ,Ó'÷:ð :ð "Ÿ™×-Õ-�Ø—7‘7˜mÔ+Ø"Õ,×1Ñ1�BÙ)¨$¯)©)Ó4�B”GØ(*�K Ñ%Ø •M’HØ—W‘W Ô(Ü˜4Ÿ9™9“~¨Ô*Ü,ØFÄsÈ4Ï9É9Ã~ÐFVÐWóð ð "&§¡¨1¦ó	 ñ ".˜Aô & a¬¯©¯©×7Ò7ô Ÿ™Ÿ™ {°1¥~°t·~±~ÔFàòñ ".ð	 ð  ’Hð —W‘W 
Ô*ØŸ;™;�DØ#Ÿ~™~×@Ñ@ÀÓF�HÜ˜DŸN™N×/Ñ/°¼7À9ÈdÓ;SÔTØ!Ÿ^™^×7Ñ7¸
ÀHÈbÐRTÓU�FÙ"-¨d¯i©iÓ"8�F”KØ(.�K Ô%Ø—W‘W Ô/Ø—{‘{¤e§i¡i§n¡n×&9Ñ&9×&AÑ&AÓAô ',§i¡i§n¡n×&<Ñ&<×&DÑ&D˜œØ!Ÿ^™^×1Ñ1×;Ñ;ØÔ6ó�Fñ #.¨d¯i©iÓ"8�F”KØ(.�K Ô%Ø—W‘W Ô-ØŸ;™;�DØ#Ÿ~™~×@Ñ@ÀÓF�HÜ˜DŸN™N×/Ñ/°¼7À9ÈdÓ;SÔTØ!Ÿ^™^×1Ñ1×;Ñ;ØÔ6ó�Fð %-”MØ(.�K Ô%ä(Ð)=Ó>Ð>ñ[ .ð^ ÒÜ$Ð%MÓNÐNõ8ñ
 JRóÙIQÀAœ: a¬¯©¯©×8Ò8‘”¸aÒ?Éð ð ð ×(Ñ(¨°(Ô;ØˆNùò{ùò ;ùòF ùòZs   »TÂ3TÈ%A&TÒ:<Tc                ór   € V ^8„  d   QhR\         R\        R\        \         ,          R\        P                  /# )r<   Úsubclass_metaÚ
is_runtimeÚunwrapped_argsr=   )r   r?   r   rE   rW   )r@   s   "rA   rB   r{  °  s8   € ÷ ñ Ü"ðä ðô !)¬¥ðô —‘ñ	rC   c                 ó4  <a a€ \         P                  P                  R  VV 3R ll4       p\        P                  ! SP
                  V4      pSP                  P                  RV\        V4      / R7      pSP                  4       pSP                  V.V.4       V# )c                ó0   € V ^8„  d   QhR\         R\         /# )r<   r¿  r=   rÓ   )r@   s   "rA   rB   ÚjAutogradCompilerInstance.proxy_call_aot_backward.<locals>.proxy_subclass_constructor.<locals>.__annotate__¶  s   € ÷ ñ ´3ð ¼3ñ rC   c                  ó*   <€ SP                  V SR 7      # ))r¾  )Úcreation_fn)r¿  r¾  r½  s   *€€rA   Úmake_subclassÚkAutogradCompilerInstance.proxy_call_aot_backward.<locals>.proxy_subclass_constructor.<locals>.make_subclassµ  s    ø€ à(×4Ñ4Ø&°:ð 5ó ð rC   r‹   r€  )rE   rÜ   rÝ   ÚpytreeÚtree_mapr¥  r
  r&  r¥   Úallocate_dummyrA  )r½  r¾  r¿  rÅ  Úpunwrapped_argsÚpoutputr�   rƒ   s   ff&    €rA   Úproxy_subclass_constructorÚTAutogradCompilerInstance.proxy_call_aot_backward.<locals>.proxy_subclass_constructor°  s�   ú€ ô
 —‘×-Ñ-÷ð ó .ðô
 #)§/¢/°$·-±-ÀÓ"P�àŸ.™.×5Ñ5Ø(à(Ü˜Ó/Øð 6ó �ð ×,Ñ,Ó.�Ø×,Ñ,¨f¨X¸°yÔAØ�rC   )Úmake_subclass_override)r£  r¥  r  Ú_forward_clsry   r^   r_   r`   ra   rb   rE   Úis_grad_enabledÚoutput_infoÚrequires_gradrµ   rÜ   rÝ   r
  r&  rÇ  rÈ  )rƒ   rk  rl  rm  rn  ro  rp  rq  rQ  r°  r¬   Úpopaque_objectsrp   r^   r_   Úbw_epilogue_fnÚoutput_alias_infor~  rº  r¶  rÌ  ÚresultsÚpresultsr·  rs   r}  r¸  r¹  s   f&&&&f&&               @@@@@rA   Úproxy_call_aot_backwardÚ0AutogradCompilerInstance.proxy_call_aot_backwardï  sÓ  þ€ ð. ×7Ñ7Ô9ó
á9�ð �M‰M˜!ÖÙ9ð 	ð 
ñ -ó
á,�ð ×Ñ˜S×!Ð!Ù,ð 	ð 
ð 25×1AÑ1AÐÜ%Ð&6Ó7ˆ	Ø#×,Ñ,ˆØ"2×"JÑ"JÐØ!×)Ñ)ˆØ)×9Ñ9ˆØ)×9Ñ9ˆØä× Ò ×"Ò"Ø%-×%9Ô%9Ð!Ø$×2×2Ò2Ü&ØZóð ñ &:ô 
�‰×	%Ñ	%÷	ó 
&ð	ð —‘×,Ñ,Ø à(àØØØð	ð ð -ó 
ˆð ˆØ#Ò/Ø"×.Ñ.Ð/GÕHˆO÷k	õ k	ñZ 0Ó1ˆà"Ò.÷ð ñ2 %ØÐ0Jô‰Gñ % WÓ-ˆGä—?’? 4§=¡=°'Ó:ˆØˆùòY
ùò

s
   šF1ºF6c                ó  <€ V ^8„  d   QhRS[ S[,          RS[ S[,          RS[ S[P                  ,          RS[RS[P
                  P                  P                  RS[R,          RS[S[,          R	S[	S[P                  R,          R
3,          /# )r<   r£   Úoutput_metadatasrm  Úbackward_idxro  rp  Nrq  r=   .)
r   r   rE   rW   rc   rr  rs  rt  r  r¥   )r@   rd   s   "€rA   rB   rÿ   Ò  s—   ø€ ÷ :ñ :á™•ð:ñ #¡3�-ð:ñ  ¡§¡Õ-ð	:ñ
 ð:ñ �^‰^×$Ñ$×6Ñ6ð:ñ #&¨¥*ð:ñ  $¡C�yð:ñ 
‰u�|‰|˜dÕ" CÐ'Õ	(ñ:rC   c                óV  € V P                   f   \        R4      hV P                   V,          pV P                  V4      p	V P                  V4      p
\        VP                  R4      '       d   V P                  V	V
VVVVV4      pMh\        VP                  RR4      '       d$   \        RVP                  P                   R24      hV P                  P                  R\        VV
.V	O5/ R7      pVf   \        R	4      h\        4       ;_uu_ 4        . p\        V4       FV  w  rÞVe   W½,          f   VP                  R 4       K&  Vw  ppppVP                  \        P                   ! VVVVR
7      4       KX  	  V P#                  WË4       R R R 4       \%        X4      #   + '       g   i     L; i)Nz2hooks_proxy must be set before proxy_call_backwardr`   Úboxed_grads_callFzboxed_grads_call=True on z* is not supported with compiled autograd. r‹   r€  z,proxies must not be None after backward call)ÚsizeÚdtypeÚlayoutÚdevice)r  rx   r¥  rÙ   rÏ  rØ  rä   rµ   rf   r
  r&  r   r(   r·   r™   rE   ÚemptyrA  r¥   )rƒ   r£   rÛ  rm  rÜ  ro  rp  rq  rn  rk  rl  rT  Úgrad_insr¬   Úoutput_metadatará  râ  rà  rß  s   &&&&&&&&           rA   Úproxy_call_backwardÚ,AutogradCompilerInstance.proxy_call_backwardÒ  s¨  € ð ×ÑÒ#Ü Ð!UÓVÐVØ×Ñ Õ-ˆØ—-‘- Ó'ˆØŸ™ }Ó5ˆÜ�3×#Ñ# Y×/Ò/à×2Ñ2ØØØØØØ(Ø%ó‰Gô �s×'Ñ'Ð);¸U×CÒCÜ"Ø/°×0@Ñ0@×0IÑ0IÐ/Jð K@ð @óð ð —n‘n×1Ñ1Ø$Ü$àØ"ðð ñð
 ð 2ó 	ˆGð Š?Ü Ð!OÓPÐPä(×*Õ*à24ˆHÜ(1Ð2BÖ(CÑ$�Ø"Ò*¨g­lÒ.BØ—O‘O DÔ)Ùà.=Ñ+�˜  tØ—‘Ü—K’K T°¸vÈfÔUöñ )Dð ×(Ñ(¨Ô;÷ +ô �X‹Ð÷ +×*ús   ÄA9FÆF(	c                ó¾   <€ V ^8„  d   QhRS[ S[,          RS[ S[,          RS[ S[,          RS[RS[ S[,          RS[ S[,          RS[RS[ S[P                  ,          /# ©	r<   r£   Ú
base_sizesÚbase_stridesÚbase_storage_offsetÚ
view_sizesÚview_stridesÚview_storage_offsetr=   )r   r   rE   rW   )r@   rd   s   "€rA   rB   rÿ     s‚   ø€ ÷ Gñ Gá™•ðGñ ™S•MðGñ ™s•mð	Gñ
 !ðGñ ™S•MðGñ ™s•mðGñ !ðGñ 
‘%—,‘,Õ	ñGrC   c           	     ó  € VV P                  V4      V P                  V4      V P                  V4      V P                  V4      V P                  V4      V P                  V4      3pV P                  \        VR .^,          4      # rN   )r¥  Ú
proxy_callÚcopy_slices_prologue)	rƒ   r£   rê  rë  rì  rí  rî  rï  r•   s	   &&&&&&&& rA   Úcall_copy_slices_prologueÚ2AutogradCompilerInstance.call_copy_slices_prologue  st   € ð Ø�M‰M˜*Ó%Ø�M‰M˜,Ó'Ø�M‰MÐ-Ó.Ø�M‰M˜*Ó%Ø�M‰M˜,Ó'Ø�M‰MÐ-Ó.ð
ˆð �‰Ô3°T¸D¸6ÀA½:ÓFÐFrC   c                ó¤   <€ V ^8„  d   QhRS[ S[,          RS[P                  RS[ S[,          RS[P                  RS[ S[P                  ,          /# )r<   Úneeds_input_gradrÖ   ÚresÚ
grad_slicer=   )r   r?   rE   rW   r   )r@   rd   s   "€rA   rB   rÿ   #  sV   ø€ ÷ 
ñ 
á"¡4�.ð
ñ —‘ð
ñ ‘c�]ð	
ñ
 —L‘Lð
ñ 
‘%—,‘,Õ	ñ
rC   c                óV   € V P                  \        WW43R .\        V4      ,          4      # rN   )rñ  Úcopy_slices_epiloguerE  )rƒ   rö  rÖ   r÷  rø  s   &&&&&rA   Úcall_copy_slices_epilogueÚ2AutogradCompilerInstance.call_copy_slices_epilogue#  s0   € ð �‰Ü Ø sÐ7ØˆF”SÐ)Ó*Õ*ó
ð 	
rC   c                ó4   <€ V ^8„  d   QhRS[ P                  /# r;   rV   )r@   rd   s   "€rA   rB   rÿ   0  s   ø€ ÷ /ñ /¡§¡ñ /rC   c                ó”   € \        4       ;_uu_ 4        \        P                  ! ^ R.4      uuRRR4       #   + '       g   i     R# ; i)rˆ  iÍ[NrŸ  rÆ   s   &rA   rÉ  Ú'AutogradCompilerInstance.allocate_dummy0  s*   € Ü(×*Õ*ä—;’;  9˜~Ó.÷ +×*×*Ó*ús	   “6¶A	c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r<   rU   r=   rV   )r@   rd   s   "€rA   rB   rÿ   5  s#   ø€ ÷ 'ñ '¡U§\¡\ð '±e·l±lñ 'rC   c                ó�   € \        4       ;_uu_ 4        \        P                  ! V4      uuR R R 4       #   + '       g   i     R # ; irN   )r(   rE   Ú
empty_like)rƒ   rU   s   &&rA   Úallocate_dummy_likeÚ,AutogradCompilerInstance.allocate_dummy_like5  s(   € Ü(×*Õ*Ü×#Ò# AÓ&÷ +×*×*Ó*ús	   “4´A	c          
      óL   <€ V ^8„  d   QhRS[ RS[RS[3,          RS[RS[RS[ /# )r<   Úfn_namerÉ   .rÊ   rË   r=   rÌ   )r@   rd   s   "€rA   rB   rÿ   9  sM   ø€ ÷ Fñ FáðFñ �S™#�XÕðFñ !ð	Fñ
 ðFñ 
ñFrC   c                ó.   € \         P                  WW44      # )zBinds ops.fn_name = fn)r©  rà   )rƒ   r  rÉ   rÊ   rË   s   &&&&&rA   Úbind_functionÚ&AutogradCompilerInstance.bind_function9  s   € ô �w‰w�wÐ$6ÓEÐErC   c                ó|   <€ V ^8„  d   QhRS[ RS[S[,          RS[RS[S[,          RS[S[P                  ,          /# )r<   r  Úgradsr•   rå  r=   )rÍ   r   r   rE   rW   )r@   rd   s   "€rA   rB   rÿ   C  sU   ø€ ÷ 	Dñ 	Dáð	Dñ ™�}ð	Dñ ð		Dñ
 "¡#�ð	Dñ 
‘%—,‘,Õ	ñ	DrC   c                óX   € \         P                  V4      pV P                  WR.VO5V4      # )z:Proxies a call to ops.fn_name(grads, *args) into the graph)r©  rå   rñ  )rƒ   r  r  r•   rå  r�   s   &&&&& rA   Úapply_functionalÚ)AutogradCompilerInstance.apply_functionalC  s)   € ô �W‰W�WÓˆØ�‰˜r >¨D¡>°?ÓCÐCrC   c          	      óz   <€ V ^8„  d   QhRS[ RS[3,          RS[RS[S[,          RS[S[P                  ,          /# )r<   rÉ   .r•   rå  r=   )r   r   r   rE   rW   )r@   rd   s   "€rA   rB   rÿ   N  sC   ø€ ÷ 
ñ 
Ù˜3¡˜8Õ$ð
Ù,/ð
ÙBJÉ3Å-ð
á	‘%—,‘,Õ	ñ
rC   c                ó@  a € \         P                  ! V 3R lV4      pS P                  P                  RW/ R7      pV Uu. uF  pS P	                  4       NK  	  ppS P                  T\        \        V4      4       Uu. uF  q…V,          NK  	  up4       V# u upi u upi )z*Proxies a call to fn(*args) into the graphc                 ó&   <€ SP                  V 4      # rN   ©r¥  )rQ  rƒ   s   &€rA   rb  Ú5AutogradCompilerInstance.proxy_call.<locals>.<lambda>R  s   ø€ ¨t¯}©}¸QÔ/?rC   r‹   ©r•   rÒ   )rÇ  rÈ  r
  r&  rÉ  rA  rD  rE  )	rƒ   rÉ   r•   rå  Ú
proxy_argsÚ	proxy_outrŒ  rÖ   r¼   s	   f&&&     rA   rñ  Ú#AutogradCompilerInstance.proxy_callN  s’   ø€ ô —_’_Ô%?ÀÓFˆ
Ø—N‘N×/Ñ/Ø˜R¸ð 0ó 
ˆ	ñ 2AÓA±¨A�$×%Ñ%Ö'±ˆÐAØ×$Ñ$ VÄEÌ#ÈfË+ÔDVÓ-WÑDV¸q¸¯l¨lÑDVÑ-WÔXØˆùò BùÚ-Ws   ¿BÁ<B
c                ó|   <€ V ^8„  d   QhRS[ RS[S[ ,          RS[ RS[S[ ,          RS[S[P                  ,          /# )r<   rŒ  r¶  r•   rå  r=   )r   r   rE   rW   )r@   rd   s   "€rA   rB   rÿ   Z  sG   ø€ ÷ ñ ÙðÙ'©�}ðÙ47ðÙJRÑSVÍ-ðá	‘%—,‘,Õ	ñrC   c                óR  € \         P                  R4      p\        P                  ! V P                  V.VO54      pV P
                  P                  RWV/ R7      p\        V4      \        V4      8w  d%   \        R\        V4       R\        V4       R24      hV P                  W'4       V# )zEProxies a call to ops.validate_outputs(outputs, *args) into the graphÚvalidate_outputsr‹   r  zoutput_metadata length (z) != outputs length (Ú))
r©  rå   rÇ  rÈ  r¥  r
  r&  rE  rx   rA  )rƒ   rŒ  r¶  r•   rå  r�   r  Únew_proxy_outputss   &&&&&   rA   r  Ú)AutogradCompilerInstance.validate_outputsZ  s§   € ô �W‰WÐ'Ó(ˆÜ—_’_ T§]¡]°WÐ4D¸tÑ4DÓEˆ
Ø ŸN™N×7Ñ7Ø˜R¸ð 8ó 
Ðô ˆÓ¤3 w£<Ô/Ü Ø*¬3¨Ó+?Ð*@Ð@UÔVYÐZaÓVbÐUcÐcdÐeóð ð 	×$Ñ$ WÔ@ØˆrC   c                ó@   <€ V ^8„  d   QhRS[ RS[ RS[P                  /# )r<   Úold_varÚnew_varr=   )r   rE   rW   )r@   rd   s   "€rA   rB   rÿ   j  s&   ø€ ÷ ñ ¡#ð ±ð ¹¿¹ñ rC   c                óî   € V P                  V4      pV P                  V4      pV P                  P                  R \        P                  W43/ R7      pV P                  4       pV P                  V.V.4       V# )r‹   r  )r¥  r
  r&  rE   rà   rÉ  rA  )rƒ   r  r   Úold_var_proxyÚnew_var_proxyr  rÖ   s   &&&    rA   Ú
accumulateÚ#AutogradCompilerInstance.accumulatej  sq   € ØŸ™ gÓ.ˆØŸ™ gÓ.ˆØ—N‘N×/Ñ/ØœUŸY™Y¨mÐ-KÐTVð 0ó 
ˆ	ð ×$Ñ$Ó&ˆØ×$Ñ$ f X°	¨{Ô;ØˆrC   Nc                óÂ   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  S[,          RS[R,          RS[ P                  R,          /# )r<   ÚvariableÚvariable_gradNr¨   Úhas_post_hooksr=   )rE   rW   r?   )r@   rd   s   "€rA   rB   rÿ   t  s`   ø€ ÷ ñ á—,‘,ðñ —|‘| dÕ*ðñ �l‰l™TÕ!ð	ñ
 ˜t�ðñ 
�‰˜Õ	ñrC   c           	     óZ  € VR J pVf   \        V4      pTpVP                  pV P                  P                  R\        V P                  V4      V P                  V4      V P                  V4      V3/ R7      pV P                  V4      pV P                  V.V.4       Wqn        V'       d   R # V# )Nr‹   r  )r?   r¨   r
  r&  r   r¥  r  rA  )rƒ   r'  r(  r¨   r)  Úold_callr  rÖ   s   &&&&&   rA   r}   Ú(AutogradCompilerInstance.accumulate_gradt  s³   € ð " TÐ)ˆØÒ!ô " $›ZˆNØ ˆDØ$ŸM™MˆMà—N‘N×/Ñ/ØÜ à—‘˜hÓ'Ø—‘˜mÓ,Ø—‘˜dÓ#Øð	ð ð 0ó 

ˆ	ð ×)Ñ)¨(Ó3ˆØ×$Ñ$ f X°	¨{Ô;ØŒßÙØˆrC   c                ón   <€ V ^8„  d   QhRS[ RS[3,          RS[RS[RS[P                  P
                  /# )r<   Úhook.r•   Ú	hook_typer=   )r   r   ÚHookTyperE   rˆ   r7   )r@   rd   s   "€rA   rB   rÿ   •  s>   ø€ ÷ 
ñ 
Ù˜S¡#˜XÕ&ð
Ù/2ð
Ù?Gð
á	�‰�‰ñ
rC   c               ó˜   € V P                   P                  R \        V.V Uu. uF  q@P                  V4      NK  	  upO5RV/4      # u upi )r‹   r/  )r
  r&  r   r¥  )rƒ   r.  r/  r•   rU   s   &&$* rA   Úproxy_call_hookÚ(AutogradCompilerInstance.proxy_call_hook•  sV   € ð �~‰~×*Ñ*ØÜàðá,0Ó1©D q—-‘- Ö"©DÑ1ñð ˜)Ð$ó
ð 	
ùò
 2s   ¢Ac                ó@   <€ V ^8„  d   QhRS[ RS[ RS[P                  /# )r<   Úhook_idÚdata_idr=   )rc   rE   rW   )r@   rd   s   "€rA   rB   rÿ   ¢  s&   ø€ ÷ ñ ¡3ð ±ð ¹¿¹ñ rC   c                óô   € V P                   f   \        R4      hV P                   V,          pV P                  V,          pV P                  VVRR7      pV P	                  4       pV P                  V.V.4       V# )Nz*hooks_proxy must be set before unpack_hookÚunpack_hook©r/  )r  rx   r=  r2  rÉ  rA  )rƒ   r5  r6  r.  ÚdataÚproxyr°   s   &&&    rA   r8  Ú$AutogradCompilerInstance.unpack_hook¢  s�   € Ø×ÑÒ#Ü Ð!MÓNÐNØ×Ñ Õ(ˆØ×%Ñ% gÕ.ˆØ×$Ñ$ØØØ#ð %ó 
ˆð
 ×!Ñ!Ó#ˆØ×$Ñ$ c U¨U¨GÔ4Øˆ
rC   c          	      óz   <€ V ^8„  d   QhRS[ S[P                  ,          RS[RS[RS[ S[P                  ,          /# ©r<   r£   r5  r¼   r=   ©r  rE   rW   rc   )r@   rd   s   "€rA   rB   rÿ   °  s?   ø€ ÷ ñ Ù™5Ÿ<™<Õ(ðÙ36ðÙ;>ðá	‰e�l‰lÕ	ñrC   c                óJ  € V P                   f   \        R4      hV P                   V,          pV P                  VW,          RR7      p\        4       ;_uu_ 4        \	        W,          4      W&   V P                  W,          .V.4       R R R 4       V#   + '       g   i     T# ; i)Nz.hooks_proxy must be set before tensor_pre_hookÚtensor_pre_hookr9  ©r  rx   r2  r(   rY   rA  )rƒ   r£   r5  r¼   r.  r;  s   &&&&  rA   rA  Ú(AutogradCompilerInstance.tensor_pre_hook°  s—   € ð ×ÑÒ#Ü Ð!QÓRÐRØ×Ñ Õ(ˆØ×$Ñ$ØØ�IØ'ð %ó 
ˆô
 )×*Õ*Ü# F¥IÓ.ˆF‰IØ×(Ñ(¨&­)¨°u°gÔ>÷ +ð ˆ÷ +Ö*ð ˆús   Á.BÂB"	c          	      óz   <€ V ^8„  d   QhRS[ S[P                  ,          RS[RS[RS[ S[P                  ,          /# r>  r?  )r@   rd   s   "€rA   rB   rÿ   À  s?   ø€ ÷ ñ Ù™5Ÿ<™<Õ(ðÙ36ðÙ;>ðá	‰e�l‰lÕ	ñrC   c           	     ó~  € V P                   P                  R \        P                  P                  P
                  P                  W P                  W,          4      3/ 4      p\        4       ;_uu_ 4        \        W,          4      W&   V P                  W,          .V.4       RRR4       V#   + '       g   i     T# ; i©r‹   N)r
  r&  rE   Ú_CrÜ   r8   Úcall_cpp_tensor_pre_hooksr¥  r(   rY   rA  )rƒ   r£   r5  r¼   r;  s   &&&& rA   Úcpp_tensor_pre_hookÚ,AutogradCompilerInstance.cpp_tensor_pre_hookÀ  s“   € ð —‘×+Ñ+ØÜ�H‰H×Ñ×.Ñ.×HÑHØ—m‘m F¥IÓ.Ð/Øó	
ˆô )×*Õ*Ü# F¥IÓ.ˆF‰IØ×(Ñ(¨&­)¨°u°gÔ>÷ +ð ˆ÷ +Ö*ð ˆús   Á3.B+Â+B<	c                ó`   <€ V ^8„  d   QhRS[ S[,          RS[RS[S[P
                  ,          /# )r<   r£   r5  r=   )r   r   rc   r  rE   rW   )r@   rd   s   "€rA   rB   rÿ   Î  s/   ø€ ÷ ñ ™x©�}ð ±sð ¹tÁEÇLÁLÕ?Qñ rC   c                óD  € V P                   f   \        R4      hV P                   V,          pV P                  VVRR7      p\        4       ;_uu_ 4        V Uu. uF  p\	        V4      NK  	  ppV P                  W4       R R R 4       V# u upi   + '       g   i     T# ; i)Nz'hooks_proxy must be set before pre_hookÚpre_hookr9  rB  )rƒ   r£   r5  r.  rT  rU   s   &&&   rA   rM  Ú!AutogradCompilerInstance.pre_hookÎ  sš   € Ø×ÑÒ#Ü Ð!JÓKÐKØ×Ñ Õ(ˆØ×&Ñ&ØØØ ð 'ó 
ˆô
 )×*Õ*Ù.4Ó5©f¨”k !–n©fˆFÐ5Ø×(Ñ(¨Ô9÷ +ð ˆùò 6÷ +Ö*ð ˆús   ÁBÁB	Á,BÂ	BÂB	c          	      óž   <€ V ^8„  d   QhRS[ S[P                  ,          RS[S[P                  ,          RS[RS[ S[P                  ,          /# )r<   r¶  r£   r5  r=   )r  rE   rW   r   rc   )r@   rd   s   "€rA   rB   rÿ   Ü  sH   ø€ ÷ ñ Ù™EŸL™LÕ)ðÙ3;¹E¿L¹LÕ3IðÙTWðá	‰e�l‰lÕ	ñrC   c                óF  € V P                   f   \        R4      hV P                   V,          pV P                  VVVRR7      p\        4       ;_uu_ 4        V Uu. uF  p\	        V4      NK  	  ppV P                  W4       R R R 4       V# u upi   + '       g   i     T# ; i)Nz(hooks_proxy must be set before post_hookÚ	post_hookr9  rB  )rƒ   r¶  r£   r5  r.  rT  rU   s   &&&&   rA   rQ  Ú"AutogradCompilerInstance.post_hookÜ  sŸ   € ð ×ÑÒ#Ü Ð!KÓLÐLØ×Ñ Õ(ˆØ×&Ñ&ØØØØ!ð	 'ó 
ˆô )×*Õ*Ù/6Ó7©w¨!”{ 1–~©wˆGÐ7Ø×(Ñ(¨Ô:÷ +ð ˆùò 8÷ +Ö*ð ˆús   ÁBÁB
Á-BÂ
BÂB 	c                ód   <€ V ^8„  d   QhRS[ P                  RS[RS[S[ P                  ,          /# )r<   Úinputr5  r=   )rE   rW   rc   r  )r@   rd   s   "€rA   rB   rÿ   í  s2   ø€ ÷ ñ Ù—\‘\ðÙ,/ðá	‰e�l‰lÕ	ñrC   c                óŽ  € \        V\        P                  4      '       g   \        R \	        V4       24      hV P
                  f   \        R4      hV P
                  V,          pV P                  VVRR7      p\        4       ;_uu_ 4        \        V4      .pV P                  WT.4       RRR4       V#   + '       g   i     X# ; i)r  Nz1hooks_proxy must be set before post_acc_grad_hookÚpost_acc_grad_hookr9  )
rr   rE   rW   rx   r˜   r  r2  r(   rY   rA  )rƒ   rT  r5  r.  r;  r÷  s   &&&   rA   rV  Ú+AutogradCompilerInstance.post_acc_grad_hookí  s¶   € ô ˜%¤§¡×.Ò.Ü Ð#>¼tÀE»{¸mÐ!LÓMÐMØ×ÑÒ#Ü Ð!TÓUÐUØ×Ñ Õ(ˆØ×$Ñ$ØØØ*ð %ó 
ˆô
 )×*Õ*Ü˜uÓ%Ð&ˆCØ×(Ñ(¨¨gÔ6÷ +ð ˆ
÷ +Ö*ð ˆ
ús   Â
B3Â3C	c                ó^   <€ V ^8„  d   QhRS[ P                  P                  RS[S[,          /# r…  )rE   rˆ   r‰   r  rc   )r@   rd   s   "€rA   rB   rÿ     s'   ø€ ÷ 4ñ 4©e¯h©h¯n©nð 4ÁÁcÅñ 4rC   c                óþ  € / pR p\        VP                  4      pV^ ,          P                  R8w  d!   \        RV^ ,          P                   R24      hV^ ,          p\        VP                  P                  4       4      p\        \        4      pWG,          V^ ,          8w  d   \        R4      hV\        V4      ,           ^,
          pWH,          VR,          8w  d   \        R4      h\        V4       EF  w  ršV'       g1   V
P                  R,          P                  P                  R8X  d   RpK>  V
P                  R,          P                  P                  R	8H  p\        V
P                  R,          P                  4       4      ^ 8H  pV'       g   KŸ  V'       g   K©  \        V
P                  P                  4       4      p\        ;QJ d    R
 V 4       F  '       d   K   R M	  RM! R
 V 4       4      '       g   EK	  W¢V	&   EK  	  V'       du   VP                  4        FG  p
\        P!                  RV
4       V
P                  R,          P#                  4       V
P                  R&   KI  	  \        VP                  4       4      # . # )Fr£   z0Expected first node target to be 'inputs', got 'Ú'z3First getitem node does not match first inputs userz1Last getitem node does not match last inputs userrR  ÚcudaTÚcpuc              3   óJ  "  € T F™  p\        VP                  \        P                  P                  4      ;'       d"    VP                  P
                  R9   ;'       g>    \        VP                  \        4      ;'       d    VP                  P                  '       * x € K›  	  R# 5i)ÚprimsN)r^  rª  )rr   rŽ   rE   Ú_opsÚ
OpOverloadÚ	namespacerÚ   rÊ   ©r'  Úusers   & rA   r(  ÚDAutogradCompilerInstance.move_graph_nodes_to_cuda.<locals>.<genexpr>   sˆ   é € ð 
ñ !+˜ô # 4§;¡;´·
±
×0EÑ0EÓF÷ Gð GØ ŸK™K×1Ñ1Ð5FÑF÷ð ô
 # 4§;¡;´Ó3÷ ?ð ?Ø $§¡× >Ñ >Ô>ôó !+ùs   ‚9B#¼ B#Á!B#Á?$B#zMoving node %s from cpu to cudaéÿÿÿÿ)r  r“   rŽ   rx   ÚusersÚkeysrE  r:  r·   Úmetarâ  r˜   rß  ÚallÚvaluesÚverbose_logÚdebugr[  )rƒ   r‡   Úto_moveÚhas_cuda_inputsr“   r£   Úinputs_usersÚfirst_getitem_idxÚlast_getitem_idxr¼   rž   Úis_cpuÚ	is_scalarÚ
node_userss   &&            rA   Úmove_graph_nodes_to_cudaÚ1AutogradCompilerInstance.move_graph_nodes_to_cuda  sø  € Ø,.ˆØˆÜ�U—[‘[Ó!ˆØ��8�?‰?˜hÔ&Ü ØBÀ5ÈÅ8Ç?Á?ÐBSÐSTÐUóð ð �q•ˆÜ˜FŸL™L×-Ñ-Ó/Ó0ˆäÔ 3Ó4ÐØÕ# |°A¥Ô6Ü Ð!VÓWÐWØ,¬s°<Ó/@Õ@À1ÕDÐØÕ" l°2Õ&6Ô6Ü Ð!TÓUÐUä  ×.‰GˆAß" t§y¡y°Õ'7×'>Ñ'>×'CÑ'CÀvÔ'MØ"&�Ùà—Y‘Y˜uÕ%×,Ñ,×1Ñ1°UÑ:ˆFÜ˜DŸI™I eÕ,×1Ñ1Ó3Ó4¸Ñ9ˆIß‰vŸ)™)Ü! $§*¡*§/¡/Ó"3Ó4�
ç“3ñ 
ñ !+ó
—3—3’3ñ 
ñ !+ó
÷ 
õ 
ð "&˜A”Jñ- /÷4 ØŸ™Ö(�Ü×!Ñ!Ð"CÀTÔJØ#'§9¡9¨UÕ#3×#8Ñ#8Ó#:�—	‘	˜%Ó ñ )ô
 ˜Ÿ™›Ó'Ð'àˆ	rC   c                ó&   <€ V ^8„  d   QhRS[ RS[/# ©r<   rž   r=   )r   r?   )r@   rd   s   "€rA   rB   rÿ   :  s   ø€ ÷ 
ñ 
¡ð 
©ñ 
rC   c                óZ  € \        V\        P                  P                  4      ;'       d�    VP                  R 8H  ;'       dj    VP
                  \        P                  P                  P                  P                  \        P                  P                  P                  P                  39   # )r‹   )rr   rE   rˆ   r¦  r�   rŽ   r©  rª  Úsym_sizerc   Ú	sym_numelr¬  )rƒ   rž   s   &&rA   Úis_sym_nodeÚ$AutogradCompilerInstance.is_sym_node:  sz   € ä�tœUŸX™XŸ]™]Ó+÷ Oð OØ—‘˜?Ñ*÷Oð Oà—‘Ü—	‘	—‘×'Ñ'×+Ñ+¬U¯Y©Y¯^©^×-EÑ-E×-MÑ-MÐNñOð	
rC   c                ó   <€ V ^8„  d   QhRR/# rÂ   rJ   )r@   rd   s   "€rA   rB   rÿ   B  s   ø€ ÷ Bñ B�Tñ BrC   c                óš  a€ \        4       oR p\        V P                  P                  P	                  RR7      4       F.  w  rSP                  VP                  P                  4       4       K0  	  V\        \        4      ^,
          8w  d&   \        R\        \        4      ^,
           RV 24      hR V3R llp\        V P                  P                  P                  4      pV P                  P                  P                  V4       \        V P                  P                  P                  4      p\        P                  RWE,
          4       R # )Nr%  r�   z	Expected z placeholders, got c                óX   € V ^8„  d   QhR\         P                  P                  R\        /# rx  ©rE   rˆ   r¦  r?   )r@   s   "rA   rB   Ú2AutogradCompilerInstance.dce.<locals>.__annotate__P  s"   € ÷ 	$ñ 	$œEŸH™HŸM™Mð 	$¬dñ 	$rC   c                 ó‚   <€ V S9   g'   V P                   R 8X  d   V P                  \        9   d   R# V P                  4       # )r‹   T)r�   rŽ   Ú_impure_targetsÚ	is_impure)rž   Úunpack_nodess   &€rA   r…  Ú/AutogradCompilerInstance.dce.<locals>.is_impureP  s2   ø€ Ø�|Ô#Ø—‘˜?Ô*¨t¯{©{¼oÔ/MáØ—>‘>Ó#Ð#rC   zDCE removed %d nodes)r3   r·   r
  r‡   r”   Úupdaterf  rg  rE  r:  rx   r“   Úeliminate_dead_coderk  rl  )rƒ   r¼   rž   r…  ÚbeforeÚafterr†  s   &     @rA   ÚdceÚAutogradCompilerInstance.dceB  sü   ø€ ô
 3=³,ˆØˆÜ  §¡×!5Ñ!5×!@Ñ!@ÀMÐ!@Ó!RÖS‰GˆAØ×Ñ §
¡
§¡Ó 1Ö2ñ Tà”Ô'Ó(¨1Õ,Ô,Ü ØœCÔ 3Ó4°qÕ8Ð9Ð9LÈQÈCÐPóð ÷	$ð 	$ô �T—^‘^×)Ñ)×/Ñ/Ó0ˆØ�‰×Ñ×0Ñ0°Ô;Ü�D—N‘N×(Ñ(×.Ñ.Ó/ˆÜ×ÑÐ0°&µ.ÖArC   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# r;   )Úsetrc   )r@   rd   s   "€rA   rB   rÿ   \  s   ø€ ÷ -ñ -¡S©¥Xñ -rC   c                óT  € . p. p\        V P                  P                  P                  4      p\	        V4       \	        V4      pVP
                  R 8w  d   \        RVP
                   R24      hVP                   Fo  pVP                  \        P                  Jd   \        RVP                   24      hVP                  '       d   VP                  V4       K^  VP                  V4       Kq  	  \        4       pV Fý  p\        VP                  \        4      '       g"   \        R\!        VP                  4       24      hVP                  ^ ,          V8w  d   \        R4      h\        VP                  ^,          \"        4      '       g)   \        R\!        VP                  ^,          4       24      h\%        V4      pVP'                  VP                  ^,          4       VP                  ^ ,          V3Vn        Kÿ  	  V F(  p	V P                  P                  P)                  V	4       K*  	  V# )r  z#Expected placeholder 'sizes', got 'rZ  z&Expected operator.getitem target, got z$Expected used.args to be tuple, got z&Expected used.args[0] to be sizes_nodez%Expected used.args[1] to be int, got )r’   r
  r‡   r“   r‘   rš   rx   rf  rŽ   r–   r—   r™   r�  rr   r•   r¥   r˜   rc   rE  rà   Ú
erase_node)
rƒ   Ú
used_sizesÚunused_sizesÚitÚ
sizes_nodeÚgetitem_nodeÚused_sizes_idxÚusedÚnext_size_idxÚunuseds
   &         rA   Úremove_unused_sizesÚ,AutogradCompilerInstance.remove_unused_sizes\  sÐ  € Øˆ
Øˆô �$—.‘.×&Ñ&×,Ñ,Ó-ˆÜˆRŒÜ˜"“Xˆ
Ø�?‰?˜gÔ%Ü Ø5°j·o±oÐ5FÀaÐHóð ð '×,Ô,ˆLØ×"Ñ"¬(×*:Ñ*:Ó:Ü$Ø<¸\×=PÑ=PÐ<QÐRóð ð ×!×!Ð!Ø×!Ñ! ,Ö/ð ×#Ñ# LÖ1ñ -ô $'£5ˆÛˆDÜ˜dŸi™i¬×/Ò/Ü$Ø:¼4ÀÇ	Á	»?Ð:KÐLóð ð �y‰y˜�|˜zÔ)Ü$Ð%MÓNÐNÜ˜dŸi™i¨�l¬C×0Ò0Ü$Ø;¼DÀÇÁÈ1ÅÓ<NÐ;OÐPóð ô   Ó/ˆMà×Ñ˜tŸy™y¨�|Ô,àŸ™ 1� }Ð5ˆDŽIñ ó" #ˆFØ�N‰N× Ñ ×+Ñ+¨FÖ3ñ #ð ÐrC   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r<   r-  r=   )rÍ   r%   )r@   rd   s   "€rA   rB   rÿ   ‹  s   ø€ ÷ Jñ J¡cð J©kñ JrC   c                ól   € \        V P                  P                  V P                  P                  V4      # rN   )r%   r
  r7  r‡   )rƒ   r-  s   &&rA   Úcreate_graph_moduleÚ,AutogradCompilerInstance.create_graph_module‹  s%   € Ü˜4Ÿ>™>×.Ñ.°·±×0DÑ0DÀbÓIÐIrC   c                óP   <€ V ^8„  d   QhRS[ RS[S[RS[ 3,          S[ 3,          /# )r<   r¶  r=   .)r   r¥   r   )r@   rd   s   "€rA   rB   rÿ   Ž  s2   ø€ ÷ |8ñ |8¡3ð |8©5±¸#¹s¸(Õ1CÁSÐ1HÕ+Iñ |8rC   c           	     óì  a aaa€ S P                   P                  R \        P                  R/ 4       S P                  P                  4        S P                   P                  RRS P                   P                  S P                  V4      4      3/ 4       . o\        4       '       d&   S P                  S P                   P                  4      oS P                   P                  P                   F+  pR F"  pW2P                  9   g   K  VP                  V K$  	  K-  	  \        RR V 3R lR7       S P                  4        S P!                  4        S P#                  4        S P%                  4        S P'                  4        S P)                  4        S P+                  4        S P-                  4        S P.                  '       d0   S P.                  P1                  S P                   P                  4       S P3                  4       oS P5                  RS P6                   24      o\9        SR.4       \;        RSR	R	R	R
7      p\<        P?                  RV4       \@        PC                  RV4       \        RV3R lR7       R VV V3R llp\E        4       PG                  R\H        PJ                  ! 4       RS P6                  /S PL                  R	R7       S PN                  PQ                  RRR4       VS PS                  S4      3# )r‹   r�   r]  c                  ó   € R RRR/# )rš   Ú&compiled_autograd_graph_pre_reorderingr`  ÚstringrJ   rJ   rC   rA   rb  Ú6AutogradCompilerInstance.end_capture.<locals>.<lambda>ª  s   € ØÐ@Ø˜Hñ!rC   c                  óª   <€ \        S P                  P                  S P                  P                  R S P                   R24      P                  RR7      # )ÚCompiledAutogradÚPreReorderingF©Úprint_output)r%   r
  r7  r‡   r-  Úprint_readablerÆ   s   €rA   rb  r¦  ®  sG   ø€ œ{Ø—‘×#Ñ#Ø—‘×$Ñ$Ø" 4§7¡7 )¨=Ð9ó ÷ ‰n¨%ˆnÓ0ð	 1rC   re  r¨  r£   zCompiled autograd graphT)Úinclude_deviceÚinclude_strideÚcoloredz%sÚcompiled_autograd_graphc                  ó(   <€ S P                  R R7      # )Frª  )r¬  )r‡   s   €rA   rb  r¦  Ù  s   ø€ ˜u×3Ñ3ÀÐ3ÔGrC   )rg  c                ó¨   € V ^8„  d   QhR\         R\        3,          R\        R\        R\        R\        R\        R\        \        \        3,          /# )	r<   Úcompiled_fn.r£   r  r  ÚhooksÚpacked_inputsr=   )r   r   r¥   )r@   s   "rA   rB   Ú:AutogradCompilerInstance.end_capture.<locals>.__annotate__Ü  s_   € ÷ $	4ñ $	4Ü! #¤s (Õ+ð$	4äð$	4ô ð$	4ô ð	$	4ô
 ð$	4ô ð$	4ô ”3œ�8�_ñ$	4rC   c                 óF  <€  R s SP                  '       d   SP                  P                  V4       . p\        V4       Fu  w  rxVS9   g   K  V^ 8”  dP   VP	                  \
        P                  ! ^ V4      4       \
        P                  P                  VR,          ^4       Kd  VP	                  V4       Kw  	  S F+  p	W,          P                  4       P                  R R7      W&   K-  	  \        4       ;_uu_ 4        \        SP                  4      ;_uu_ 4        V ! WW4V4      p
SP                  '       d   SP                  P                  V
4       V
uuRRR4       uuRRR4       Rs #   + '       g   i     M; iRRR4       M  + '       g   i     M; iRs R#   Rs i ; i)T)Únon_blockingNFre  )Úin_compiled_autograd_regionr0  r­   r·   r™   rE   rã  rÜ   Úmaybe_mark_dynamicÚ
pin_memoryr[  Ú_disablerú   r-  r½   )r³  r£   r  r  r´  rµ  Úfiltered_sizesr¬   Úintegerr¼   r°   Úruntime_inputs_to_moverƒ   r—  s   &&&&&&     €€€rA   Úruntime_wrapperÚ=AutogradCompilerInstance.end_capture.<locals>.runtime_wrapperÜ  sC  ø€ ð4Ø.2Ð+à×#×#Ð#Ø×$Ñ$×5Ñ5°fÔ=à!#�Ü$-¨eÖ$4‘L�CØ˜nÖ,à" Qœ;Ø*×1Ñ1´%·+²+¸aÀÓ2IÔJÜ!ŸM™M×<Ñ<¸^ÈBÕ=OÐQRÖSà*×1Ñ1°'Ö:ñ %5ó 0�AØ &¥	× 4Ñ 4Ó 6× ;Ñ ;ÈÐ ;Ó N�F“Iñ 0ô —Z•ZÔ!5°d·g±g×!>Õ!>Ù%Ø°Àó�Cð ×'×'Ð'Ø×(Ñ(×.Ñ.¨sÔ3Ø÷ "?Ñ!>—Z‘Zð /4Ñ+÷ "?×!>ú—Z—Z—Z�Zúð /4Ò+ø¨eÑ+úsM   ƒF —1F ÁB.F Ã;FÄ9E)	Å
FÅ
F Å)E9Å4FÅ<	F ÆF	ÆF ÆF r8   r   r!  NrJ   )Útensor_metaÚexample_valuerR  )*r
  r&  r   Ú_exec_final_callbacks_stubr  r  r¨  Ú
create_argr¥  rS   ru  r‡   r“   rh  r    Údelay_unpack_hook_nodesÚreorder_tensor_pre_hook_nodesÚ'reorder_pre_hook_nodes_to_schedule_asapÚreorder_accumulate_grad_nodesÚ%reorder_pre_hook_nodes_to_mimic_eagerÚ reorder_post_acc_grad_hook_nodesÚreorder_post_hook_nodesrŒ  r0  r    r›  rŸ  r-  r   r   Úcompiled_autograd_logÚinfork  rl  r   Úlog_event_endr1  r2  r3  r   Ú__exit__rþ   )	rƒ   r¶  rž   ÚfieldÚlazy_graph_coderÀ  r‡   r¿  r—  s	   f&    @@@rA   Úend_captureÚ$AutogradCompilerInstance.end_captureŽ  su  û€ Ø�‰×#Ñ#ØÜ&×AÑAØØô		
ð 	�
‰
×ÑÔØ�‰×"Ñ"ØØØ�^‰^×&Ñ& t§}¡}°WÓ'=Ó>Ð@Øô		
ð -/ÐÜ%×'Ò'Ø%)×%BÑ%BÀ4Ç>Á>×CWÑCWÓ%XÐ"ð
 —N‘N×(Ñ(×.Ô.ˆDÛ@�ØŸI™IÖ%ØŸ	™	 %Ò(ó Añ /ô
 	Øñô1õ	
ð 	×$Ñ$Ô&Ø×*Ñ*Ô,Ø×4Ñ4Ô6Ø×*Ñ*Ô,Ø×2Ñ2Ô4Ø×-Ñ-Ô/Ø×$Ñ$Ô&ð 	�‰Œ
Ø××ÐØ×Ñ×,Ñ,¨T¯^©^×-AÑ-AÔBð ×1Ñ1Ó3ˆà×(Ñ(Ð+;¸D¿G¹G¸9Ð)EÓFˆÜ˜E H :Ô.Ü0Ø%ØØØØô
ˆô 	×"Ñ" 4¨Ô9Ü×Ñ˜$ Ô0ÜØ%ÜGõ	
÷
$	4ò $	4ôL 	"Ó#×1Ñ1ØÜ�LŠL‹NØ˜Ÿ™Ð!Ø×ÑØ"&ð 	2ô 	
ð 	×Ñ×%Ñ% d¨D°$Ô7Ø × 0Ñ 0°Ó 7Ð7Ð7rC   c                ón   <€ V ^8„  d   QhRS[ S[,          RS[S[P                  P
                  ,          /# )r<   r•   r=   )r   r   r  rE   rˆ   r¦  )r@   rd   s   "€rA   rB   rÿ     s,   ø€ ÷ ñ ™H¡S�Mð ©d±5·8±8·=±=Õ.Añ rC   c                ó„   € V  Uu. uF.  p\        V4      \        P                  P                  J g   K,  VNK0  	  ppV# u upi rN   )r˜   rE   rˆ   r¦  )r•   r—  r“   s   &  rA   Úget_all_nodesÚ&AutogradCompilerInstance.get_all_nodes  s7   € ñ !Ó=™D�q¤D¨£G¬u¯x©x¯}©}Ð$<—�™DˆÐ=Øˆùò >s   …)=³=c                óN   <€ V ^8„  d   QhRS[ P                  P                  RS[/# rx  r�  )r@   rd   s   "€rA   rB   rÿ     s#   ø€ ÷ ñ ™UŸX™XŸ]™]ð ©tñ rC   c                óÎ   € V P                   R 8X  gR   V P                   R8X  dC   V P                  \        P                  J d%   V P                  ^ ,          P                   R 8X  d   R# R# )r%  r‹   TF)r�   rŽ   r–   r—   r•   )rž   s   &rA   Úis_placeholderÚ'AutogradCompilerInstance.is_placeholder  sF   € à�7‰7�mÔ#Ø�G‰G�Ô&Ø—‘œx×/Ñ/Ó/Ø—	‘	˜!•—‘ =Ô0áÙrC   c                ó   <€ V ^8„  d   QhRR/# rÂ   rJ   )r@   rd   s   "€rA   rB   rÿ     s   ø€ ÷ -ñ -¨tñ -rC   c                óx  € V P                   P                  P                  R\        R7       EF	  pVP                  ^ ,          VP                  ^,          VP                  ^,          rCpRp\        V\        P                  P                  4      '       d4   VP                  \        P                  J d   TpVP                  ^ ,          p\        V P                  W#V.4      4      pWaP                  Jg   KÈ  V P                  V4      '       d   Ká  VP!                  V4       Vf   Kø  VP!                  V4       EK  	  R# )zí
Usage of AOTAutograd causes all the accumulate_grad_ nodes to get pushed to the end of
the graph.  This differs from eager mode, which schedules them as soon as possible. This
pass attempts to reorder the graph to mimic eager behavior.
r‹   rŒ   N)r
  r‡   r”   r   r•   rr   rE   rˆ   r¦  rŽ   r–   r—   Úmaxr×  ÚprevrÛ  r™   )rƒ   rž   rŸ   Úvariable_grad_nodeÚ	grad_noder–  Úargs   &      rA   rÉ  Ú6AutogradCompilerInstance.reorder_accumulate_grad_nodes  sô   € ð —N‘N×(Ñ(×3Ñ3ØÔ';ð 4÷ 
ˆDð —	‘	˜!•Ø—	‘	˜!•Ø—	‘	˜!•ð -6ˆJð
  ˆLä˜9¤e§h¡h§m¡m×4Ò4Ø×$Ñ$¬×(8Ñ(8Ó8à(�Ø(×-Ñ-¨aÕ0�	äØ×"Ñ" JÀIÐ#NÓOóˆCð Ÿ)™)Õ#¨D×,?Ñ,?À×,DÔ,DØ—
‘
˜4Ô ØÔ+Ø—J‘J˜|×,ó-
rC   c                ó   <€ V ^8„  d   QhRR/# rÂ   rJ   )r@   rd   s   "€rA   rB   rÿ   :  s   ø€ ÷ %ñ %¨ñ %rC   c                óü   € V P                   P                  P                  R\        R7       FL  pVP                  P                  RR4      R8w  d   K&  \        VP                  4      pVP                  V4       KN  	  R# )z`
We can delay unpack hooks until they are needed, even later than in the eager autograd engine.
r‹   rŒ   r/  Nr8  )	r
  r‡   r”   r   rÒ   rå   Úminrf  Úprepend)rƒ   rž   Ú
first_users   &  rA   rÆ  Ú0AutogradCompilerInstance.delay_unpack_hook_nodes:  sd   € ð —N‘N×(Ñ(×3Ñ3Ø¤yð 4ö 
ˆDð �{‰{�‰˜{¨DÓ1°]ÔBÙä˜TŸZ™Z›ˆJØ×Ñ˜tÖ$ó
rC   c                ó   <€ V ^8„  d   QhRR/# rÂ   rJ   )r@   rd   s   "€rA   rB   rÿ   G  s   ø€ ÷ *ñ *¨tñ *rC   c                ó”  € V P                   P                  P                  R\        R7       F˜  pVP                  P                  RR4      R8w  d   K&  VP                  ^ ,          pVP                  ^,          pW1P                  Jg   K]  V P                  V4      '       d   Kv  VP                  V4       VP                  V4       Kš  	  R# )zë
Usage of AOTAutograd causes all the tensor_pre_hook nodes to get pushed
to the end of the graph. This differs from eager mode, which schedules
them as soon as possible. This pass attempts to reorder the graph to
mimic eager behavior.
r‹   rŒ   r/  NrA  )
r
  r‡   r”   r   rÒ   rå   r•   rà  rÛ  r™   )rƒ   rž   r–  Ú
input_nodes   &   rA   rÇ  Ú6AutogradCompilerInstance.reorder_tensor_pre_hook_nodesG  sš   € ð —N‘N×(Ñ(×3Ñ3Ø¤yð 4ö 
ˆDð �{‰{�‰˜{¨DÓ1Ð5FÔFÙàŸ9™9 Q�<ˆLØŸ™ 1�ˆJà§¡Õ*°4×3FÑ3FÀz×3RÔ3RØ×!Ñ! ,Ô/Ø×#Ñ# DÖ)ó
rC   c                ó   <€ V ^8„  d   QhRR/# rÂ   rJ   )r@   rd   s   "€rA   rB   rÿ   [  s   ø€ ÷ "+ñ "+¸ñ "+rC   c                ó\  € V P                   P                  P                  R\        R7       EF{  pVP                  P                  RR4      R8w  d   K'  VP                  ^ ,          pV P                  VP                  ^,          4      p. p. pV.pV Fz  pVP                  R8X  g   K  VP                  \        P                  J g   K6  VP                  VP                  ^ ,          4       VP                  V4       VP                  V4       K|  	  \        WE4       F'  w  r‰VP                  V4       VP                  V	4       K)  	  \        V4      p
W¡P                   Jg   EK6  V P#                  V
4      '       d   EKP  V
P                  V4       V F  pVP                  V4       K  	  EK~  	  R# )aR  
In this function, we schedule the pre hooks as soon as possible. This
does not match eager behavior (schedule pre hook right before its
registered node), but it can make acc grad be scheduled properly when
the pre hooks are registered to them. After reordering acc grad node, we
will reorder the pre hooks again to mimic eager behavior.
r‹   rŒ   r/  NrM  )r
  r‡   r”   r   rÒ   rå   r•   r×  r�   rŽ   r–   r—   r™   ÚzipÚremoverß  rà  rÛ  )rƒ   rž   r–  Úinput_nodesÚ	to_removeÚ	to_appendÚ
hook_blockr—  ÚaÚbrã  s   &          rA   rÈ  Ú@AutogradCompilerInstance.reorder_pre_hook_nodes_to_schedule_asap[  sQ  € ð —N‘N×(Ñ(×3Ñ3Ø¤yð 4÷ 
ˆDð �{‰{�‰˜{¨DÓ1°ZÔ?ÙàŸ9™9 Q�<ˆLà×,Ñ,¨T¯Y©Y°q­\Ó:ˆKàˆIØˆIØ˜ˆJÛ �Ø—4‘4˜?Ö*¨q¯x©x¼8×;KÑ;KÕ/KØ×$Ñ$ Q§V¡V¨A¥YÔ/Ø×$Ñ$ QÔ'Ø×%Ñ% aÖ(ñ	 !ô
 ˜IÖ1‘�Ø×"Ñ" 1Ô%Ø×"Ñ" 1Ö%ñ 2ô �kÓ"ˆCØŸ)™)Ö#¨D×,?Ñ,?À×,DÕ,DØ—
‘
˜<Ô(Û#�AØ ×'Ñ'¨Ö*ô $ó3
rC   c                ó   <€ V ^8„  d   QhRR/# rÂ   rJ   )r@   rd   s   "€rA   rB   rÿ     s   ø€ ÷ $5ñ $5°tñ $5rC   c                ó  € . pV P                   P                  P                  R\        R7       F7  pVP                  P                  RR4      R8w  d   K&  VP                  V4       K9  	  \        V4       EF  pVP                  ^ ,          p\        VP                  P                  4       4      p\        V4      ^ 8X  d   KL  \        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       g   \        R	4      h\        \!        V^ ,          P                  P                  4       4      4      pWRP                  Jg   KÕ  VP#                  V4       VP#                  V4       V F  pVP#                  V4       K  	  EK  	  R# )
zý
Usage of AOTAutograd causes all the pre_hook nodes to get pushed to the
end of the graph. This differs from eager mode, which schedules them
right before their registered node execution. This pass attempts to
reorder the graph to mimic eager behavior.
r‹   rŒ   r/  NrM  c              3   óˆ   "  € T F8  pVP                   R 8H  ;'       d    VP                  \        P                  J x € K:  	  R# 5irF  )r�   rŽ   r–   r—   rb  s   & rA   r(  ÚQAutogradCompilerInstance.reorder_pre_hook_nodes_to_mimic_eager.<locals>.<genexpr>–  s:   é € ð á!�Dð —‘˜?Ñ*×NÐN¨t¯{©{¼h×>NÑ>NÐ/NÔNÛ!ùs
   ‚A�%AFTzIExpected all users of pre_hook to be operator.getitem call_function nodes)r
  r‡   r”   r   rÒ   rå   r™   Úreversedr•   r  rf  rg  rE  ri  rx   r‘   r’   rè  )rƒ   Ú	pre_hooksrž   Úhook_getitem_noderf  Úregistered_noder—   s   &      rA   rÊ  Ú>AutogradCompilerInstance.reorder_pre_hook_nodes_to_mimic_eager  sB  € ð ˆ	Ø—N‘N×(Ñ(×3Ñ3Ø¤yð 4ö 
ˆDð �{‰{�‰˜{¨DÓ1°ZÔ?ÙØ×Ñ˜TÖ"ñ
ô ˜Y×'ˆDØ $§	¡	¨!¥Ðä˜Ÿ™Ÿ™Ó*Ó+ˆEÜ�5‹z˜QŒÙ÷ “3ñ á!ó—3—3’3ñ á!ó÷ ò ô %Ø_óð ô #¤4¨¨a­¯©×(;Ñ(;Ó(=Ó#>Ó?ˆOà§i¡iÕ/Ø×'Ñ'Ð(9Ô:Ø×'Ñ'¨Ô-Û$�GØ#×+Ñ+¨GÖ4ô  %ó) (rC   c                ó   <€ V ^8„  d   QhRR/# rÂ   rJ   )r@   rd   s   "€rA   rB   rÿ   ¥  s   ø€ ÷ #&ñ #&°$ñ #&rC   c                óV  € . pV P                   P                  P                  R\        R7       F7  pVP                  P                  RR4      R8w  d   K&  VP                  V4       K9  	  \        V4       F±  pVP                  ^ ,          pVP                  ^,          pRp\        VP                  P                  4       4       F.  pVP                  R8X  g   K  VP                  \        J g   K,  Tp M	  Vf   \        R4      hVP                  V4       VP                  V4       K³  	  R# )zî
Usage of AOTAutograd causes all the post_acc_grad_hook nodes to get
pushed to the end of the graph. This differs from eager mode, which
schedules them as soon as possible. This pass attempts to reorder the
graph to mimic eager behavior.
r‹   rŒ   r/  NrV  z8post_acc_grad_hook must have corresponding acc grad node)r
  r‡   r”   r   rÒ   rå   r™   rþ  r•   r  rf  rg  r�   rŽ   r   rx   )rƒ   Úpost_acc_grad_hooksrž   r–  rŸ   Úacc_grad_noder—  s   &      rA   rË  Ú9AutogradCompilerInstance.reorder_post_acc_grad_hook_nodes¥  s  € ð !ÐØ—N‘N×(Ñ(×3Ñ3Ø¤yð 4ö 
ˆDð �{‰{�‰˜{¨DÓ1Ð5IÔIÙØ×&Ñ& tÖ,ñ
ô Ð0Ö1ˆDØŸ9™9 Q�<ˆLØŸ™ 1�ˆJð !ˆMÜ˜*×*Ñ*×/Ñ/Ó1Ö2�Ø—4‘4˜?Ö*¨q¯x©xÔ;OÕ/OØ$%�MÙñ 3ð
 Ò$Ü$ØNóð ð
 × Ñ  Ô.Ø×Ñ Ö%ó% 2rC   c                ó   <€ V ^8„  d   QhRR/# rÂ   rJ   )r@   rd   s   "€rA   rB   rÿ   Ê  s   ø€ ÷ 8*ñ 8*¨ñ 8*rC   c           	     óÂ  a€ . pV P                   P                  P                  R\        R7       F7  oSP                  P                  RR4      R8w  d   K&  VP                  S4       K9  	  \        V4       EFå  oSP                  ^ ,          pSP                  ^,          pSP                  ^,          p\        V4      ^ 8”  d   KO  . pVP                  \        V4      4       V F?  pVP                  V3R l\        VP                  P                  4       4       4       4       KA  	  \        V4      pVP                  R8X  dË   VP                   \"        J d·   VP                  ^ ,          pRp	\        VP                  P                  4       4       FQ  p
V
P                  R8X  g   K  V
P                   \        J g   K,  V
P                  P                  RR4      R8X  g   KO  T
p	KS  	  V	e&   V	P                  V4       VP                  S4       EK–  VSP$                  Jg   EK©  V P'                  V4      '       d   EKÃ  VP                  V4       VP                  S4       EKè  	  R# )zå
Usage of AOTAutograd causes all the post_hook nodes to get pushed to the
end of the graph. This differs from eager mode, which schedules them as
soon as possible. This pass attempts to reorder the graph to mimic eager
behavior.
r‹   rŒ   r/  NrQ  c              3   ó¸   <"  € T FO  pVP                   R 8X  d8   VP                  \        J d$   SP                  P	                  RR4      R8X  d   KK  Vx € KQ  	  R# 5i)r‹   r/  NrQ  )r�   rŽ   r   rÒ   rå   )r'  rc  rž   s   & €rA   r(  ÚCAutogradCompilerInstance.reorder_post_hook_nodes.<locals>.<genexpr>å  sI   øé € ð -á =˜àŸ™ ?Ô2Ø ŸK™K¬9Ó4Ø ŸK™KŸO™O¨K¸Ó>À+ÑM÷ ’DÛ =ùs   ƒAAÁ
ArV  )r
  r‡   r”   r   rÒ   rå   r™   rþ  r•   rE  Úextendr  rf  rg  rß  r�   rŽ   r   rà  rÛ  )rƒ   Ú
post_hooksr–  r�   ró  Úinput_nodes_and_usersrí  rã  rŸ   Úpost_acc_grad_hook_noder—  rž   s   &          @rA   rÌ  Ú0AutogradCompilerInstance.reorder_post_hook_nodesÊ  sã  ø€ ð ˆ
Ø—N‘N×(Ñ(×3Ñ3Ø¤yð 4ö 
ˆDð �{‰{�‰˜{¨DÓ1°[Ô@ÙØ×Ñ˜dÖ#ñ
ô ˜Z×(ˆDØŸ9™9 Q�<ˆLØŸ9™9 Q�<ˆLØŸ)™) A�,ˆKä�<Ó  1Ô$Ùð %'Ð!Ø!×(Ñ(¬¨kÓ):Ô;Û)�
Ø%×,Ñ,ô -ä $ Z×%5Ñ%5×%:Ñ%:Ó%<Ô =ó-ö ñ *ô Ð+Ó,ˆCØ�v‰v˜Ô(¨S¯Z©ZÔ;OÓ-OØ ŸX™X a�[�
Ø*.Ð'Ü˜j×.Ñ.×3Ñ3Ó5Ö6�AàŸ™ Ö/ØŸH™H¬	Õ1ØŸH™HŸL™L¨°dÓ;Ð?SÖSà23Ò/ñ 7ð +Ò6Ø+×2Ñ2°<Ô@Ø ×'Ñ'¨Ô-Úà˜$Ÿ)™)Ö#¨D×,?Ñ,?À×,DÕ,DØ—
‘
˜<Ô(Ø×#Ñ# D×)óS )rC   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# )r<   Útr=   rÓ   )r@   rd   s   "€rA   rB   rÿ     s   ø€ ÷ "ñ "™#ð "¡#ñ "rC   c                óä  a € Vf   R # \        V\        4      '       d"   V Uu. uF  pS P                  V4      NK  	  up# \        V\        4      '       d3   \        ;QJ d    . V 3R lV 4       F  NK  	  5# ! V 3R lV 4       4      # \        V\        P
                  \        P                  34      '       d   S P                  VP                  ,          # \        V\        P                  4      '       g   V# \        S P                  V4      p\        V\        P                  P                  P                  P                  4      '       g   \!        R\#        V4       24      hVP$                  # u upi )Nc              3   óF   <"  € T F  pSP                  V4      x € K  	  R # 5irN   r  )r'  rU   rƒ   s   & €rA   r(  Ú4AutogradCompilerInstance.to_proxy.<locals>.<genexpr>
  s   øé € Ð5±1¨a˜Ÿ™ q×)Ð)³1ùs   ƒ!zExpected _ProxyTensor, got )rr   r  r¥  r¥   rE   ÚSymIntÚSymFloatr9  rž   rW   r)   r
  rˆ   rI  Úproxy_tensorÚ_ProxyTensorrx   r˜   r;  )rƒ   r  rU   r  s   f&  rA   r¥  Ú!AutogradCompilerInstance.to_proxy  s  ø€ ØŠ9ÙÜ�aœ×ÒÙ./Ó0©a¨�D—M‘M !Ö$©aÑ0Ð0Ü�aœ×Òß”5Ô5±1Ó5—5Ð5�5Ô5±1Ó5Ó5Ð5Ü�aœ%Ÿ,™,¬¯©Ð7×8Ò8Ø×,Ñ,¨Q¯V©VÕ4Ð4Ü˜!œUŸ\™\×*Ò*àˆHÜ)¨$¯.©.¸!Ó<ˆÜØœ%Ÿ(™(×/Ñ/×<Ñ<×IÑI÷
ò 
ô !Ð#>¼tÀLÓ?QÐ>RÐ!SÓTÐTØ×!Ñ!Ð!ùò 1s   ¢E-c          	      ó†   <€ V ^8„  d   QhRS[ S[,          RS[RS[S[S[S[3,          ,          R,          RS[ S[,          /# )r<   ÚobjectsrT  r  Nr=   )r   r   r  r¥   rc   rÍ   )r@   rd   s   "€rA   rB   rÿ     sM   ø€ ÷ ñ á™#•ðñ ðñ ‘e™C¡˜H•oÕ&¨Õ-ð	ñ
 
‘#�ñrC   c                ó�  € \        V\        P                  P                  4      '       dÂ   V'       d‘   \	        V4      \	        V4      8w  d%   \        R \	        V4       R\	        V4       R24      h. p\        \	        V4      4       F6  pW5,          w  rgV P                  WvR4       VP                  W%,          4       K8  	  TpM)\        \	        V4      4       Uu. uF  qRV,          NK  	  pp\	        V4      \	        V4      8w  d%   \        R\	        V4       R\	        V4       R24      h\        WRV P                  R7       V# u upi )zorigins length (z) != objects length (r  Nzobjects length (z) != proxies length (©ÚconstantÚtracer)rr   rE   rˆ   r7   rE  rx   rD  Úset_node_originr™   r,   r
  )rƒ   r  rT  r  Úbound_proxiesr¼   Únodecall_indexrŽ  s   &&&&    rA   rA  Ú0AutogradCompilerInstance.bind_objects_to_proxies  s  € ô �gœuŸx™xŸ~™~×.Ò.ßÜ�w“<¤3 w£<Ô/Ü(Ø*¬3¨w«<¨.Ð8MÌcÐRYËlÈ^Ð[\Ð]óð ð !#�Üœs 7›|Ö,�AØ07µ
Ñ-�NØ×(Ñ(¨ÀDÔIØ!×(Ñ(¨­Ö4ñ -ð (‘ä/4´S¸³\Ô/BÓCÑ/B¨! 1Ÿ:˜:Ñ/B�ÐCäˆw‹<œ3˜w›<Ô'Ü Ø"¤3 w£< .Ð0EÄcÈ'ÃlÀ^ÐSTÐUóð ô 	˜'°TÀ$Ç.Á.ÕQØˆùò Ds   ÃEc                ó&   <€ V ^8„  d   QhRS[ RS[/# )r<   Úindexr=   )rc   r&   )r@   rd   s   "€rA   rB   rÿ   3  s   ø€ ÷ ñ ©ð ±ñ rC   c                ó¢   € V P                   f   \        R4      hV P                   V,          p\        4       p\        W2R V P                  R7       V# )Nz2hooks_proxy must be set before bind_backward_stater  )r  rx   r&   r,   r
  )rƒ   r&  r;  Úbw_states   &&  rA   Úbind_backward_stateÚ,AutogradCompilerInstance.bind_backward_state3  sF   € Ø×ÑÒ#Ü Ð!UÓVÐVØ× Ñ  Õ'ˆÜ “?ˆÜ˜(°DÀÇÁÕPØˆrC   c                óf   <€ V ^8„  d   QhRS[ RS[RS[P                  P                  R,          RR/# )r<   rŽ  r#  ÚpyobjNr=   )rÍ   rc   rE   rr  ÚFunction)r@   rd   s   "€rA   rB   rÿ   ;  sB   ø€ ÷ )ñ )áð)ñ ð)ñ �~‰~×&Ñ&¨Õ-ð	)ð
 
ñ)rC   c                ó:  € R pVeD   VP                   p\        VR4      '       d&   VP                  f   \        R4      hVP                  pV V RV R2p\
        P                  ! 4       P                  4       R,          pVP                  RV4      p\        V4       R# )Ú Nr`   zÅThis compiled backward function was saved by AOTAutogradCache, which does not support
                    compiled autograd. Please turn off AOTAutogradCache using `TORCHINDUCTOR_AUTOGRAD_CACHE=0`.z (NodeCall r  z:raw_stack_trace = CapturedTraceback.extract().format()[-1]re  )
rÏ  rÙ   r]   rµ   r`   r4   Úextractr@   Úreplacer0   )	rƒ   rŽ  r#  r,  Úmaybe_aot_idÚforward_clsÚnew_codeÚraw_stack_traceÚnew_stack_traces	   &&&&     rA   r!  Ú(AutogradCompilerInstance.set_node_origin;  s¥   € ð ˆØÒØ×,Ñ,ˆKÜ�{ I×.Ò.à×2Ñ2Ò:Ü&ðsóð ð  +×2Ñ2�Ø�[  ¨k¸.Ð9IÈÐKˆÜ+×3Ò3Ó5×<Ñ<Ó>¸rÕBˆØ)×1Ñ1ØHÈ(ó
ˆô 	˜Ö(rC   )r.  r  r   rþ   r	  r
  r  r-  r0  r=  r  r<  r  r;  r  r3  r9  rN   )2rf   rg   rh   ri   r„   r  Ústaticmethodr  rX  rh  rØ  ræ  ró  rû  rÉ  r  r  r  rñ  r  r$  r}   r2  r8  rA  rI  rM  rQ  rV  ru  r|  rŒ  r›  rŸ  rÓ  r×  rÛ  rÉ  rÆ  rÇ  rÈ  rÊ  rË  rÌ  r¥  rA  r)  r!  rl   rm   rn   s   @rA   rü   rü   M  sî  ø‡ € ÷.ð .÷Cð Cð
 ÷5ó ð5÷y
ð y
÷v
ð 
÷að a÷F:ð :÷xGð G÷*
ð 
÷/ð /÷
'ð '÷Fð F÷	Dð 	D÷
ð 
÷ð ÷ ð ÷ò ÷B
ð 
÷ð ÷ð ÷ ð ÷ð ÷ð ÷"ð ÷.4ð 4÷l
ð 
÷Bð B÷4-ð -÷^Jð J÷|8ð |8ð| ÷ó ðð
 ÷ó ð÷-ð -÷<%ð %÷*ð *÷("+ð "+÷H$5ð $5÷L#&ð #&÷J8*ð 8*÷t"ð "÷&ò ÷8ð ÷)ö )rC   rü   Fc          	      óp   € V ^8„  d   QhR\         R\        3,          R\        R\        R\        R,          /# )r<   rþ   .ÚdynamicÚignore_active_disable_ctxr=   ©NNN)r   r   r?   r   )r@   s   "rA   rB   rB   c  sE   € ÷ Mñ MÜ˜#œs˜(Õ#ðMäðMô  $ðMô ÐÕ ñ	MrC   c              #   óÒ  "  € V'       g   \         '       d   R x € R # V'       d+   \        V4      \        Jd   \        R\        V4       24      h^ RIHp VP                  P                  R8X  d   Rs R x € RsR # \        P                  P                  4       '       d   ^ RIHp \        P                  P                  P                   P#                  \$        P&                  ! \(        V 4      V4      w  pp\+        4       '       d8   \        P                  P                  P                   P-                  \.        4       Rs\2        p\2        ^,          s \        P4                  P7                  R4      ;_uu_ 4        R x € R R R 4       V'       g   Rs\        P                  P                  P                   P#                  WV4       \2        ^,          s\2        V8w  d   \        R4      hR #   Rsi ; i  + '       g   i     Ly; i  T'       g   Rs\        P                  P                  P                   P#                  YV4       \2        ^,          s\2        T8w  d   \        R4      hi ; i5i)Nz!Expected dynamic to be bool, got )Ú
eval_frameÚforce_eagerTF)Úcudagraph_treeszINested Compiled Autograd Contexts must return before their parent context)Úactive_disable_ctxr˜   r?   rx   Útorch._dynamor>  Ú_stanceÚstanceÚ%compiled_autograd_enabled_force_eagerrE   r[  Úis_availableÚtorch._inductorr@  rG  rÜ   r8   Úset_autograd_compilerÚ	functoolsÚpartialrü   rK   Úset_verbose_loggerrk  Úcompiled_autograd_enabledÚdepthrr  Úset_multithreading_enabled)rþ   r:  r;  r>  r@  Úprior_compilerÚprior_dynamicÚprior_depths   &&&     rA   Ú_enablerR  b  sÞ  é € ÷4 %×);Ó);ÝçÜ�G‹}¤DÓ(Ü$Ø7¼¸W»°ÐGóð õ 	-à×Ñ×$Ñ$¨Ô5ð 59Ð1ð>Ûà8=Ò5ô �z‰z×&Ñ&×(Ò(Ý;ô
 —‘× Ñ ×2Ñ2×HÑHÜ×!Ò!Ô":¸KÓHÈ'óñØØô 0×1Ò1Ü—‘× Ñ ×2Ñ2×EÑEÄkÔRà(,Ð%äˆKÜ�Q�JˆEðÜ—^‘^×>Ñ>¸u×EÕEÛ÷ F÷ &Ø05Ð-Ü—‘× Ñ ×2Ñ2×HÑHØ"ôô ˜•
�Ü˜KÔ'Ü(Øcóð ñ (øð= 9>Ñ5ú÷* F×Eû÷ &Ø05Ð-Ü—‘× Ñ ×2Ñ2×HÑHØ"ôô ˜•
�Ü˜KÔ'Ü(Øcóð ð (üsa   ‚I'—I'¥AI'Á3G( Á7'I'ÂB2I'Å'H Å9G/Å>H ÆA"I'Ç(G,Ç,I'Ç/G?	Ç:H ÈA"I$É$I'c                ó2   € V ^8„  d   QhR\         R,          /# )r<   r=   r<  )r   )r@   s   "rA   rB   rB   ´  s   € ÷ 
ñ 
”)Ð,Õ-ñ 
rC   c               #   ó¬  "  € \         P                  P                  P                  P	                  R R4      w  p pRs\        '       g   Rs R x € V '       d   RsRs\         P                  P                  P                  P	                  W4       R #   T '       d   RsRs\         P                  P                  P                  P	                  Y4       i ; i5i)NFT)rE   rG  rÜ   r8   rH  rL  rA  )rO  rP  s     rA   r¼  r¼  ³  s±   é € ô
 	�‰×Ñ×*Ñ*×@Ñ@ÀÀuÓMñØØð !&ÐçÓØ!Ðð
ÛçØ(,Ð%Ø"ÐÜ�‰×Ñ×*Ñ*×@Ñ@Øö	
ø÷ Ø(,Ð%Ø"ÐÜ�‰×Ñ×*Ñ*×@Ñ@Øõ	
üs    ‚ACÁB ÁACÂACÃCc                ó   € V ^8„  d   QhRR/# rÂ   rJ   )r@   s   "rA   rB   rB   Ê  s   € ÷ 	(ñ 	(ˆtñ 	(rC   c                  ó”  € R s \        '       d   \        R4      h\        P                  P
                  P                  P                  RR 4       \        P                  P
                  P                  P                  R4       \        P                  P
                  P                  P                  4        \        P                  ! 4       sR# )Fz6Cannot reset while in_compiled_autograd_region is TrueN)rL  r¹  rx   rE   rG  rÜ   r8   rH  rK  Úclear_cacheÚ	itertoolsrß   r,  rJ   rC   rA   ÚresetrY  Ê  s€   € à %Ðß"Ó"ÜÐUÓVÐVÜ	‡H�H×Ñ×&Ñ&×<Ñ<¸TÀ5ÔIÜ	‡H�H×Ñ×&Ñ&×9Ñ9¸$Ô?Ü	‡H�H×Ñ×&Ñ&×2Ñ2Ô4ä—o’oÓ'‚OrC   c                ó$  € V ^8„  d   QhR\         \        P                  ,          R\         \        ,          R\         \        ,          R\        R\         \        ,          R\         \        ,          R\        R\        \        P                  ,          /# ré  )r   rE   rW   r2   r  )r@   s   "rA   rB   rB   Ø  sˆ   € ÷ Yñ YÜ”U—\‘\Õ"ðYäœÕ%ðYô œ;Õ'ðYô %ð	Yô
 œÕ%ðYô œ;Õ'ðYô %ðYô 
Œ%�,‰,ÕñYrC   c                 óî   € V ^ ,          pVP                  W4      pVf   \        R4      hVP                  V4       Wc,
          p	VP                  WEV	4      p
WŠV
P	                  \
        P                  R7      .# )rˆ  z-grad must not be None in copy_slices_prologue)Úmemory_format)Únew_empty_stridedrx   Úcopy_Ú
as_stridedÚclonerE   Úcontiguous_format)r£   rê  rë  rì  rí  rî  rï  r¨   rÖ   Úoffsetrø  s   &&&&&&&    rA   rò  rò  Ø  ss   € ð �!�9€DØ×#Ñ# JÓ=€FØ‚|ÜÐLÓMÐMØ
‡L�L�ÔØ Õ6€FØ×"Ñ" :¸VÓD€JØ 
× 0Ñ 0¼u×?VÑ?VÐ 0Ó WÐXÐXrC   c                ó  € V ^8„  d   QhR\         \        ,          R\        P                  R\         \        P                  R,          ,          R\        P                  R\        \        P                  R,          ,          /# )r<   rö  rÖ   r÷  Nrø  r=   )r   r?   rE   rW   r  )r@   s   "rA   rB   rB   í  sb   € ÷ ñ Üœt•nðä�L‰Lðô 
”%—,‘, Õ%Õ	&ðô —‘ð	ô
 
Œ%�,‰,˜Õ
ÕñrC   c                 ó  € R .\        V 4      ,          p\        \        V 4      4       F^  pW,          '       g   K  W%,          f   K  V^ 8X  d/   W%,          pVf   \        R4      hVP                  V4       WV&   KT  W%,          WE&   K`  	  V# )Nz/res[0] must not be None for needs_input_grad[0])rE  rD  rx   r^  )rö  rÖ   r÷  rø  Úgrad_inputsr¼   Úto_copys   &&&&   rA   rú  rú  í  s‰   € ð /3¨V´cÐ:JÓ6KÕ-K€KÜ”3Ð'Ó(Ö)ˆØ×ÖØ�vŠ~ÙØ�AŒvØ�&�Ø’?Ü(ØIóð ð × Ñ  Ô)Ø!'˜A“à!$¥�“ñ *ð ÐrC   )r8  rA  rM  rQ  rV  )r£   r  r  r´  Úpacked_data)TT)vrj   r  rI  rX  r–   r1  Úcollectionsr   r   Úcollections.abcr   r   r   Útypingr   r   r	   r
   r   rE   Útorch.utils._pytreeÚutilsÚ_pytreerÇ  Útorch._dispatch.pythonr   Útorch._dynamo.external_utilsr   r   r   r   r   Útorch._dynamo.sourcer   r   Útorch._dynamo.utilsr   r   r   r   Ú/torch._functorch._aot_autograd.runtime_wrappersr   r   Útorch._guardsr   r   r   r   Útorch._loggingr   r    Útorch._prims_commonr"   Útorch._subclassesr#   Útorch._subclasses.fake_tensorr$   Útorch.fxr%   Ú%torch.fx.experimental._backward_stater&   Ú"torch.fx.experimental.proxy_tensorr'   r(   r)   r*   r+   r,   Ú%torch.fx.experimental.symbolic_shapesr-   r.   Útorch.fx.tracebackr/   r0   Útorch.typesr1   r2   Útorch.utils._ordered_setr3   Útorch.utils._tracebackr4   Ú&torch._functorch._aot_autograd.schemasr5   r6   Útorch.fx.proxyr7   r«   rf   rÍ  rk  r0  rK   rS   rY   r[   ry   r{   rÀ   rÚ   r©  r:  rÄ  r„  rß   r,  rú   rü   rL  rE  r¹  rA  rM  ÚcontextmanagerrR  r¼  rY  rò  rú  rJ   rC   rA   Ú<module>rƒ     sË  ðñó  Û Û Û Û ß ,ß 9Ñ 9ß >Õ >ã ß $Ð $Ý ;÷õ ÷ <÷ó ÷÷ MÓ Lß >Ý 6Ý ,Ý 4Ý  Ý ?÷÷ ÷ Gß Bß 2Ý /Ý 4÷ ßXÝ$ðX€ñ *¨(Ð4GÓHÐ Ù Ð*EÓF€ð
 ðõ€õõ4õô(˜8ô (õ 
÷6Zñ Z÷D"#ñ "#÷J5ñ 5ñ  ƒm€ò MÐ ÙàØØ"×=Ñ=Øð	ó€ð —/’/Ó#€õ	÷D)ñ D)ðP( "Ð ð ).Ð %ð $Ð àÐ à	€ð ×ÑöMó ðMð` ×Ñô
ó ð
õ,	(õY÷*rC   