Ë
    P/æjñ´  ã                  óî  — U d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dlmZmZmZmZ d dlmZmZmZmZmZmZm Z m!Z! d dl"m#Z# d dlm$Z$ d dl%Z%d dl&Z%d dl'm(Z( d d	l)m*Z* d d
l+m,Z, d dl-m.Z.m/Z/m0Z0m1Z1 d dl&m2Z2 d dl3m4Z4m5Z5m6Z6m7Z7 d dl8m9Z9 d dl:m;Z;m<Z< d dl=m>Z? d dl@mAZA d dlBmCZCmDZD d dlEmFZFmGZG ddlHmIZImJZJmKZK ddlLmMZMmNZN ddlOmPZPmQZQmRZRmSZSmTZT ddlUmVZVmWZWmXZXmYZY ddlZm[Z[m\Z\m]Z] ddlJm^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZg ddlhmiZimjZjmkZk ddllmmZm ddlnmoZo ddlpmqZqmrZrmsZsmtZt ddlKmuZu dd lvmwZwmxZxmyZymzZzm{Z{m|Z|m}Z}m~Z~mZm€Z€m�Z�m‚Z‚mƒZƒm„Z„m…Z…m†Z†m‡Z‡mˆZˆ d!e‰d"<   	 d dlŠZ‹e�j                  rdd#lŽm�Z� dd$l�m‘Z‘ dd%lm’Z’m“Z“ dd&l”m•Z•  e�j,                  e—«      Z˜e%�j2                  �j5                  e—d'«      Z›e%�j2                  �j5                  e—d(«      Zœ e�j:                  «       Zž e d)«      ZŸ e#d*«      Z  G d+„ d,«      Z¡ G d-„ d.«      Z¢ e¢«       Z£ e¢«       Z¤da¥d/e‰d0<    e�jL                  e?«      	 dN	 	 	 	 	 	 	 dOd1„«       Z§dPd2„Z¨e]�jR                  dQd3„«       Zª	 	 dR	 	 	 	 	 	 	 	 	 dSd4„Z«d a¬ e�jZ                  «       Z®d5e‰d6<   dTd7„Z¯dTd8„Z° G d9„ d:«      Z±	 	 	 dU	 	 	 	 	 	 	 	 	 dVd;„Z²d d<lm³Z³ d d=l´mµZµ e�j                  rdd>l¶m·Z·  e³«       Z¸d?e‰d@<   dWdA„Z¹	 	 dXd dBœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dYdC„Zº G dD„ dE«      Z»dZdF„Z¼d[dG„Z½d\dH„Z¾ G dI„ dJe�j~                  «      ZÀ G dK„ dL«      ZÁ	 	 	 	 	 	 d]dM„ZÂy# eŒ$ r dZ‹Y �Œëw xY w)^é    )ÚannotationsN)ÚPath)ÚCodeTypeÚ	FrameTypeÚFunctionTypeÚ
ModuleType)ÚAnyÚCallableÚDictÚListÚOptionalÚSetÚTypeVarÚUnion)Ú	ParamSpec)ÚReferenceType)ÚGlobalStateGuard)Úget_compile_pg)ÚCompileTimeInstructionCounter)Úcompile_contextÚCompileContextÚ	CompileIdÚtracing)Ú
structured)Úcompile_time_strobelight_metaÚjustknobs_checkÚ#maybe_upload_prof_stats_to_manifoldÚsignpost_event)Ú_use_lazy_graph_module)ÚConstraintViolationErrorÚGuardOnDataDependentSymNode)Ú_forward_from_src)ÚDistributedDataParallel)Ú_disable_current_modesÚis_in_torch_dispatch_mode)ÚCapturedTracebackÚformat_traceback_shorté   )ÚconfigÚexcÚtrace_rules)Úremove_dead_codeÚremove_pointless_jumps)Ú check_inst_exn_tab_entries_validÚInstructionÚis_generatorÚ propagate_inst_exn_table_entriesÚtransform_code_object)ÚCacheSizeRelevantForFrameÚcompute_cache_sizeÚexceeds_cache_size_limitÚis_recompilation)Úalways_optimize_code_objectsÚ	skip_codeÚTorchPatcher)
Úaugment_exc_messageÚBackendCompilerFailedÚCacheLimitExceededÚformat_error_msgÚInternalTorchDynamoErrorÚSkipCodeRecursiveExceptionÚTorchRuntimeErrorÚUncapturedHigherOrderOpErrorÚunimplementedÚUnsupported)ÚCheckFunctionManagerÚ&get_and_maybe_log_recompilation_reasonÚGuardedCode)ÚHooks)ÚExecutionRecord)ÚDistributedStateÚInstructionTranslatorÚ
LocalStateÚSpeculationLog)Úis_numpy)ÚCleanupManagerÚCompilationMetricsÚcountersÚdynamo_timedÚformat_bytecodeÚframe_phase_timingÚgen_record_file_nameÚget_chromium_event_loggerÚincrement_frameÚis_namedtupleÚistypeÚ
LazyStringÚorig_code_mapÚrecord_compilation_metricsÚreset_graph_break_dup_checkerÚsetup_compile_debugÚtroubleshooting_urlÚwrite_record_to_filezOptional[ModuleType]Únp)Ú
CompilerFn)ÚWrapBackendDebug)ÚBytecodeHookÚ
CacheEntry)ÚFrameStateSizeEntryÚbytecodeÚgraph_breaksÚ_TÚ_Pc                  ó   — e Zd Zy)ÚTODO_UNKNOWNN)Ú__name__Ú
__module__Ú__qualname__© ó    ú^/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/torch/_dynamo/convert_frame.pyrk   rk   Ž   s   „ Ørp   rk   c                  ó,   — e Zd Zdd„Zdd„Zdd„Zdd„Zy)	ÚTrackerc                ó0   — g | _         t        «       | _        y ©N)ÚseenÚsetÚseen_ids©Úselfs    rq   Ú__init__zTracker.__init__“   s   € Ø35ˆŒ	Ü"%£%ˆ�rp   c                óÜ   ‡ ‡— t        |«      Š‰‰ j                  vrQt        j                  |ˆˆ fd„«      }‰ j                  j                  |«       ‰ j                  j                  ‰«       y y )Nc                ó:   •— ‰j                   j                  ‰«      S ru   )rx   Úremove)Ú_Úidxrz   s    €€rq   ú<lambda>zTracker.add.<locals>.<lambda>š   s   ø€ °D·M±M×4HÑ4HÈÓ4M€ rp   )Úidrx   ÚweakrefÚrefrv   ÚappendÚadd)rz   Ú
strong_objÚobjr€   s   `  @rq   r†   zTracker.add—   sR   ù€ Ü�‹nˆØ�d—m‘mÑ#Ü—+‘+˜jÔ*MÓNˆCØ�I‰I×Ñ˜SÔ!Ø�M‰M×Ñ˜cÕ"ð $rp   c                ó0   — t        |«      | j                  v S ru   )r‚   rx   )rz   Úitems     rq   Ú__contains__zTracker.__contains__ž   s   € Ü�$‹x˜4Ÿ=™=Ð(Ð(rp   c                ól   — | j                   j                  «        | j                  j                  «        y ru   )rv   Úclearrx   ry   s    rq   r�   zTracker.clear¡   s    € Ø�	‰	�‰ÔØ�‰×ÑÕrp   N)ÚreturnÚNone)r‡   r   rŽ   r�   )rŠ   r   rŽ   Úbool)rl   rm   rn   r{   r†   r‹   r�   ro   rp   rq   rs   rs   ’   s   „ ó(ó#ó)ôrp   rs   zOptional[GlobalStateGuard]Úinitial_global_statec                óJ   — t        | ||«      }t        |j                  «       |S ru   )Úoriginal_forward_from_srcr8   Ú__code__)ÚsrcÚglobalsÚ	co_fieldsÚresults       rq   Úfx_forward_from_src_skip_resultr™   ¬   s#   € ô ' s¨G°YÓ?€FÜˆf�o‰oÔØ€Mrp   c                óR   ‡ — t        j                  ‰ «      dˆ fd„«       }‰ |_        |S )zê
    Context manager to:
        1) Save/restore torch.is_grad_enabled() state
        2) Save/restore python random state
        3) Save/restore torch random state
        4) Monkey patch torch.fx.graph_module._forward_from_src
    c                 ó|  •— t        «       }t        j                  «       }t        j                  j	                  «       5  t        j
                  «       }t        j                  «       }t        j                  «       }t        j                  «       }t        j                  j                  «       }d }	t        j                  j                  «       rt        j                  j                  «       }	t        j                  j                  «       }
t        j                  j                  j                   }t"        t        j                  j                  _        t%        «       }t'        j(                  «       }|j+                  t        j                  j,                  j/                  «       «       	  ‰| i |¤Ž|j1                  «        |j1                  «        t        j                  j3                  |«       t        j4                  j6                  j9                  |«       t        j:                  ||¬«       t        j<                  |«       t        j                  j?                  |«       |	�t        j                  j?                  |	«       t        j                  jA                  |
«       |t        j                  j                  _        |jC                  «       sJ d|jE                  «       › d�«       ‚cd d d «       S # |j1                  «        |j1                  «        t        j                  j3                  |«       t        j4                  j6                  j9                  |«       t        j:                  ||¬«       t        j<                  |«       t        j                  j?                  |«       |	�t        j                  j?                  |	«       t        j                  jA                  |
«       |t        j                  j                  _        |jC                  «       sJ d|jE                  «       › d�«       ‚w xY w# 1 sw Y   y xY w)N)Ú	warn_onlyzGlobal z7state changed while dynamo tracing, please report a bug)#r   ÚtorchÚis_grad_enabledÚ_CÚ_PreserveDispatchKeyGuardÚis_inference_mode_enabledÚ$are_deterministic_algorithms_enabledÚ-is_deterministic_algorithms_warn_only_enabledÚrandomÚgetstateÚget_rng_stateÚcudaÚis_availableÚ_get_cublas_allow_tf32ÚfxÚgraph_moduler"   r™   r]   Ú
contextlibÚ	ExitStackÚenter_contextÚ_symbolic_traceÚ_maybe_revert_all_patchesÚcloseÚ_set_grad_enabledÚautogradÚ	grad_modeÚ_enter_inference_modeÚuse_deterministic_algorithmsÚsetstateÚset_rng_stateÚ_set_cublas_allow_tf32ÚcheckÚreason)ÚargsÚkwargsÚguardsÚprior_grad_modeÚprior_inference_modeÚprior_deterministicÚprior_warn_onlyÚpy_rng_stateÚtorch_rng_stateÚcuda_rng_stateÚ
allow_tf32Úprior_fwd_from_srcÚcleanupÚ
exit_stackÚfns                 €rq   Ú_fnz"preserve_global_state.<locals>._fnÀ   sþ  ø€ ä!Ó#ˆÜ×/Ñ/Ó1ˆô
 �X‰X×/Ñ/Ó1ñ $	fÜ#(×#BÑ#BÓ#DÐ Ü"'×"LÑ"LÓ"NÐÜ#×QÑQÓSˆOÜ!Ÿ?™?Ó,ˆLÜ#Ÿl™l×8Ñ8Ó:ˆOØ!ˆNÜ�z‰z×&Ñ&Ô(Ü!&§¡×!9Ñ!9Ó!;�ÜŸ™×8Ñ8Ó:ˆJÜ!&§¡×!6Ñ!6×!HÑ!HÐÜ6UŒE�H‰H×!Ñ!Ô3Ü)Ó+ˆGä#×-Ñ-Ó/ˆJØ×$Ñ$Ü—‘×(Ñ(×BÑBÓDôðfÙ˜4Ð* 6Ñ*à—‘”Ø× Ñ Ô"Ü—‘×*Ñ*¨?Ô;Ü—‘×(Ñ(×>Ñ>Ð?SÔTÜ×2Ñ2Ø'°?õô —‘ Ô-Ü—‘×*Ñ*¨?Ô;Ø!Ð-Ü—J‘J×,Ñ,¨^Ô<Ü—‘×/Ñ/°
Ô;Ø:L”—‘×%Ñ%Ô7à—L‘L”Nðfà˜VŸ]™]›_Ð-Ð-dÐeófØ"÷G$	fñ $	føð* —‘”Ø× Ñ Ô"Ü—‘×*Ñ*¨?Ô;Ü—‘×(Ñ(×>Ñ>Ð?SÔTÜ×2Ñ2Ø'°?õô —‘ Ô-Ü—‘×*Ñ*¨?Ô;Ø!Ð-Ü—J‘J×,Ñ,¨^Ô<Ü—‘×/Ñ/°
Ô;Ø:L”—‘×%Ñ%Ô7à—L‘L”Nðfà˜VŸ]™]›_Ð-Ð-dÐeófÙ"ú÷G$	fð $	fús&   ¾E'P2Æ&K2Æ-D;P2Ë2D=P/Ð/P2Ð2P;©r¼   z_P.argsr½   z	_P.kwargsrŽ   rh   )Ú	functoolsÚwrapsÚ_torchdynamo_orig_callable)rÊ   rË   s   ` rq   Úpreserve_global_staterÐ   ·   s2   ø€ ô ‡_�_�RÓô+fó ð+fðZ &(€CÔ"Ø€Jrp   c                óp  ‡‡— | j                   t        v ry| j                   j                  D ]‚  }|| j                  v sŒ| j                  |   }t	        |t
        «      r%|j                  j                  d«      s|t        u r yt        sŒ]t        j                  sŒn|t        u st        |«      sŒ‚ y i Šdˆˆfd„Š| j                  j                  «       D ]  } ‰|«      sŒ y t        j!                  d| j                   j"                  | j                   j$                  | j                   j&                  «       y)z+Check if the frame has torch.* related bitsTztorch.c           	     ó˜  •‡ — t        ‰ «      }|‰v r‰|   S d‰|<   t        ‰ t        j                  t        j                  j
                  f«      s4t        ‰ t        «      r.t        ‰ t        j                  j
                  «      r
d‰|<   ‰|   S t        j                  rDt        r>t        ‰ t        j                  «      st        ‰ t        j                  «      r
d‰|<   ‰|   S t        ‰ t        t        f«      rt!        ˆfd„‰ D «       «      ‰|<   ‰|   S t        ‰ t"        «      r5t        ‰ j%                  «       «      }t!        ˆfd„|D «       «      ‰|<   ‰|   S t        ‰ t&        t(        t*        t        d«      t,        f«      r
d‰|<   ‰|   S t/        ‰ «      r3t1        ‰ d«      r't!        ˆˆ fd„‰ j2                  D «       «      ‰|<   ‰|   S y)z)Recursively check if the obj has a tensorFTc              3  ó.   •K  — | ]  } ‰|«      –— Œ y ­wru   ro   ©Ú.0ÚvÚ
has_tensors     €rq   ú	<genexpr>z:has_tensor_in_frame.<locals>.has_tensor.<locals>.<genexpr>  s   øè ø€ Ò">°Q¡:¨a§=Ñ">ùó   ƒc              3  ó.   •K  — | ]  } ‰|«      –— Œ y ­wru   ro   rÔ   s     €rq   rØ   z:has_tensor_in_frame.<locals>.has_tensor.<locals>.<genexpr>"  s   øè ø€ Ò"A°Q¡:¨a§=Ñ"AùrÙ   NÚ_fieldsc              3  óB   •K  — | ]  } ‰t        ‰|«      «      –— Œ y ­wru   )Úgetattr)rÕ   rÖ   r×   rˆ   s     €€rq   rØ   z:has_tensor_in_frame.<locals>.has_tensor.<locals>.<genexpr>(  s   øè ø€ Ò"TÀ1¡:¬g°c¸1«o×#>Ñ"Tùs   ƒ)r‚   Ú
isinstancer�   ÚTensorÚnnÚModulerX   ÚtypeÚ
issubclassr)   Útrace_numpyr`   ÚndarrayÚgenericÚlistÚtupleÚanyÚdictÚvaluesÚstrÚintÚfloatr�   rW   ÚhasattrrÛ   )rˆ   Úobj_idrë   r×   rx   s   `  €€rq   r×   z'has_tensor_in_frame.<locals>.has_tensor  s‚  ù€ ä�C“ˆØ�XÑØ˜FÑ#Ð#Ø ˆ�Ñä�cœEŸL™L¬%¯(©(¯/©/Ð:Ô;Ü�3œÔ¤*¨S´%·(±(·/±/Ô"Bà#ˆH�VÑØ˜FÑ#Ð#ä×ÒÝÜ˜œRŸZ™ZÔ(¬J°s¼B¿J¹JÔ,Gà#ˆH�VÑØ˜FÑ#Ð#Ü�Cœ$¤˜Ô'Ü"Ó">¸#Ô">Ó>ˆH�VÑØ˜FÑ#Ð#Ü�CœÔô ˜#Ÿ*™*›,Ó'ˆFÜ"Ó"A¸&Ô"AÓAˆH�VÑØ˜FÑ#Ð#Ü�Cœ#œs¤E¬4°«:´tÐ<Ô=Ø$ˆH�VÑØ˜FÑ#Ð#Ü˜3Ô¤G¨C°Ô$;Ü"Ô"TÈÏÉÔ"TÓTˆH�VÑØ˜FÑ#Ð#ð rp   z0skipping because no torch.* %s             %s %sF)rˆ   ÚobjectrŽ   r�   )Úf_coder7   Úco_namesÚ	f_globalsrÞ   r   rl   Ú
startswithr�   r`   r)   rä   rM   Úf_localsrë   ÚlogÚdebugÚco_nameÚco_filenameÚco_firstlineno)Úframerù   rˆ   Úvaluer×   rx   s       @@rq   Úhas_tensor_in_framerþ   ò   sþ   ù€ ð ‡|�|Ô3Ñ3Øð —<‘<×(Ñ(ò 	ˆØ�e—o‘oÒ%Ø—/‘/ 'Ñ*ˆCÜ˜#œzÔ*Ø—‘×'Ñ'¨Ô1°S¼E±\áæ”f×(Ó(¨c´R©i¼8ÀC½=Ùð	ð !#€Hö(ðV —‘×&Ñ&Ó(ò ˆÙ�eÕÙðô ‡I�Ið	à�‰×ÑØ�‰× Ñ Ø�‰×#Ñ#ôð rp   c                óŒ   — d }t        | d«      r)t        | |«      }t        || j                  «       || _        t        | |¬«       y )NÚexec_record©Úexport)rï   rT   r_   r   Úrecord_filenamer:   )ÚeÚcoderü   r  r  s        rq   Úexception_handlerr  A  s?   € ð €OÜˆq�-Ô Ü.¨q°$Ó7ˆÜ˜_¨a¯m©mÔ<Ø+ˆÔä˜ &Ö)rp   z/typing.Counter[Union[int, FrameStateSizeEntry]]ÚFRAME_COMPILE_COUNTERc                ó<   — t         j                  rt        | «      S | S ru   )r)   ÚcprofileÚcprofile_wrapper)Úfuncs    rq   Úmaybe_cprofiler  V  s   € Ü‡‚Ü Ó%Ð%Ø€Krp   c                óD   ‡ — t        j                  ‰ «      dˆ fd„«       }|S )Nc                 óP  •‡— t        j                  «       }|sJ d«       ‚t        d‰j                  › dt	        |«      j                  dd«      › d�«      }t        j                  «       }|j                  «        t        j                  «       } |j                  ‰g| ¢­i |¤Ž}t        j                  «       |z
  }|j                  «        t        j                  d‰j                  ||«       t        j                  |«      }	 |j!                  |«       t        j                  d|«       |j'                  d	«      }		 t)        j*                  d
dddddt	        |«      gt(        j,                  ¬«      }
t)        j.                  dddt	        |	«      g|
j0                  ¬«       t        j                  d|	«       t?        t	        |«      «      xŠr#t@        jB                  jE                  dˆfd„«       |S # t"        $ r t        j%                  d|«       Y Œýw xY w# t2        $ rˆ t        j                  d«       |j5                  t        j6                  j8                  «      j;                  d«       |j5                  t        j6                  j<                  «      j;                  d«       Y Œðw xY w)NzTrace id is Nonez/tmp/r   ú/z.profilez7### Cprofile for %s trace id [%s] took %.3f seconds ###zCannot write to %szRaw profile at %sz.svgÚ	gprof2dotz-fÚpstatsz"--node-label=total-time-percentagez!--node-label=self-time-percentagez--node-label=total-time)ÚstdoutÚdotz-Tsvgz-o)Ústdinz Generated SVG from profile at %szxFailed to generate SVG from profile -- dumping stats instead.Try installing gprof2dot and dot for a better visualizationé   Úlinkc                 ó   •— d‰ dœS )NÚcprofile_manifold_url)ÚnameÚurlro   )Úmanifold_links   €rq   r�   z;cprofile_wrapper.<locals>.profile_wrapper.<locals>.<lambda>–  s   ø€ Ð!8ÀÑO€ rp   )#r   Úcurrent_trace_idr   rl   rì   ÚreplaceÚcProfileÚProfileÚenableÚtimeÚruncallÚdisabler÷   Úwarningr  ÚStatsÚ
dump_statsÚPermissionErrorÚ	exceptionÚwith_suffixÚ
subprocessÚPopenÚPIPEÚ
check_callr  ÚFileNotFoundErrorÚ
sort_statsÚSortKeyÚTIMEÚprint_statsÚ
CUMULATIVEr   r�   Ú_loggingÚtrace_structured)r¼   r½   Útrace_idÚprofile_pathÚprofÚstart_tsÚretvalÚprofile_latencyÚpsÚsvg_pathÚgprof2dot_processr  r  s              @€rq   Úprofile_wrapperz)cprofile_wrapper.<locals>.profile_wrapper]  sH  ù€ ä!×2Ñ2Ó4ˆÙÐ+Ð+Ó+ˆxÜØ�D—M‘M�? !¤C¨£M×$9Ñ$9¸#¸sÓ$CÐ#DÀHÐMó
ˆô ×ÑÓ!ˆØ�‰ŒÜ—9‘9“;ˆØ�—‘˜dÐ4 TÒ4¨VÑ4ˆÜŸ)™)›+¨Ñ0ˆØ�‰ŒÜ�‰ØEØ�M‰MØØô		
ô �\‰\˜$Óˆð	>Ø�O‰O˜LÔ)ô 	�‰Ð'¨Ô6Ø×+Ñ+¨FÓ3ˆð	EÜ *× 0Ñ 0àØØØ8Ø7Ø-Ü˜Ó%ðô "—‘ô!Ðô ×!Ñ!Ø˜ ¤s¨8£}Ð5Ø'×.Ñ.õô �K‰KÐ:¸HÔEô @Ü�Óó
ð 
ˆ=ð 
ô �N‰N×+Ñ+ØÛOôð ˆøôK ò 	>Ü�M‰MÐ.°Ö=ð	>ûô, !ò 	EÜ�K‰KðNôð �M‰Mœ&Ÿ.™.×-Ñ-Ó.×:Ñ:¸2Ô>Ø�M‰Mœ&Ÿ.™.×3Ñ3Ó4×@Ñ@ÀÖDð	Eús&   ÄG/ Ä;A9H Ç/HÈHÈBJ%Ê$J%rÌ   )rÍ   rÎ   )r  r?  s   ` rq   r
  r
  \  s'   ø€ Ü‡_�_�TÓô:ó ð:ðx Ðrp   c                  ód   — e Zd Z	 	 	 d	 	 	 	 	 	 	 	 	 dd„Zed	d„«       Zddœ	 	 	 	 	 	 	 	 	 	 	 d
d„Zy)ÚConvertFrameAssertNc                óP   — t        «        || _        || _        || _        || _        y ru   )r\   rÏ   Ú
_one_graphÚ_exportÚ_export_constraints)rz   Úcompiler_fnÚ	one_graphr  Úexport_constraintss        rq   r{   zConvertFrameAssert.__init__ž  s(   € ô 	&Ô'Ø*5ˆÔ'Ø#ˆŒØˆŒØ#5ˆÕ rp   c                ó   ‡ — ˆ fd„S )Nc                ó\   •— t        | ‰j                  ‰j                  ‰j                  «      S ru   )Úconvert_frame_assertrC  rD  rE  ©Úbackendrz   s    €rq   r�   z8ConvertFrameAssert._clone_with_backend.<locals>.<lambda>®  s$   ø€ Ô3Ø�T—_‘_ d§l¡l°D×4LÑ4Ló 
€ rp   ro   ry   s   `rq   Ú_clone_with_backendz&ConvertFrameAssert._clone_with_backend¬  s   ø€ ó
ð 	
rp   r   ©Úskipc               ón  — t        «        |j                  }t        ||«      }t        j	                  |«       |t
        v ry t        j                  j                  d«      r-t        j                  j                  d«      |j                  k7  ry |j                  dk(  r|j                  j                  d«      ry |j                  dk(  ry |j                  dk(  rQ|j                  j                  t        j                  j                  t        j                   j"                  «      «      ry |j                  dk(  r|j                  dk(  ry |j                  dk(  r%|j                  dk(  rt%        |j&                  «      sy t)        |«      rt+        d	«       t-        |«      sy t/        «       ad
|vrt2        |d
<   t2        dz  a|d
   }t5        |t6        «      sJ ‚t8        |   }	t8        |xx   dz  cc<   t;        ||	«      }
t=        dd|j                  |t?        |
«      |j                  |j@                  |jB                  |jD                  dœ«       tG        |j                  |jH                  |jJ                  |j&                  | jL                  | jN                  | jP                  | jR                  ||||||
|dz   ¬«      S )NÚTORCHDYNAMO_DEBUG_FUNCTIONz	<genexpr>)ztransformers/file_utils.pyztransformers/utils/generic.pyzdiffusers/utils/outputs.pyÚ__setattr__r{   z<module>ú<string>z<lambda>Ú	generatorÚ_idr(   Údynamoz_convert_frame_assert._compile)rù   Úframe_idÚ
compile_idrú   rû   Ú
cache_sizeÚaccumulated_cache_size)Úframe_staterY  rP  )*rV   rò   r4   Úinput_codesr†   Úoutput_codesÚosÚenvironÚgetrù   rú   Úendswithrõ   ÚpathÚdirnamer�   ÚoptimÚ__file__r�   Ú
f_builtinsr0   rB   rþ   r   r‘   ÚFRAME_COUNTERrÞ   rí   r  r   r   rì   rû   Ú+num_cache_entries_with_same_id_matched_objsÚnum_cache_entriesÚ_compilerô   rö   rÏ   rC  rD  rE  )rz   rü   Úcache_entryÚhooksr\  rP  r  rZ  rX  Úframe_compile_idrY  s              rq   Ú__call__zConvertFrameAssert.__call__²  s]  € ô 	Ôà�|‰|ˆä'¨¨{Ó;ˆ
Ü�‰˜ÔØ”<ÑØä�J‰J�N‰NÐ7Ô8Ü—
‘
—‘Ð;Ó<ÀÇÁÒLàØ�<‰<˜;Ò&¨4×+;Ñ+;×+DÑ+Dðô,
ð Ø�<‰<˜=Ò(ð Ø�<‰<˜:Ò%¨$×*:Ñ*:×*EÑ*EÜ�G‰G�O‰OœEŸK™K×0Ñ0Ó1ô+
ð
 ð
 �<‰<˜:Ò%¨$×*:Ñ*:¸jÒ*HØð �L‰L˜JÒ&Ø× Ñ  JÒ.Ü˜×)Ñ)Ô*ð ä˜ÔÜ˜+Ô&ä" 5Ô)Øô  0Ó1Ðð ˜Ñ#Ü!.ˆK˜ÑÜ˜QÑˆMØ˜uÑ%ˆÜ˜(¤CÔ(Ð(Ð(ä0°Ñ:ÐÜ˜hÓ'¨1Ñ,Ó'ä˜xÐ)9Ó:ˆ
äØØ,àŸ<™<Ø$Ü! *›oØ#×/Ñ/Ø"&×"5Ñ"5Ø(×TÑTØ*4×*FÑ*Fñô	
ô Ø�L‰LØ�O‰OØ�N‰NØ×ÑØ×+Ñ+Ø�O‰OØ�L‰LØ×$Ñ$ØØØØØ#Ø!Ø˜‘ô
ð 	
rp   ©TFN)
rF  ra   rG  r�   r  r�   rH  úOptional[typing.Never]rŽ   r�   )rŽ   z*Callable[[CompilerFn], ConvertFrameAssert]©rü   r   rl  úOptional[CacheEntry]rm  rG   r\  ú*Dict[str, Union[int, FrameStateSizeEntry]]rP  rí   rŽ   úOptional[GuardedCode]©rl   rm   rn   r{   ÚpropertyrN  ro  ro   rp   rq   rA  rA  �  s¢   „ ð ØØ59ð6àð6ð ð6ð ð	6ð
 3ð6ð 
ó6ð ò
ó ð
ð ñl
àðl
ð *ðl
ð ð	l
ð
 @ðl
ð ðl
ð 
ôl
rp   rA  c                ó   — t        | |||«      S )z&Fully convert a frame into an FX graph)rA  )rF  rG  r  rH  s       rq   rK  rK  !  s   € ô ˜k¨9°fÐ>PÓQÐQrp   )ÚOrderedDict)ÚRemovableHandle)ÚOutputGraphzDict[int, BytecodeHook]Ú_bytecode_hooksc                óJ   — t        t        «      }| t        |j                  <   |S )zÂRegister hooks for bytecode generated by Dynamo. The hook can do some
    logging, as well as return a new code object to be used. Please refer
    to `BytecodeHook` for the hook signature.
    )rz  r|  r‚   )ÚhookÚhandles     rq   Úregister_bytecode_hookr€  7  s!   € ô
 œ_Ó-€FØ!%„O�F—I‘IÑØ€Mrp   rO  c          !     ó�  ‡ ‡‡‡‡‡‡‡‡‡‡‡1‡2‡3‡4‡5‡6‡7‡8‡9‡:‡;‡<— ddl mŠ2m}mŠ<m} dŠ5d Š7d Š;t
        	 	 	 	 	 	 dˆ2ˆˆ ˆˆ4ˆˆˆˆˆˆ6ˆˆ7ˆ:ˆ;ˆ<fd„«       }	 	 	 	 	 	 	 	 	 	 dˆ1fd„}t        d¬«      t        	 	 	 	 	 	 	 	 	 	 dˆˆ4ˆ5ˆ7ˆ9fd„«       «       Š1t        t        j                  «      5  t        t        ‰«      «      5  t        «       Š9t        «       Š6t        «       Š:t        «       x}rt!        |t#        «       «      Š4nd Š4t$        j&                  j(                  j+                  «        d Š8t-        |
«      r|rt/        |	|«      Š8t1        |
‰«      \  }}|rxd d	„}d!ˆ8fd
„}t2        j5                  d|t7        t        |«       |‰ «       |«       t8        «       t        j:                  rt=        d«      rt?        |› d�«      ‚tA        |› d�«       t2        jC                  d‰ jD                  ‰ jF                  ‰ jH                  ‰dz   djK                  tM        jN                  d‰z   ¬«      jQ                  «       «      «       tS        jT                  tV        «      Š3tY        «       }|j[                  «        t$        j\                  j_                  dˆ ˆ3ˆfd„«       ta        j`                  «       }d }d }d }d }t$        j&                  jb                  jd                  d   d   }d }	  |‰ ‰||«      }|‰;ri ‰;jf                  _4        ddl1m5}  tm        | «      }!|�€\‰7��Y|!tn        v �rPtq        ‰7jr                  «      }"tq        ‰7jt                  jr                  «      }#‰7jw                  «       }$tq        ‰7jx                  jz                  «      }%tq        ‰7j|                  «      }&tn        |!   j                  dd «      }'tn        |!   j                  dd «      }(tn        |!   j                  dd «      })tn        |!   j                  dd «      }*‰7j€                  D �+ch c]  }+|+j‚                  ’Œ },}+‰7j„                  D �+ch c]  }+|+j‚                  ’Œ }-}+t$        j&                  jb                  jd                  d   d   |z
  }.nKd }"d }#d }$d }%d }&d }'d }(d })d }*t        i «      },t        i «      }-t        «       Š9ta        j`                  «       |z
  Š5d }.t‡        tm        ‰«      |!‰ jD                  ‰ jF                  ‰ jH                  |
jˆ                  |
jŠ                  |"|#|$|%|&||'|(|)|*|||||,|-‰9‰5|d u|.«      }/t�        |/«       t$        j&                  j(                  j�                  «        cd d d «       cd d d «       S c c}+w c c}+w # t�        $ rÅ}0t“        |0«      j‚                  }tm        |0«      }t•        |0‰ |‰¬«       t—        j˜                  |0‰«      \  }}t›        |0tœ        tž        t         t¢        t¤        t¦        |t¨        |f	«      r‚ t«        t“        |0«      j‚                  › dtm        |0«      › �«      j­                  |0j®                  «      d ‚d }0~0ww xY w# ‰;ri ‰;jf                  _4        ddl1m5}  tm        | «      }!|�€h‰7��e|!tn        v �r\tq        ‰7jr                  «      }"tq        ‰7jt                  jr                  «      }#‰7jw                  «       }$tq        ‰7jx                  jz                  «      }%tq        ‰7j|                  «      }&tn        |!   j                  dd «      }'tn        |!   j                  dd «      }(tn        |!   j                  dd «      })tn        |!   j                  dd «      }*‰7j€                  D �+ch c]  }+|+j‚                  ’Œ nc c}+w },}+‰7j„                  D �+ch c]  }+|+j‚                  ’Œ nc c}+w }-}+t$        j&                  jb                  jd                  d   d   |z
  }.nKd }"d }#d }$d }%d }&d }'d }(d })d }*t        i «      },t        i «      }-t        «       Š9ta        j`                  «       |z
  Š5d }.t‡        tm        ‰«      |!‰ jD                  ‰ jF                  ‰ jH                  |
jˆ                  |
jŠ                  |"|#|$|%|&||'|(|)|*|||||,|-‰9‰5|d u|.«      }/t�        |/«       t$        j&                  j(                  j�                  «        w xY w# 1 sw Y   nxY wd d d «       y # 1 sw Y   y xY w)"Nr   )ÚbisectÚBisectValidationExceptionÚtranslation_validation_enabledÚValidationExceptiong        c                ó˜  •— ‰j                  «        t        | ‰‰‰
‰|‰‰‰‰‰‰	‰‰¬«      Š	 t        ‰j                  j                  «      5  ‰j                  «       5  ‰j                  «        d d d «       d d d «       ‰j                  j                  «        ‰j                  Š‰€J ‚‰j                  sJ ‚‰j                  | d d  |j!                  ‰j"                  «       t$        j&                  r.t)        | «       t+        | «       t-        t/        | «      «      | d d  y y # 1 sw Y   Œ²xY w# 1 sw Y   Œ¶xY w# t        j                  $ r ‰j                  «        ‚ t        j                  t        j                  f$ r ‚ t        $ r%  ‰«       r ‰‰j                  j                  «       ‚ w xY w# ‰j                  j                  «        w xY w)N)r\  Úspeculation_logÚdistributed_state)ÚrestartrJ   r   ÚoutputÚtracing_contextÚset_current_txÚrunr*   ÚUnspecializeRestartAnalysisr�   ÚSpeculationRestartAnalysisÚ	SkipFrameÚ	ExceptionÚ	shape_envÚcall_cleanup_hooksÚoutput_instructionsÚupdateÚcode_optionsr)   Údead_code_eliminationr1   r.   r-   r,   )Úinstructionsr–  r‚  Úbuiltinsr  rF  rˆ  r  rH  r\  r–   ÚlocalsÚmutated_closure_cell_contentsrG  rŠ  r‡  Útracerr„  s     €€€€€€€€€€€€€€€€rq   Ú	transformz_compile.<locals>.transform`  s˜  ø€ ð 	×ÑÔ!Ü&ØØØØØØØØØØØ)Ø#Ø+Ø/ô
ˆð"	/Ü˜Ÿ™×6Ñ6Ó7ñ ¸×9NÑ9NÓ9Pñ Ø—
‘
”÷÷ ð �M‰M×,Ñ,Ô.à—‘ˆØÐ!Ð!Ð!Ø×)Ò)Ð)Ð)Ø ×4Ñ4ˆ‘QˆØ×Ñ˜F×/Ñ/Ô0ä×'Ò'Ü,¨\Ô:Ü,¨\Ô:Ü4Ô5EÀlÓ5SÓTˆL™‰Oð (÷)ð ú÷ ð ûä×.Ñ.ò 	Ø×!Ñ!Ô#ØÜ×.Ñ.´·±Ð>ò 	ØÜò 	Ù-Ô/Ù�v—}‘}×.Ñ.Ô/Øð	ûð
 �M‰M×,Ñ,Õ.úsH   ¬D6 ÁD*ÁDÁ-D*Á5D6 ÄD'	Ä#D*Ä*D3Ä/D6 Ä6A4F*Æ*F- Æ-G	c                óÈ   •— t        dd¬«      5  t        j                  «       5   ‰| |||«      cd d d «       cd d d «       S # 1 sw Y   nxY w	 d d d «       y # 1 sw Y   y xY w)Nz_compile.compile_innerÚentire_frame_compile©Ú
phase_name)rQ   r   Úrecord)r  rG  rm  r�  Ú_compile_inners       €rq   Úcompile_innerz_compile.<locals>.compile_inner’  su   ø€ ô Ð2Ð?UÔVñ 	IÜ.×5Ñ5Ó7ñ IÙ% d¨I°u¸iÓH÷Ið I÷	Iñ 	I÷Ið Iúð I÷	I÷ 	Iñ 	Iús!   �A¤A¯	AÁA	ÁAÁA!r¤  r   c           	     ó¼  •— t        j                   «       x}}	 	 	 	 	 	 	 	 	 	 	 	 dd„} |d| j                  | j                  | j                  | «       d }t	        j
                  «       D ])  }|t        j                  «       _        	 t        | |«      } n ‰�‰j0                  €J d«       ‚|€J ‚ |d	| j                  | j                  | j                  |«       t2        j5                  «       D ]  }
 |
| |«      }|€Œ|}Œ | t6        |<   t8        j#                  |«       ||z
  Š‰€J ‚dd
„}|€J ‚ || «      } ||«      }d}|d| j:                  d | › d�z  }|d|j:                  d | › �z  }| j:                  d | |j:                  d | k(  sJ |«       ‚d}|d| j<                  › d�z  }|d|j<                  › �z  }| j<                  |j<                  k(  sJ |«       ‚d}|d| j>                  › d�z  }|d|j>                  › �z  }| j>                  |j>                  k(  sJ |«       ‚‰j@                  r‰jC                  «       ry ‰jD                  €J ‚‰jF                  tH        jJ                  |<   tM        ‰|r|jN                  nd «      }tQ        ||jR                  ‰«      }‰jC                  «       s'|jT                  �|jU                  ‰jD                  «       |S # t        j                  $ rŽ}	t        j                  dt        t        |	j                   «      «       ‰j#                  |	j$                  xs t'        t)        |	«      «      «       t        j                   «       }|dkD  rt+        d«       Y d }	~	�Œd }	~	wt        j,                  $ rY}	t        j/                  d|	| j                  | j                  | j                  «       |rt        j/                  d«       Y d }	~	 y d }	~	ww xY w)Nc           	     ó�   — t         j                  t        j                  «      r#t         j	                  t        | ||||«      «       y y ru   )Úbytecode_logÚisEnabledForÚloggingÚDEBUGrø   rR   )Úprefixr  ÚfilenameÚline_nor  s        rq   Úlog_bytecodez6_compile.<locals>._compile_inner.<locals>.log_bytecode§  s9   € ô ×(Ñ(¬¯©Ô7Ü×"Ñ"Ü# F¨D°(¸GÀTÓJõð 8rp   zORIGINAL BYTECODEzRestarting analysis due to %séd   z100+ RestartAnalysis() callsz.Skipping frame %s %s                     %s %sz%No graph captured with one_graph=Truez;compiler collective wasn't run before compilation completedzMODIFIED BYTECODEc                óÈ   — dd l }| j                  | j                  z   t        | j                  |j
                  z  «      z   t        | j                  |j                  z  «      z   S )Nr   )ÚinspectÚco_argcountÚco_kwonlyargcountr�   Úco_flagsÚ
CO_VARARGSÚCO_VARKEYWORDS)r  r±  s     rq   Ú
count_argsz4_compile.<locals>._compile_inner.<locals>.count_argsñ  s]   € Ûð × Ñ Ø×(Ñ(ñ)ä�t—}‘} w×'9Ñ'9Ñ9Ó:ñ;ô �t—}‘} w×'=Ñ'=Ñ=Ó>ñ?ðrp   zarg mismatch: zold code object has args z, znew code object has args zfree var mismatch: zold code object has free var znew code object has free var zcell var mismatch: zold code object has cell var znew code object has cell var )r«  rì   r  rì   r¬  rì   r­  rí   r  r   rŽ   r�   ©r  r   rŽ   rí   )+r!  rù   rú   rû   Ú	itertoolsÚcountr   ra  Úattemptr2   r*   ÚRestartAnalysisr÷   ÚinforY   r'   Ú__traceback__r†   Úrestart_reasonrì   râ   rB   r�  rø   Ú
all_statesr|  rë   rZ   r^  Úco_varnamesÚco_freevarsÚco_cellvarsr  Úis_empty_graphr¾   ÚcleanupsrN   ÚinstancerD   Úguard_fail_fnrF   Úcheck_fnÚguard_export_fn)r  rG  rm  r�  Úlast_attempt_start_timeÚ
start_timer®  Úout_coder»  r  r~  Úhook_outputr·  Útotal_argcount_oldÚtotal_argcount_newÚmsgrÈ  Úguarded_coderY  rˆ  Údynamo_time_before_restartrŠ  Úrestart_reasonss                     €€€€€rq   r£  z _compile.<locals>._compile_innerœ  s:  ø€ ô 04¯y©y«{Ð:Ð *ð	Øð	Ø"ð	Ø.1ð	Ø<?ð	ØGOð	àó	ñ 	ØØ�L‰LØ×ÑØ×ÑØô	
ð ˆÜ —‘Ó(ò 	ˆGØ+2ŒN×ÑÓ Ô(ðÜ0°°yÓA�Ùð		ð< Ð%Ð):×)EÑ)EÐ)Qð	IàHó	IØQð Ð#Ð#Ð#ÙØØ�L‰LØ×ÑØ×ÑØô	
ô $×*Ñ*Ó,ò 	'ˆDÙ˜t XÓ.ˆKØÑ&Ø&‘ð	'ð
 #'Œ�hÑÜ×Ñ˜Ô"Ø%<¸zÑ%IÐ"ØÐ!Ð!Ð!ó	ð Ð#Ð#Ð#á'¨Ó-ÐÙ'¨Ó1ÐØˆØÐ*¨4×+;Ñ+;Ð<OÐ=OÐ+PÐ*QÐQSÐTÑTˆØÐ*¨8×+?Ñ+?Ð@SÐASÐ+TÐ*UÐVÑVˆà×ÑÐ0Ð0Ð1Ø×#Ñ#Ð$7Ð%7Ð8ò9ð	ð ó	ð9ð $ˆØÐ.¨t×/?Ñ/?Ð.@ÀÐCÑCˆØÐ.¨x×/CÑ/CÐ.DÐEÑEˆØ×Ñ 8×#7Ñ#7Ò7Ð<¸Ó<Ð7à#ˆØÐ.¨t×/?Ñ/?Ð.@ÀÐCÑCˆØÐ.¨x×/CÑ/CÐ.DÐEÑEˆØ×Ñ 8×#7Ñ#7Ò7Ð<¸Ó<Ð7ð �=Š=˜V×2Ñ2Ô4Øà�}‰}Ð(Ð(Ð(Ø,2¯O©OŒ×Ñ Ñ)Ü'ØÙ#(ˆE×Ò¨dó
ˆô
 # 8¨X×->Ñ->À
ÓKˆà×$Ñ$Ô&¨5×+@Ñ+@Ð+Lð ×!Ñ! &§-¡-Ô0àÐøô] ×&Ñ&ò 
BÜ—‘Ø3ÜÔ5°q·±ÓGôð
  ×#Ñ# A×$4Ñ$4Ò$D¼¼DÀ»G»ÔEä*.¯)©)«+Ð'Ø˜S’=Ü!Ð"@ÔAÿùÜ—=‘=ò Ü—	‘	ðàØ—L‘LØ×$Ñ$Ø×'Ñ'ôñ Ü—I‘IÐEÔFÝûðús&   ÂKËOË#BM,Í,OÎAOÏOc                óV   — d| j                   › d| j                  › d| j                  › d�S )Nú'z' (ú:ú))rù   rú   rû   )r  s    rq   Úformat_func_infoz"_compile.<locals>.format_func_infoD  s0   € Ø˜4Ÿ<™<˜.¨¨D×,<Ñ,<Ð+=¸Q¸t×?RÑ?RÐ>SÐSTÐUÐUrp   c                 ó   •— ‰ sy‰ d   S )Nz$Unable to find recompilation reasonséÿÿÿÿro   )Úrecompile_reasonss   €rq   Úformat_guard_failuresz'_compile.<locals>.format_guard_failuresG  s   ø€ Ù(ØAØ(¨Ñ,Ð,rp   z¬torch._dynamo hit config.%s (%s)
   function: %s
   last reason: %s
To log all recompilation reasons, use TORCH_LOGS="recompiles".
To diagnose recompilation issues, see %s.z7pytorch/compiler:skip_code_recursive_on_cache_limit_hitz reachedzBtorchdynamo start compiling %s %s:%s, stack (elided %s frames):
%sé   Ú rO  Údynamo_startc                 ó.  •— dt        t        j                  ˆfd„t        j                  t        j                  d‰z   ¬«      j                  «       «      «      «      ‰ j                  ‰ j                  t        j                  ‰ j                  «      dœgz   iS )NÚstackc                ó   •— | d   ‰k7  S )Nr¬  ro   )ÚfÚconvert_frame_interns    €rq   r�   z,_compile.<locals>.<lambda>.<locals>.<lambda>ƒ  s   ø€  ! J¡-Ð3GÑ"G€ rp   é   rO  )Úliner  r¬  )rç   r¹  Ú	takewhiler   Úfrom_tracebackr&   ÚextractÚsummaryrû   rù   Úintern_stringrú   )r  rä  rP  s   €€€rq   r�   z_compile.<locals>.<lambda>€  sƒ   ø€ ØœÜ×'Ñ'ÛGÜ"×1Ñ1Ü-×5Ñ5¸1¸t¹8ÔD×LÑLÓNóóóð !%× 3Ñ 3Ø $§¡Ü$.×$<Ñ$<¸T×=MÑ=MÓ$Nñðñð€ rp   ÚinductorÚ)possibly_missed_reinplacing_opportunitiesr(   )Ú
curr_framerŸ  Úbackend_compileÚinductor_compileÚcode_genr  z: )r˜  zList[Instruction]r–  úDict[str, object]rŽ   r�   )
r  r   rG  r�   rm  rG   r�  z2Callable[[List[Instruction], Dict[str, Any]], Any]rŽ   ru  )r  r   rŽ   rì   )rŽ   rì   )XÚtorch.fx.experimental.validatorr‚  rƒ  r„  r…  rÐ   r   r  r   r)   Úuse_lazy_graph_moduler   r   rw   rL   r   rI   rK   r�   Ú_dynamoÚcallback_handlerÚrun_start_callbacksr6   rE   r5   r÷   r$  rÝ   r^   Ú&skip_code_recursive_on_cache_limit_hitr   r<   rB   rø   rù   rú   rû   Újoinr&   ré  Úformatr   rë  rf  rU   Úresetr4  r5  r!  ÚutilsrP   rŠ  Úlocal_scoperî  rì   rS   Úlenr¾   r’  Úcount_callsÚgraphÚnodesÚplaceholdersra  Únon_compliant_opsrn   Úcompliant_custom_opsrO   ri  rj  r[   Úrun_end_callbacksr‘  râ   r  r*   Úget_exc_messagerÞ   rC   r@   r;   ÚAssertionErrorr    r!   rA   r>   Úwith_tracebackr¾  )=r  r–   rš  r™  rF  rG  r  rH  rm  rl  rZ  rü   r\  rY  rP  rƒ  r…  r�  r¤  Ú
compile_pgÚexceededÚ
limit_typerØ  rÜ  Úchromium_event_logrË  Ú	fail_typeÚfail_reasonÚfail_user_frame_filenameÚfail_user_frame_linenoÚ/start_possibly_missed_reinplacing_opportunitiesrÑ  rî  Ú	frame_keyÚguard_countÚshape_env_guard_countÚgraph_op_countÚgraph_node_countÚgraph_input_countÚentire_frame_compile_timeÚbackend_compile_timeÚinductor_compile_timeÚcode_gen_timeÚopr  r  rí  Úmetricsr  r£  r‚  rä  rˆ  rÒ  r›  rŠ  rÛ  rÓ  r‡  rœ  r„  s=   ````````    ```                                  @@@@@@@@@@@@rq   rk  rk  A  s	  ÿÿþ€ ÷$ó ð ),ÐØ$(€FØ.2€Fäð/UØ'ð/UØ7Hð/Uà	÷/U÷ /Uó /Uó ð/UðbIØðIàðIð ðIð Fð	Ið
 
õIô #¨oÔ>ÜðMØðMàðMð ðMð Fð	Mð
 
÷Mð Mó ó ?ðMô^ 
 ¤× <Ñ <Ó	=ñ b?¼Ü�zÓ"ó@ñ b?ô %(£Eˆä25³%Ð%Ü(Ó*ˆÜ'Ó)Ð)ˆ:Ð)Ü 0°¼Z»\Ó JÑà $ÐÜ�‰×&Ñ&×:Ñ:Ô<ð !ÐÜ˜JÔ'©EÜ FØ˜Uó!Ðô  8¸
ÀJÓOÑˆ�*ÙóVõ-ô
 �K‰Kð<ð
 Üœ 
Ó+Ù  Ó&Ù%Ó'Ü#ôô ×<Ò<ÄØIôBô )¨J¨<°xÐ)@ÓAÐAô   ¨HÐ5Ô6ä�	‰	ØQØ�L‰LØ×ÑØ×ÑØ�1‰Hà�G‰GÔ%×-Ñ-°1°t±8Ô<×CÑCÓEÓFô	
ô4  *×7Ñ7¼ÓAÐä6Ó8ÐØ× Ñ Ô"Ü�‰×'Ñ'Øõô	
ô( —Y‘Y“[ˆ
Ø#'ˆ	Ø%)ˆØ26Ð Ø04ÐÜ:?¿-¹-×:MÑ:M×:VÑ:VØñ;
à
5ñ;7Ð7ð ˆðt	?Ù(¨¨y¸%ÀÓKˆLØñ> Ø,.�—‘Ô)å)ä˜J›ˆIàÑ#ØÑ&ØÔ!3Ò3ä! &§-¡-Ó0�Ü(+¨F×,<Ñ,<×,CÑ,CÓ(DÐ%Ø!'×!3Ñ!3Ó!5�Ü#& v§|¡|×'9Ñ'9Ó#:Ð Ü$'¨×(;Ñ(;Ó$<Ð!Ü,>¸yÑ,I×,MÑ,MØ*¨Dó-Ð)ô (:¸)Ñ'D×'HÑ'HØ% tó(Ð$ô );¸9Ñ(E×(IÑ(IØ&¨ó)Ð%ô !3°9Ñ =× AÑ AÀ*ÈdÓ S�Ø?E×?WÑ?WÖ$X¸ R§_£_Ð$XÐ!Ð$Xà.4×.IÑ.Iö(Ø(*�B—O“Oð(Ð$ð (ô —M‘M×'Ñ'×0Ñ0°Ñ<ØCñð FñFñ :ð #�Ø(,Ð%Ø!%�Ø#'Ð Ø$(Ð!Ø,0Ð)Ø'+Ð$Ø(,Ð%Ø $�Ü$'¨£GÐ!Ü'*¨2£wÐ$Ü"%£%�ä-1¯Y©Y«[¸:Ñ-EÐ*Ø<@Ð9ä(Ü�J“ØØ—‘Ø× Ñ Ø×#Ñ#Ø×FÑFØ×,Ñ,ØØ%ØØ Ø!ØØ)Ø$Ø%ØØØØ(Ø&Ø!Ø$ØØ*Ø DÐ(Ø9ó7ˆGô: ' wÔ/Ü�M‰M×*Ñ*×<Ñ<Ô>÷Eb?÷ b?ò b?ùòR %Yùò(øôs ò 	<Ü˜Q›×,Ñ,ˆIÜ˜a›&ˆKô ˜a  u°VÕ<Ü?B×?RÑ?RØ�:ó@Ñ<Ð$Ð&<ô ØäÜ%Ü)Ü"Ü,Ü/Ø'Ü0Ø-ð
ôð ô /Ü˜A“w×+Ñ+Ð,¨B¬s°1«v¨hÐ7óç ‘. §¡Ó1°tð<ûð5	<ûñ< Ø,.�—‘Ô)å)ä˜J›ˆIàÑ#ØÑ&ØÔ!3Ò3ä! &§-¡-Ó0�Ü(+¨F×,<Ñ,<×,CÑ,CÓ(DÐ%Ø!'×!3Ñ!3Ó!5�Ü#& v§|¡|×'9Ñ'9Ó#:Ð Ü$'¨×(;Ñ(;Ó$<Ð!Ü,>¸yÑ,I×,MÑ,MØ*¨Dó-Ð)ô (:¸)Ñ'D×'HÑ'HØ% tó(Ð$ô );¸9Ñ(E×(IÑ(IØ&¨ó)Ð%ô !3°9Ñ =× AÑ AÀ*ÈdÓ S�Ø?E×?WÑ?WÖ$X¸ R§_£_Ñ$XùÒ$XÐ!Ð$Xà.4×.IÑ.Iö(Ø(*�B—O“Oñ(ùò (Ð$ð (ô —M‘M×'Ñ'×0Ñ0°Ñ<ØCñð FñFñ :ð #�Ø(,Ð%Ø!%�Ø#'Ð Ø$(Ð!Ø,0Ð)Ø'+Ð$Ø(,Ð%Ø $�Ü$'¨£GÐ!Ü'*¨2£wÐ$Ü"%£%�ä-1¯Y©Y«[¸:Ñ-EÐ*Ø<@Ð9ä(Ü�J“ØØ—‘Ø× Ñ Ø×#Ñ#Ø×FÑFØ×,Ñ,ØØ%ØØ Ø!ØØ)Ø$Ø%ØØØØ(Ø&Ø!Ø$ØØ*Ø DÐ(Ø9ó7ˆGô: ' wÔ/Ü�M‰M×*Ñ*×<Ñ<Õ>ú÷Eb?ð b?ú÷ b?÷ b?ñ b?ús�   Â#b<Â8Hb'ËU"Ë"Db'Ï?U
Ðb'Ð"U
Ð5Db'Õ	b<Õ
b'Õ"	X0Õ+C X+Ø+X0Ø0X3Ø3Db$Ý]%Ý$b$Ý:^ÞDb$â$b'â'b0	â,b<â<cc                  óH   — e Zd Zdd„Zedd„«       Z	 d	 	 	 	 	 	 	 	 	 	 	 dd„Zy)	ÚConvertFramec                óD   — || _         t        |d¬«      | _        || _        y )NF)rG  )rÏ   rK  Ú_inner_convertÚ_hooks)rz   rF  rm  s      rq   r{   zConvertFrame.__init__  s    € Ø*5ˆÔ'Ü2°;È%ÔPˆÔØˆ�rp   c                ó   ‡ — ˆ fd„S )Nc                ó0   •— t        | ‰j                  «      S ru   )Úconvert_framer"  rL  s    €rq   r�   z2ConvertFrame._clone_with_backend.<locals>.<lambda>  s   ø€ œ}¨W°d·k±kÓB€ rp   ro   ry   s   `rq   rN  z ConvertFrame._clone_with_backend  s	   ø€ ãBÐBrp   c                óÌ  — t         d   dxx   dz  cc<   	 | j                  |||||dz   ¬«      }t         d   dxx   dz  cc<   |S # t        $ �r”}t        |t        «      r‚ t        |t
        «      }t        |t
        «      r«t        j                  t        j                  «      rˆt        |d«      r|t        t        |j                  «      «      5  |j                  }	dj                  t!        j"                  |	«      «      }
t        j%                  d|
d	¬
«       d d d «       n# 1 sw Y   nxY wt&        j(                  s|s‚ t+        |dd «      }|j,                  }t/        ||||«      }|rt0        j3                  |d	¬
«       nt0        j5                  |d	¬
«       t        |t6        «      r3t8        j:                  j<                  j>                  j@                  cY d }~S Y d }~y d }~ww xY w)NÚframesÚtotalr(   rO  ÚokrY  rÞ  z(Graph break: skip: from user code at:
%sT)Úexc_infor  )!rP   r!  r‘  rÞ   rA   rC   Úgraph_break_logr¨  r©  rª  rï   r   r   rY  Ú
real_stackrù  Ú	tracebackÚformat_listrø   r)   Úsuppress_errorsrÝ   rò   r=   r÷   r½  r$  r?   r�   rŸ   rõ  Ú
eval_frameÚskip_code_recursive_flag)rz   rü   rl  rm  r\  rP  r˜   r  Ú	soft_failÚ
user_stackÚuser_stack_formattedr  r  Ú	error_msgs                 rq   ro  zConvertFrame.__call__  sµ  € ô 	�Ñ˜7Ó# qÑ(Ó#ðC	LØ×(Ñ(Ø�{ E¨;¸TÀA¹Xð )ó ˆFô �XÑ˜tÓ$¨Ñ)Ó$ØˆMøÜó =	Lô ˜!Ô9Ô:Øä" 1¤kÓ2ˆIô ˜!œ[Ô)¬o×.JÑ.JÜ—‘ô/ô ˜1˜lÔ+Ü(¬¸¿¹Ó)EÓFñ 	Ø%&§\¡\˜
Ø/1¯w©wÜ%×1Ñ1°*Ó=ó0Ð,ô (×-Ñ-ØGØ0Ø%)ð .ô ÷	÷ 	ñ 	úô ×)Ò)±)Øô & aÐ):¸DÓAˆOØ—<‘<ˆDÜ(¨¨D°/À5ÓIˆIáÜ—‘˜¨T�Õ2ä—‘˜I°�Ô5ô ˜!Ô7Ô8Ü—x‘x×'Ñ'×2Ñ2×KÑKÕKó 9ð ûð=	Lús8   –.A Á
G#ÁA>GÃA	DÄ	GÄD(	Ä$B/GÇG#ÇG#N)rF  ra   rm  rG   rŽ   r�   )rŽ   z*Callable[[WrapBackendDebug], ConvertFrame])r   )rü   r   rl  rs  rm  rG   r\  rt  rP  rí   rŽ   zOOptional[Union[GuardedCode, torch._C._dynamo.eval_frame.SkipCodeRecursiveFlag]]rv  ro   rp   rq   r  r    si   „ óð
 òCó ðCð ðPàðPð *ðPð ð	Pð
 @ðPð ðPð
ôPrp   r  c                ó   — t        | |«      S )zHTry to convert a frame into an FX graph, if error leave frame unmodified)r  )rF  rm  s     rq   r%  r%  o  s   € ä˜ UÓ+Ð+rp   c                óH  — ddl m} t        j                  }dt        _        t	        | d«      5 }t        j                  |«      }d d d «       t        t        j                  j                  j                  «       t        «       j                  «       «      «      |_
        	 t        |j                  |j                  |j                  |j                  |ddd t!        «       t#        dd«      d d i t%        dd«      ¬«       |t        _        y # 1 sw Y   ŒÅxY w# |t        _        w xY w)	Nr(   )ÚeagerFÚrbr   é*   iç  )
rF  rG  r  rH  rm  rZ  rl  rü   r\  rY  )Úbackends.debuggingr8  r)   Úreplay_record_enabledÚopenrH   Úloadrê   r¹  Úchainr–   Úitemsrk  r  rš  r™  rG   r3   r   )r¬  r8  Úoriginal_replay_valÚin_filer¢  s        rq   ÚreplayrC  u  sã   € Ý)ä ×6Ñ6ÐØ#(„FÔ Ü	ˆh˜Ó	ð / Ü ×%Ñ% gÓ.ˆ÷/äœ)Ÿ/™/¨&¯.©.×*>Ñ*>Ó*@Ä'Ã)Ç/Á/ÓBSÓTÓU€F„Nð;ÜØ�K‰KØ�N‰NØ�M‰MØ�O‰OØØØØ#Ü“'Ü0°°AÓ6ØØØÜ   SÓ)õ	
ð" (;ŒÕ$÷-/ð /ûð, (;ŒÕ$ús   ®DÂAD ÄDÄD!c                ó´   — t         j                  dk  ryt        j                  | «      D ]"  }|j                  dk(  sŒ|j
                  dz  c S  t        d«      ‚)N)é   é   r   ÚRESUMErÝ  z$RESUME instruction not found in code)ÚsysÚversion_infoÚdisÚget_instructionsÚopnameÚoffsetÚRuntimeError)r  Úinsts     rq   Úfirst_real_inst_idxrP  “  sV   € Ü
×Ñ˜'Ò!ØÜ×$Ñ$ TÓ*ò $ˆØ�;‰;˜(Ó"Ø—;‘; !Ñ#Ò#ð$ô Ð=Ó
>Ð>rp   c                  ó0   — e Zd Zddœ	 	 	 	 	 	 	 	 	 	 	 dd„Zy)ÚConvertFrameProtocolr   rO  c                ó   — y ru   ro   )rz   rü   rl  rm  r\  rP  s         rq   ro  zConvertFrameProtocol.__call__�  s   € ð 	rp   Nrr  )rl   rm   rn   ro  ro   rp   rq   rR  rR  œ  sG   „ ð ñ	àð	ð *ð	ð ð		ð
 @ð	ð ð	ð 
ô	rp   rR  c                  ó,   — e Zd Zdd„Z	 	 	 	 	 	 	 	 dd„Zy)ÚCatchErrorsWrapperc                óV   —  t        j                  |«      | «       || _        || _        y ru   )rÍ   rÎ   rÏ   rm  )rz   Úcallbackrm  s      rq   r{   zCatchErrorsWrapper.__init__ª  s$   € Ø!Œ	�‰˜Ó! $Ô'Ø*2ˆÔ'Øˆ�
rp   c           	     ó¼  — |€J ‚t        j                  |j                  «      }t        j                  dk\  r#|j
                  t        |j                  «      kD  }n"|j
                  t        |j                  «      k\  }|s5|s3t        j                  s#t        d¬«      rÜt        | j                  dd«      sÅt        j                  t        j                  «      r¡t!        |j
                  t        |j                  «      «       |rd}n3t        j                  |j                  «      rd}nt        d¬«      rd}nd}t        j#                  d	|j                  j$                  ||j                  j&                  «       y |j                  j&                  d
k(  r|j                  j$                  dk(  ry t        j(                  «       dk(  r«t+        j,                  «       }|r•t.        5  ddlm}  ||j4                  | j                  j                  ¬«      }	t7        | j                  d«      sJ d«       ‚| j                  j9                  |	j:                  «      }
 |
||| j<                  |«      cd d d «       S t.        5  t?        «       5  | j                  ||| j<                  |d¬«      cd d d «       cd d d «       S # 1 sw Y   ŒMxY w# 1 sw Y   nxY wd d d «       y # 1 sw Y   y xY w)N)rE  é   F)Úinclude_infra_modesrD  ztraced frame alreadyzin skipfileszSnon-infra torch dispatch mode present, this is not supported today in torch.compilezdynamo tracing is disabledz#skipping: %s (reason: %s, file: %s)rT  Ú__new__Úddp_optimizerr   )ÚDDPOptimizer)Úbucket_bytes_capÚbackend_compile_fnrN  zJDDPOptimizer only supports callback fns that know how to clone themselves.r(   rO  ) r+   rº   rò   rH  rI  Úf_lastirP  r)   r#  r%   rÝ   rÏ   r÷   r¨  r©  rª  Úprintrø   rù   rú   Ú_get_optimize_ddp_moder#   Ú_get_active_ddp_moduleÚcompile_lockÚ"torch._dynamo.backends.distributedr]  r^  rï   rN  Ú
compile_fnrm  r$   )rz   rü   rl  r\  Úis_skipfileÚhas_started_executionÚskip_reasonÚ
ddp_moduler]  r\  Úhijacked_callbacks              rq   ro  zCatchErrorsWrapper.__call__¯  sk  € ð Ð&Ð&Ð&ä!×'Ñ'¨¯©Ó5ˆÜ×Ñ˜wÒ&Ø$)§M¡MÔ4GÈÏÉÓ4UÑ$UÑ!à$)§M¡MÔ5HÈÏÉÓ5VÑ$VÐ!ñ "ÙÜ�~Š~ä)¸eÕDÜ × ?Ñ ?ÀÈEÔRô ×Ñ¤§¡Ô.Ü�e—m‘mÔ%8¸¿¹Ó%FÔGá(Ø"8‘KÜ ×&Ñ& u§|¡|Ô4Ø"0‘KÜ.À5ÕIØ"w‘Kà">�Kä—	‘	Ø9Ø—L‘L×(Ñ(ØØ—L‘L×,Ñ,ô	ð à�<‰<×#Ñ# zÒ1°e·l±l×6JÑ6JÈiÒ6WàÜ×(Ñ(Ó*¨oÒ=Ü0×GÑGÓIˆJÙÜ!ñ ÝOá$0Ø)3×)DÑ)DØ+/×+JÑ+J×+eÑ+eô%�Mô #Ø×7Ñ7Ð9Nôð dàcódð ð ×7Ñ7×KÑKØ)×4Ñ4óð &ñ
 -Ø˜{¨D¯J©J¸ó÷ñ ô& ñ 	Ô1Ó3ñ 	à×2Ñ2Ø�{ D§J¡J°À!ð 3ó ÷	÷ 	ò 	÷'ð ú÷&	ð 	ú÷ 	÷ 	ñ 	ús1   ÇBJ1É3KÉ> J=Ê	KÊ1J:Ê=K	ËKËKN)rW  rR  rm  rG   rŽ   r�   )rü   r   rl  rs  r\  rt  rŽ   ru  )rl   rm   rn   r{   ro  ro   rp   rq   rU  rU  ©  s8   „ óð
HàðHð *ðHð @ð	Hð
 
ôHrp   rU  c                ó   — t        | |«      S ru   )rU  )rW  rm  s     rq   Úcatch_errors_wrapperrm  ú  s   € ô ˜h¨Ó.Ð.rp   ru   )r•   rì   r–   zDict[str, Any]r—   zOptional[Dict[str, str]]rŽ   r   )rÊ   úCallable[_P, _T]rŽ   rn  )rü   r   rŽ   r�   )NF)
r  r‘  r  r   rü   úOptional[FrameType]r  r�   rŽ   r�   )r  rn  rŽ   rn  rp  )
rF  ra   rG  r�   r  r�   rH  rq  rŽ   rA  )r~  rc   rŽ   rz  )NN) r  r   r–   rò  rš  rò  r™  rò  rF  ra   rG  r�   r  r�   rH  rq  rm  rG   rl  rs  rZ  r3   rü   ro  r\  z4Optional[Dict[str, Union[int, FrameStateSizeEntry]]]rY  r   rP  rí   rŽ   ru  )rF  ra   rm  rG   rŽ   r  )r¬  rì   rŽ   r�   r¸  )rW  rR  rm  rG   rŽ   rU  )ÃÚ
__future__r   Úcollectionsr¬   r  rJ  rÍ   r¹  r©  r_  r  r¤   r*  rH  Ú	threadingr!  r-  Útypingrƒ   Úpathlibr   Útypesr   r   r   r   r	   r
   r   r   r   r   r   r   Útyping_extensionsr   r   r�   Útorch._loggingÚtorch._C._dynamo.guardsr   Útorch._dynamo.distributedr   Útorch._dynamo.utilsr   Útorch._guardsr   r   r   r   r   Útorch._utils_internalr   r   r   r   Útorch.fx._lazy_graph_moduler   Ú%torch.fx.experimental.symbolic_shapesr    r!   Útorch.fx.graph_moduler"   r“   Útorch.nn.parallel.distributedr#   Útorch.utils._python_dispatchr$   r%   Útorch.utils._tracebackr&   r'   rÞ  r)   r*   r+   Úbytecode_analysisr,   r-   Úbytecode_transformationr.   r/   r0   r1   r2   rZ  r3   r4   r5   r6   r0  r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   r¾   rD   rE   rF   rm  rG   Úreplay_recordrH   Úsymbolic_convertrI   rJ   rK   rL   rM   rü  rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   Ú__annotations__Únumpyr`   ÚModuleNotFoundErrorÚTYPE_CHECKINGÚbackends.registryra   Úrepro.after_dynamorb   rc   rd   Úvariables.builderre   Ú	getLoggerrl   r÷   r4  ÚgetArtifactLoggerr§  r+  ÚRLockrd  rh   ri   rk   rs   r]  r^  r‘   rÎ   r™   rÐ   Ú#suppress_torch_distributed_warningsrþ   r  rh  ÚCounterr  r  r
  rA  rK  ry  Útorch.utils.hooksrz  Úoutput_graphr{  r|  r€  rk  r  r%  rC  rP  ÚProtocolrR  rU  rm  ro   rp   rq   ú<module>r–     s<  ðæ "ã Û Û Û 
Û Û Û Û 	Û Û Û Û 
Û Û Û Û Û Ý ß ?Ó ?ß K× KÓ KÝ 'Ý !ã Û Ý 4Ý 4Ý =ß MÓ MÝ %÷ó õ ?÷õ QÝ A÷÷ Mç &Ñ &ß G÷õ ÷ó ÷ NÑ M÷÷ ÷ ÷ñ õ
 Ý *÷ó õ "÷÷ ÷ ÷ ÷ ð, Ó ðÛð
 
×ÓÝ-Ý4ß/Ý6ð €g×Ò˜Ó!€Ø�~Š~×/Ò/°¸*ÓE€Ø—.’.×2Ò2°8¸^ÓL€ð ˆy�ŠÓ €áˆTƒ]€Ùˆtƒ_€÷	ñ 	÷ñ ñ( ‹i€Ù‹y€à37Ð Ð0Ó 7ð €‡‚Ð*Ó+àMQðØ	ðØ%ðØ2Jðàòó ,ðó8ðv ×1Ò1òKó 2ðKðb "&Øð	*Øð*à
ð*ð ð*ð ð	*ð
 
ó*ð €ð €K×ÒÓð ð ó ó
ó>÷BA
ñ A
ðL ØØ15ð	RØðRàðRð ðRð /ð	Rð
 óRõ $å -ð 
×ÓÝ)ñ ,7«=€Ð(Ó 8óð, "&ØHLðN?ð  ñ!N?Ø
ðN?àðN?ð ðN?ð  ð	N?ð
 ðN?ð ðN?ð ðN?ð /ðN?ð ðN?ð &ðN?ð *ðN?ð ðN?ð FðN?ð ðN?ð  ð!N?ð" ó#N?÷bZñ Zóz,ó;ó<?ô
˜6Ÿ?š?ô 
÷Nñ Nðb/Ø"ð/Ø+0ð/àô/øðE$ ò Ø	ƒBðús   ÆM) Í)M4Í3M4