
    3j                    J   % S r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKJrJr  SSKJr  SSKJrJrJrJrJrJr  SSKrSSKrSSKJ r   SSK!J"r"  SSK#J$r$J%r%J&r&  SS	K'J(r(J)r)J*r*J+r+J,r,  SS
K-J.r.  SSK/J0r0  SSK1J2r2  SSK3J4r4J5r5J6r6J7r7  SSK8J9r9  SSK:J;r;J<r<J=r=  SSK>J?r?J@r@JArAJBrB  SSKCJDrDJErE  SSKFJGrG  SSKHJIrI  SSKJJKrK  SSKLJMrMJNrN  SSKOJPrPJQrQJRrRJSrSJTrTJUrUJVrVJWrWJXrX  SSKYJZrZJ[r[  SSK\J]r]  SSK^J_r_  SSK`JaraJbrb  SSKcJdrd  SSKeJfrf  SSKgJhrhJiriJjrjJkrkJlrl  SSKmJnrn  SS KoJprpJqrqJrrr  SS!KsJtrtJuruJvrv  SS"KwJxrxJyryJzrzJ{r{J|r|  SS#K}J~r~  SS$KJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  SS%KJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  S&S'KJrJrJrJrJrJrJr  S&S(KJr  S&S)KJr  S&S*KJrJrJrJrJrJr  S&S+KJrJrJrJr  S&S,KJr  S&S-KJrJrJrJrJrJrJrJrJrJrJr  S&S.KJrJr  S&S/KJrJr  S&S0KJrJr  S&S1KJrJrJrJrJrJrJrJr  S&S2KJrJrJrJrJrJrJrGJ Gr GJGrGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJ	Gr	GJ
Gr
GJGrGJGrGJGrGJGrGJGrGJGr  S&S3GKGJGrGJGrGJGr  S&S4GKGJGr  S&S5GKGJGrGJGr  S&S6GKGJGr  S&S7GKGJGrGJGrGJGrGJ Gr   S&S8GK!GJ"Gr"GJ#Gr#GJ$Gr$  S&S9GK%GJ&Gr&GJ'Gr'GJ(Gr(GJ)Gr)GJ*Gr*GJ+Gr+  S&S:KGJ,Gr,GJ-Gr-GJ.Gr.GJ/Gr/  S&S;GK0GJ1Gr1GJ2Gr2GJ3Gr3  S&S<GK4GJ5Gr5GJ6Gr6GJ7Gr7GJ8Gr8GJ9Gr9GJ:Gr:GJ;Gr;GJ<Gr<GJ=Gr=GJ>Gr>GJ?Gr?GJ@Gr@GJAGrAGJBGrB   SSGKCGrD\(       a  SS>GKGGJHGrH  SS?GKIGJJGrJGJKGrK  \
GR                  " G\M5      GrN\GR                  GR                  G\MS@5      GrQSSAKGJRGrR  G\R" SB5      GrSG\R" SC5      GrTG\UGrVSDG\WSEG\X4SF jGrY " SG SH5      GrZ\GR                   " SI SJ5      5       Gr\ " SK SLG\\5      Gr]G\^" SM G\_" \	5      GR                  5        5       5      GraG\^G\b   G\FSN'   G\c" 5       GrdG\cG\b   G\FSO'   \GR                  GR                  GR                  Grh\GR                  GR                  GR                  Grj " SP SQ5      GrkSR\SE\4SS jGrlST\SU\@S-  SE\4SV jGrm  SSWSXSY\SZ\S-  S[G\nS-  S\\SE\4S] jjGroSWSXSY\SZ\SES4S^ jGrp  SS_G\nG\S   SWSXSY\SZ\S-  S[G\nS-  S\\SEG\S4S` jjGrq SS_G\nG\S   SWSXSY\GR                  GR                  Sa\GR                  S[G\nS-  S\\SEG\S4Sb jjGru  SS_G\nG\S   SWSXSY\GR                  GR                  SZ\S-  S[G\nS-  S\\SEG\S4Sc jjGrvSZ\SWSXSY\GR                  GR                  S\G\wG\x\4   S[G\nS-  S_G\nG\S   SE\4Sd jGrySTG\TSEG\nG\T   S-  4Se jGrzS_\SWSXSZ\S[G\nS-  SEG\wG\x\4   4
Sf jGr{S_G\nG\S   SWSXSY\GR                  GR                  SZ\S[G\nS-  S\G\wG\x\4   SEG\S4Sg jGr|SE\R4Sh jGr}SGq~G\cG\x   S-  G\FSi'   SGqG\bS-  G\FSj'   SEG\cG\x   4Sk jGrSlG\xSEG\X4Sm jGrSWSXSnG\xSo\GR                  SE\z4Sp jGrSGqG\cG\x   S-  G\FSq'   SGqG\bS-  G\FSr'   SEG\cG\x   4Ss jGrSlG\xSEG\X4St jGr SSo\SWSXSu\SvG\XSwG\XSE\V4Sx jjGrSSy.So\SWSXSu\S-  SzG\XS{\S-  SE\4S| jjGrSSy.So\SWSXSu\S-  SzG\XS{\S-  SE\4S} jjGr " S~ S5      GrG\GR                  5       G\Gl         " S S5      Grg! G\E a    SGrD\G\FS='    GNf = f)aq  
This module contains classes and utilities for building variable trackers in Dynamo.
Variable trackers are used to convert Python values into symbolic representations
that can be traced and transformed during graph capture.

The key classes are:

- VariableBuilder: Handles source-tracked objects that need guards and proper
  reconstruction in the output graph. Used for inputs, module attributes, etc.

- SourcelessBuilder: Handles ephemeral objects created during tracing that don't
  need source tracking or guards. Used for temporary lists, intermediate values, etc.

Variable trackers enable Dynamo to track the flow of values through the program,
maintain guards for dynamic properties, and reconstruct values in the output graph.
The builders in this module handle converting Python values into appropriate
VariableTracker instances based on their type and usage context.
    N)CallableMutableMapping)
ModuleType)Any
NamedTupleNoReturnoverloadTYPE_CHECKINGUnion)SymInt)enable_python_dispatcher)CURRENT_STREAM_INDEXget_external_object_by_indexregister_user_object)get_metrics_contextis_int_specialization_caseis_torch_symnormalize_count_iterset_feature_use)TracingContext)
flat_apply)call_torchbind)is_opaque_reference_typeis_opaque_typeis_opaque_value_typeshould_hoist)
OpaqueBase)HigherOrderOperator
OpOverloadOpOverloadPacket)
FakeTensorFakeTensorModeis_fakemaybe_get_fake_mode)is_sparse_any	safe_grad)justknobs_check)BackwardState)normalize_source_name)_DynamicScalar
DynamicInt)	_constrain_range_for_size_nested_int_aware_sort
DimDynamicRelaxedUnspecConstraintStatefulSymbolicContextSubclassSymbolicContextSymbolicContextSymIntSymbolicContextTrackedFake)immutable_dictimmutable_list)ExpandedWeight)
OrderedSet)is_traceable_wrapper_subclass"is_traceable_wrapper_subclass_type)ValueRanges)TensorWeakRef   )configgraph_break_hintsmutation_guardreplay_recordtrace_rules) get_registered_device_interfaces)InternalTorchDynamoErrorraise_observed_exceptionunimplemented)GuardBuilderinstall_guardmake_dupe_guard)auto_dynamic
auto_unsetFrameStateSizeEntryInferStrideprocess_automatic_dynamic)SideEffects)AttrProxySource
AttrSourceCallMethodItemSourceChainedSourceConstDictKeySourceConvertIntSourceCurrentStreamSourceDictGetItemSourceDictSubclassGetItemSourceDynamicScalarSourceFloatTensorSourceGetItemSource
GradSourceis_constant_sourceis_from_closure_sourceis_from_global_sourceis_from_nonlocal_sourceis_from_optimizer_source&is_from_unspecialized_nn_module_sourceListGetItemSourceLocalSourceNonSerializableSetGetItemSourceNumpyTensorSourceOptimizerSourceRandomValueSourceSkipGuardSourceSourceSubclassAttrListSourceTupleIteratorGetItemSource"UnspecializedBuiltinNNModuleSourceUnspecializedNNModuleSource) _extract_tensor_dictbuild_checkpoint_variablebuild_invoke_subgraph_variableclone_inputcommon_constant_types	dict_keys"enumerate_items_with_dict_positionget_fake_valueget_locals_to_stealget_static_address_typeis_frozen_dataclassis_functionis_function_or_wrapperis_invoke_subgraphis_lru_cache_wrapped_functionis_namedtupleis_parameter_freezing	is_typingis_utils_checkpointis_wrapper_or_member_descriptoristypenamedtuple_fieldsodict_valuesproxy_args_kwargsrange_iteratorset_example_valuetensor_always_has_static_shapetuple_iteratortuple_iterator_getitemtuple_iterator_len unwrap_with_attr_name_if_wrapperwrap_fake_exception   )AttributeMutationExistingAttributeMutationNewtypestrValueMutationExistingValueMutationNewVariableTrackerVariableTrackerMeta)BuiltinVariableConstantVariable)AutocastModeVariableCudagraphOverrideVariableDynamoConfigPatchVariableErrorOnGraphBreakVariableNullContextVariablePreserveVersionContextVariable)ConstDictVariableDefaultDictVariableMappingProxyVariableSetVariable)WorldMetaClassVariable)BuiltinMethodVariableCollectionsNamedTupleFunction!CollectiveFunctionRewriteVariable'CreateTMADescriptorExperimentalVariable!CreateTMADescriptorStableVariableFunctoolsPartialVariableSysFunctionVariableTritonKernelVariableTritonSetAllocatorVariableUserFunctionVariableWrapperUserFunctionVariable)"LocalMapWrappedHigherOrderVariable TorchHigherOrderOperatorVariable)CountIteratorVariableItertoolsVariable)LazyConstantVariableLazyVariableTracker)BaseListVariableListIteratorVariableListVariableRangeVariableSizeVariableSliceVariableTupleIteratorVariableTupleVariable)AutogradEngineVariableAutogradFunctionContextVariableAutogradFunctionVariableComptimeVariableConstantLikeVariableDebuggingVariableDelayGraphBreakVariableGetAttrVariableGetSetDescriptorVariableIgnoredFunctionVariableLambdaVariableLoggingLoggerVariableMethodWrapperVariableNumpyDTypeVariableNumpyVariableObjectVariablePythonModuleVariableRandomClassVariableRandomVariableSavedTensorBoxStringFormatVariableTorchVersionVariableTypingVariableWeakRefVariable)FSDPManagedNNModuleVariable$UnspecializedBuiltinNNModuleVariableUnspecializedNNModuleVariable)OptimizerVariable)OpaqueObjectClassVariableTorchScriptObjectVariableSDPAParamsVariable)DictKeySetVariableFrozensetVariableOrderedSetClassVariableOrderedSetVariable)EventVariableStreamContextVariableStreamVariable)NumpyNdarrayVariable$supported_const_comparison_op_valuesSymNodeVariableTensorSubclassVariableTensorVariableUnspecializedPythonVariable)DispatchKeySetVariableFuncTorchInterpreterVariableTorchCtxManagerClassVariableTorchInGraphFunctionVariable)TensorWithTFOverrideVariable#torch_function_mode_stack_state_mgrTorchFunctionModeVariable)FrozenDataClassVariableInspectVariableIntWrapperVariableKeyedJaggedTensorVariableMutableMappingVariableSourcelessGraphModuleVariableUserDefinedClassVariableUserDefinedConstantVariableUserDefinedDictVariable!UserDefinedExceptionClassVariableUserDefinedListVariableUserDefinedObjectVariableUserDefinedSetVariableUserDefinedTupleVariablenp)	PyCodegen)InstructionTranslatorInstructionTranslatorBasecudagraph_static_inputs)TypeVarVTTypeAliasTtreturnc                     [         R                  R                  [         R                  R                  R                  5         [        U S5      sS S S 5        $ ! , (       d  f       g = f)Ngrad)torch_logginghide_warnings	_internalsafe_grad_filterhasattr)r  s    Y/home/wildlama/miniconda3/lib/python3.13/site-packages/torch/_dynamo/variables/builder.pysafe_has_gradr  W  s;    		%	%enn&>&>&O&O	Pq&! 
Q	P	Ps   A
A&c                       \ rS rSrSrg)_missingi\   N__name__
__module____qualname____firstlineno____static_attributes__r      r  r  r  \  s    r  r  c                   n   \ rS rSr% \S-  \S'   \\S'   \\S'   \R                  R                  R                  S-  \S'   Sr\\S'   Sr\R                  \R                  -  S-  \S	'   S
\S\SS4S jr\S\R                  \R                  -  \-  S-  4S j5       rSS jrSS jrSS jrS\S\4S jrSrg)GraphArgi`  Nsource_examplepass_arg_as_tensorfake_tensorT	is_tensorexample_strong_refnamevaluer	  c                 0    [         R                  XU5        g N)object__setattr__)selfr&  r'  s      r  r+  GraphArg.__setattr__  s    
 	4u-r  c                     [        U R                  [        5      (       a  U R                  5       nUc   eU$ U R                  $ r)  )
isinstancer!  r<   )r,  rs     r  exampleGraphArg.example  s7    dmm]33A= =H== r  c                     [        U R                  [        R                  5      (       a7  [	        U R                  5      U l        [        U R                  5      (       d   eg g r)  )r/  r!  r  Tensorr<   r#   r#  r,  s    r  __post_init__GraphArg.__post_init__  sC    dmmU\\22)$--8DM4++,,,, 3r  c                 (    U" U R                   5        g r)  r   r,  codegens     r  reconstructGraphArg.reconstruct  s    r  c                      S U l         S U l        g r)  r!  r%  r5  s    r  eraseGraphArg.erase  s    "&r  otherc                     [        U[        5      (       d  gU R                  c  UR                  S L $ UR                  c  gU R                  R                  UR                  R                  :H  $ )NF)r/  r  r   r&  )r,  rB  s     r  __eq__GraphArg.__eq__  sW    %**;;<<4''||#;;##u||'8'888r  r?  r	  Nr;  r  r	  N)r  r  r  r  rj   __annotations__r   boolr  _subclassesr#  r!   r$  r%  r4  r   strr+  propertyr(   r1  r6  r<  r@  r*  rD  r  r  r  r  r  r  `  s    TM M" ""..99D@@ It >Bu||3d:A. .C .D . !4}DtK ! !-
'9F 9t 9r  r  c                   6   ^  \ rS rSrSU 4S jjrSS jrSrU =r$ )BackwardStateGraphArgi  c                 8   > [         TU ]  S [        5       SS SS9  g )NF)r   r!  r"  r#  r$  )super__init__r(   )r,  	__class__s    r  rQ  BackwardStateGraphArg.__init__  s&    "_$ 	 	
r  c                    ^ TR                   R                  R                  (       d   eTR                  U4S j5        TR	                  SS5        TR                  5         TR                  TR                   R                  R                  5        g )Nc                  D   > T R                  [        R                  S5      $ )Nr(   )load_import_fromr(   r  )r;  s   r  <lambda>3BackwardStateGraphArg.reconstruct.<locals>.<lambda>  s    G,,]-E-EWr  r   F)txoutputbackward_state_varadd_push_nullcall_functiondup_topstorer:  s    `r  r<  !BackwardStateGraphArg.reconstruct  se    zz  3333W	
 	a'gjj''::;r  r  rF  rG  )r  r  r  r  rQ  r<  r  __classcell__rR  s   @r  rN  rN    s    
< <r  rN  c              #      #    U  HG  u  pUR                  S 5      (       a  M  [        R                  " U5      (       d  M:  [        U5      v   MI     g7f)_N)
startswithinspectisclassid).0r&  members      r  	<genexpr>rk    s>      //??3 $+OOF$; BvJJ/s   AAAITERTOOLS_TYPE_IDSITERTOOLS_POLYFILLED_TYPE_IDSc            
       
  ^  \ rS rSrSr S7SSS\S\SS4U 4S	 jjjrS
\S\	4S jr
S
\S\	4S jrS\	S\4S jrS\4S jrS\S\4   S\\\4   S-  4S jr\S\\\S\4   4   4S j5       r\\R,                  S\S\\\S\4   4   4S j5       5       rS
\R2                  \   S\4S jrS
\R:                  \   S\4S jrS
\ RB                  RD                  RF                  S\$4S jr%S
\S\&4S jr'S
\S\	4S jr(\\R,                  S\\)\S \/\	4   4   4S j5       5       r*S
\S\	4S jr+S
\S\	4S jr,S
\-\.\S4   \/\   \0\14   S\	4S jr2S
\3S\	4S jr4S
\5S\	4S  jr6S
\S\	4S! jr7S
\8\9-  S\:\;-  4S" jr<S
\ Rz                  S#\SS4S$ jr>S
\ R~                  R                  S\	4S% jrAS
\S\	4S& jrBS
\)S\	4S' jrCS
\DS\	4S( jrE\FS
\)S)\\)/\	4   S\	4S* j5       rG\FS
\DS)\\D/\	4   S\	4S+ j5       rG\F S8S
\)\D-  \-  \-  S)SS\	4S, jj5       rG S8S
\)\D-  \-  \-  S)\\/\	4   S-  S\	4S- jjrGS
\ Rz                  SS4S. jrHS
\ Rz                  S\	4S/ jrIS
\S\	4S0 jrJ  S9S
\)S1\KS-  S2\LS-  S\	4S3 jjrMS
\DS\	4S4 jrNS
\S\	4S5 jrOS6rPU =rQ$ ):VariableBuilderi  z3Wrap a python value in a VariableTracker() instancerY  r  r   allow_lazy_constantr	  Nc                    > Uc   S5       e[         R                  " 5       c   S5       e[        TU ]  5         Xl        X l        UR                  U l        X0l        g )NzRConsider SourcelessBuilder for ephemeral objects, usually objects created locally.zExpected active TracingContext)r   try_getrP  rQ  rY  r   r&  rp  )r,  rY  r   rp  rR  s       r  rQ  VariableBuilder.__init__  s`     ! 	
`	
! %%'3U5UU3KK	 $7 r  r'  c                 ~   [         R                  " 5       n U R                  U5      U R                  R                  R
                  =R                  [         R                  " 5       U-
  -  sl        $ ! U R                  R                  R
                  =R                  [         R                  " 5       U-
  -  sl        f = fr)  )timetime_ns
_call_implrY  rZ  bytecode_tracing_timingsvariable_builder_call_ns)r,  r'  _t0s      r  __call__VariableBuilder.__call__  sy    lln	??5)GGNN33LL$LDGGNN33LL$Ls   A1 1AB<c                 0   U R                   R                  R                  R                  R	                  U R
                  5        XR                   R                  R                  ;   a  U R                   R                  R                  U   n[        U R
                  UR
                  5      nU(       a  U R                  U5        [        U[        R                  R                  5      (       a0  [        U[        5      (       a  UR                  U R
                  5        U$ U R                   R                  R                  R!                  U R
                  5      nU(       a(  U R"                  (       d  [        U[$        5      (       d  U$ U R'                  U5      nUR
                  c  U R
                  Ul        S[(        S[*        S[,        4S jnU R/                  U5      (       d  U" X5      (       ab  XR                   R                  R                  ;  a?  [1        U5      (       d/  U R                   R                  R                  R3                  X5      nSU R
                  R4                  ;  a,  XPR                   R                  R                  U R
                  '   U$ )Nr'  vtr	  c                 t    [        U 5      =(       d    [        U [        5      =(       a    [        U[        5      $ r)  )r   r/  r*   r   )r'  r~  s     r  _is_deduplicable_sym_variableAVariableBuilder._call_impl.<locals>._is_deduplicable_sym_variable  s,     U#Hz%'H2R12r  JVP_NESTING)rY  rZ  current_tracertraced_sourcesaddr   side_effectsrI   install_guardsr/  r  nnModuler   set_nn_module_stack_sourcevariable_tracker_cachegetrp  r   _wrapr   r   rI  _can_lift_attrs_to_inputsr   track_object_existingr&  )r,  r'  side_effect_result	dup_guard	cached_vtr~  r  s          r  rw  VariableBuilder._call_impl  s   %%4488EGGNN///!%!<!<U!C'5G5N5NOI##I.%11j"$A7 7 #==dkkJ%%GGNN99==dkkJ	 ''z.0 0 ! ZZ99BI	2 	2/ 	2d 	2 ..r220;;WW^^8883E::,,BB5MB  0 00ACGGNN11$++>	r  r~  c                 P    [        U5      [        [        [        [        [
        1;   $ r)  )typer   r   r   r   r   )r,  r~  s     r  r  )VariableBuilder._can_lift_attrs_to_inputs/  s'    Bx(% %
 
 	
r  c                     U R                   $ r)  r9  r5  s    r  
get_sourceVariableBuilder.get_source8  s    {{r  guards.c                     U R                  5       n U Vs/ s H  o2R                  U5      PM     nn[        USS06  0 $ s  snf ! [         a     g f = f)Nskipr   )r  
make_guardNotImplementedErrorrH   )r,  r  r   guardtmps        r  r  VariableBuilder.install_guards;  s\    "	9?@$$U+C@ 	s##		 A" 		s   A ?A A 
AAc                 @    U R                  [        R                  5      $ r)  )_type_dispatch_implr>   trace_numpy)clss    r  _type_dispatchVariableBuilder._type_dispatchD  s    &&v'9'9::r  r  c                 r   [         R                  [         R                  R                  [         R                  R
                  [         R                  R                  R                  4U R                  4[        [        [        [        R                  [         R                  4U R                  4[         R"                  U R$                  4[&        U R(                  4[*        U R,                  4[.        [0        4U R2                  4[        [4        5      U R6                  4[8        R:                  U R<                  4[>        R@                  U RB                  4[         RD                  RF                  RH                  U RJ                  4[         RL                  RN                  U RP                  4[R        RT                  U RV                  4/nU(       a6  [X        (       a+  UR[                  [X        R\                  U R^                  45        0 nU H1  u  pE[a        U[        5      (       a  UOU4 H  nXc;  d   eXSU'   M     M3     U$ r)  )1r  r4  r  	ParameterrJ  r!   functional_tensorFunctionalTensorwrap_tensortuplelistr   collectionsdequeSizewrap_listlike	itertoolscountwrap_itertools_countr   wrap_tuple_iteratorr   wrap_range_iteratorslicerangewrap_slice_rangers   wrap_literalrePatternwrap_regex_patternweakrefReferenceTypewrap_weakrefutilshooksRemovableHandlewrap_removable_handlejitScriptFunctionwrap_jit_functiontypesMappingProxyTypewrap_mapping_proxyr   appendndarraywrap_numpy_ndarrayr/  )r  r  entriesresulttsfnr  s          r  r  #VariableBuilder._type_dispatch_implH  s    LLHH&&%%00%%77HH	  lK,=,=uzzJ!! __c667S445S445U^S112()3+;+;<ZZ//0""C$4$45[[..0I0IJYY%%s'<'<=##S%;%;</
4 22NNBJJ(>(>?@ FB%b%00Rre;&q	 < 
 r  c                 V    U R                  [        R                  5        [        U5      $ r)  )r  rG   ID_MATCHr   r,  r'  s     r  r  "VariableBuilder.wrap_regex_patterns  s!    L112#E**r  c                     U R                  [        R                  5        [        R                  " U R
                  XR                  S9$ Nr9  )r  rG   
TYPE_MATCHr   buildrY  r   r  s     r  r  VariableBuilder.wrap_weakrefx  s1    L334$$TWWeKKHHr  c                     [        SSS/ S9  g )Nz3Attempted to represent unregistered RemovableHandle zDynamo attempted to build a representation of a torch.utils.hooks.RemovableHandle, which is not supported. This happens because the RemovableHandle was created in another frame.gb_typecontextexplanationhints)rF   r  s     r  r  %VariableBuilder.wrap_removable_handle|  s     	Im	
r  c                    [        US5      (       d2  [        SS[        U5      R                   3S/ [        R
                  QS9  U R                  [        R                  5        [        USU R                  [        5       S9$ )N_torchdynamo_inlinez.wrap_jit_function: missing _torchdynamo_inlineztype: zfDynamo expected a JIT function with a _torchdynamo_inline attribute, but the object does not have one.r  r   mutation_type)r  rF   r  r  r?   SUPPORTABLEr  rG   r  r   r   r   r  s     r  r  !VariableBuilder.wrap_jit_function  sz    u344H e!5!5 6746)556 	L334*!;;35	
 	
r  c           
        ^ ^ T R                  [        R                  5        T R                  [        R                  5        [	        S U 5       5      nU(       dL  [        SSUR                  5        Vs/ s H"  n[        R                  " U5      (       a  M   UPM$     sn 3SS/S9  S[        S[        S	[        [        [        4   4U 4S
 jjm[        U4S jUR                  5        5       5      n[        US S9n[        UT R                   S9nT R"                  R$                  R&                  R)                  X5      $ s  snf )Nc              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr)  r   
is_literalri  ks     r  rk  5VariableBuilder.wrap_mapping_proxy.<locals>.<genexpr>  s     F1(33A66   #%znon-const keys in mappingproxynon-const keys: z1Dynamo expects mappingproxy keys to be constants.zFEnsure your mappingproxy keys are constants (e.g. int, float, strings)r  r  vr	  c                    > [         R                  " U 5      nU n[        TR                  5       U5      n[        R                  " X5      nX%4$ r)  )r   creater[   r  r   )r  r  key
source_keysource_value	res_valuer,  s         r  build_key_value;VariableBuilder.wrap_mapping_proxy.<locals>.build_key_value  sC    "))!,CJ():JGL+221CI>!r  c              3   8   >#    U  H  u  pT" X5      v   M     g 7fr)  r  )ri  r  r  r  s      r  rk  r    s     E}tq_Q**}s   r9  )r  rG   r  MAPPING_KEYS_CHECKallrF   keysr   r  r   r  r   dictitemsr   r   r   rY  rZ  r  track_mutable)r,  r'  	all_constr  r  dict_vtr  r  s   `      @r  r  "VariableBuilder.wrap_mapping_proxy  s   L334 	L;;<FFF	8*uzz|+j|!K[KfKfghKiA|+j*klO\		"s 	"s 	"u_o5U/V 	" Eu{{}EE $E$7%gdkkBww~~**88GG+ ,ks   3D=D=c                     SSK J n  US 4[        R                  S 4[        R                  S 4/n0 nU H@  u  pE[        U[        [        45      (       a  UOU4 H  nXc;  d   eXS[        U5      '   M     MB     U$ )Nr=   )comptimec                     [        5       $ r)  )r   r  s     r  rW  .VariableBuilder._id_dispatch.<locals>.<lambda>  s    +;+=r  c                 t    [        [        4SU R                  0U R                  [        R
                  5      D6$ )Nr   )r   _dataclasses_fields_lambdar   r  rG   CLOSURE_MATCHr  s     r  rW  r
    s3    N.%;;% )),*D*DE%r  c                     [        5       $ r)  )r   r  s     r  rW  r
    s    4H4Jr  )	r  dataclassesfieldsr  __version__r/  r  r  rh  )r  r  r  r  r  r  r  s          r  _id_dispatchVariableBuilder._id_dispatch  s    
 	( =>""  JK
 FB%b5$-88RreC& "r!u D 
 r  c                 >q  ^ ^^B^C SSK JnJnJn  SSKJnJnJn  U" 5       (       a  SSKJ	n  SSK
Jn	  O " S S5      n	 " S	 S
5      nSlS jn
SlS jn " S S5      nSlS jnU" 5       (       a  SSKJn
Jn  U" 5       (       a  SSKJn  U" 5       (       a!  SS Kn[%        US5      (       a  UR&                  nT R)                  5       R+                  [-        T5      5      nUb	  U" T T5      $ T R/                  5       R+                  [1        T5      5      nUb	  U" T T5      $ [3        T[4        R6                  5      (       a  [-        T5      [4        R8                  R:                  R<                  [4        R8                  R:                  R>                  [@        4;  an  [-        T5      [B        RD                  ;  aQ  [-        T5      RF                  [4        R6                  RF                  L d  [I        T5      (       a  T RK                  T5      $ [M        T5      (       a  T RO                  [P        RR                  5        [U        [-        T5      5       Vs/ s H6  n[V        RX                  " [[        TU5      []        T R^                  U5      S9PM8     nn[a        UT R^                  [c        5       S9n[d        Rf                  " [-        T5      5      " TT R^                  US9nT Rh                  Rj                  Rl                  Ro                  TU5      $ [q        T[r        [t        Rv                  [t        Rx                  45      (       Ga  T RO                  [P        Rz                  5        [}        S T 5       5      mBTB(       d9  T Rh                  Rj                  R~                  R                  T R^                  5        S[        S[        S[        S[        [        [        4   4UBU 4S jjmC[s        UC4S j[        T5       5       5      n[q        T[t        Rv                  5      (       aZ  []        T R^                  S5      n[        U[-        T5      [        T Rh                  U5      " TR                  5      T R^                  S9nO[        U[-        T5      T R^                  S9nT Rh                  Rj                  Rl                  R                  TU5      $ [3        T[4        R8                  R                  5      (       a  T R                  T5      $ [        R                  " T5      (       a  T R                  T5      $ [3        T[4        R                  R                  5      (       aF  [        TT R^                  S9nT Rh                  Rj                  Rl                  Ro                  TU5        U$ [q        T[        [        45      (       Ga  [        S  T 5       5      (       a  [        S!S"S#S$/[        R                  QS%9  T RO                  [P        Rz                  5        T RO                  [P        RR                  5        [        n[q        T[        5      (       as  []        T R^                  S&5      n[        UR                  [P        R                  5      5        T Rh                  Rj                  R~                  R                  U5        [        n[        T5      n[        U5       VVs/ s H/  u  nn[V        RX                  " U[        T R^                  U5      S9PM1     nnnU" UT R^                  S9nT Rh                  Rj                  Rl                  Ro                  TU5      $ [q        T[        5      (       az  [}        S' T 5       5      (       ac  T Vs/ s H#  n[        RY                  T Rh                  U5      PM%     nnT RO                  [P        R                  5        [        UT R^                  S9$ [3        T[        R                  [4        R                  [4        R                  R                  R                  45      (       a3  T RO                  [P        R                  5        [        TT R^                  S9$ [        R                  " T5      (       a3  T RO                  [P        R                  5        [        TT R^                  S9$ [        T5      (       ao  [        U4S( j[4        R                  RB                  R                   5       5      (       a3  T RO                  [P        R                  5        [        TT R^                  S9$ [3        T[        R                  5      (       a3  T RO                  [P        Rz                  5        [        TT R^                  S9$ [        T5      (       a  [        T R^                  S9$ [        T5      (       a  [        T R^                  S9$ [        R                  " T5      (       a  [        R                  " T R^                  S9$ [3        T[        R                  5      (       Ga  []        T R                  5       S)5      n[        T Rh                  U5      " TGR                   5      n/ n[]        T R                  5       S*5      n [        TGR                  5       H=  u  nn!UGR                  [        T Rh                  G[        U U5      5      " U!5      5        M?     0 n"[]        T R                  5       S+5      n#TGR                  GR                  5        Hk  u  n$n[        R                  " U$5      (       d   [        S,S-U$ 3S./ [        GR                  QS%9  [        T Rh                  G[        U#U$5      5      " U5      U"U$'   Mm     [        T R                  5       R                  [P        Rz                  5      U#R                  [P        R                  5      U R                  [P        RR                  5      5        [[        TS/S 5      n%G[        UUU"U%S09$ G[        T5      (       a4  T RO                  [P        R                  5        G[        TT R^                  S9$ G[        bI  [3        TG[        GR                  5      (       a(  T GR                  G[        GR                  " T5      5      $ G[        GR                   " T5      (       Gau  G[        (       d   e[q        TG["        GR$                  5      (       af  G[&        GR(                  " TGR*                  5      (       a=  [        []        T R^                  S15      R                  [P        GR,                  5      5        OG[&        GR.                  " T5      (       a!  T RO                  [P        GR0                  5        OG[&        GR(                  " T5      (       a!  T RO                  [P        GR,                  5        OO[        T5      (       a   T RO                  [P        R                  5        OT RO                  [P        Rz                  5        G[3        TT R^                  S9$ G[        GR4                  " T5      (       a4  T RO                  [P        R                  5        G[7        TT R^                  S9$ G[        GR8                  " T5      (       a  [3        TG[        GR:                  5      (       a^  T RO                  [P        Rz                  5        []        T R^                  S25      n&[        U&R                  [P        R                  5      5        OT RO                  [P        R                  5        G[=        TT R^                  S9$ G[>        GR@                  " T5      (       aK  T RO                  [P        GR,                  5        G[>        RX                  " T Rh                  TT R^                  S9$ [q        T[4        GRB                  GRD                  GRF                  5      (       a5  T RO                  [P        GR0                  5        G[I        TT R^                  S9$ [3        T[4        GRB                  GRD                  GRJ                  5      (       Ga8  S n' TGRL                  n'/ n(T R^                  R                  [P        Rz                  5      /n)[3        U'[        5      (       a  []        T R^                  S35      n*U)GR                  U*R                  [P        RR                  5      5        [        U'5       H=  u  nnU(GR                  [        T Rh                  G[        U*U5      5      " U5      5        M?     [        U)6   T Rh                  Rj                  Rl                  Ro                  TG[Q        TT R^                  G[S        U(5      S495      $ [3        TG["        GR$                  5      (       a  [q        [[        TS5S 5      [4        GRB                  GRD                  GRF                  5      (       a  [[        TS6S75      S8:X  a  T[[        TGRT                  S8S 5      :X  a|  [        []        T R                  5       S15      R                  [P        GR,                  5      5        G[W        G[I        TGRT                  []        T R^                  S5S99S9S8[-        T5      S:9$ [3        T[4        R                  GRX                  5      (       a4  T RO                  [P        R                  5        G[[        TT R^                  S9$ T[4        R                  GR\                  GR^                  GR`                  L a0  T RO                  [P        GR,                  5        G[c        U 4S; j5      $ [3        TU5      (       a  G[e        TGRf                  5      $ [3        TU5      (       a  G[i        TGRj                  5      $ [3        TU5      (       a#  G[m        TGRn                  TGRp                  5      $ [        T5      (       a  G[        GRr                  " T5      bi  G[        GRt                  " T5      (       a  S<T Rh                  Rj                  l        G[        GRr                  " T5      GRy                  TT R^                  S9$ G[        (       a3  [3        TG[        GRz                  5      (       a  T GR}                  T5      $ [3        TG[~        5      (       ak  T[4        GR                  GR                  L a  [        S=S7S>/ S%9  T RO                  [P        Rz                  5        G[        GR                  " TT R^                  S9$ [3        T[4        GR                  GR                  5      (       a~  T RO                  [P        R                  5        []        T R^                  S?5      n+[        T Rh                  U+5      " TGR                  5      n,G[        RX                  " T Rh                  U,5      $ [3        T[4        GR                  5      (       a  T RO                  [P        Rz                  5        [3        T R^                  G[        5      (       a  G[        n-OG[        TT R^                  5      n-T Rh                  Rj                  GR                  S@G[        U-40 5      n.G[        U.GR                  T5        G[        U.TT R^                  U-SA9nT Rh                  Rj                  Rl                  Ro                  TU5      $ [3        T[4        R                  GR                  5      (       aL  T RO                  [P        Rz                  5        G[        RX                  " T Rh                  TT R^                  5      $ [3        T[4        R                  GR                  GR                  5      (       a+  T RO                  [P        R                  5        G[        T5      $ [3        T[4        GR                  5      (       a  T RO                  [P        Rz                  5        G[        TT R^                  5      n-T Rh                  Rj                  GR                  S@G[        U-40 5      n/G[        U/GR                  T5        G[        U/TU-T R^                  S9$ [q        TG[        GR                  5      (       aN  G[&        GR                  " TSBS 5      c3  T RO                  [P        Rz                  5        G[        T R^                  S9$ G[        GR                  " T5      (       ad  T RO                  [P        Rz                  5        G[        TT R^                  S9nT Rh                  Rj                  Rl                  Ro                  TU5      $ [3        T[4        GR                  GR                  5      (       aY  T RO                  [P        R                  5        G[        T R^                  5      T l/        G[        TT R^                  G[        5       S9$ [3        T[4        GR                  5      (       a,  T RO                  [P        GR                  5        G[        T5      $ G[        GR                  " T5      (       a  G[        TT R^                  S9$ T[        L a*  T RO                  [P        R                  5        G[        5       $ [1        T5      G[        ;   aI  [1        T5      G[        ;  a5  T RO                  [P        GR0                  5        G[        TT R^                  S9$ [3        TG[        5      (       Gay  [3        TG[        5      n0G[        T R^                  U05      n1[1        T5      T Rh                  Rj                  GR                  GR                  ;   a9  T Rh                  Rj                  GR                  GR                  [1        T5         n2OT Rh                  Rj                  GR                  GR                  TGR                  U1G[        GR                  SC9n3T Rh                  Rj                  GR                  GR                  U3TGR                  U1SD9n2[3        U2G[        5      (       d  G[        SE[-        U25       35      eT Rh                  Rj                  GR                  GR                  G[        GR                  " SFSGT GR                  5      [-        U25      U2U1S9n4G[        U1U2SHS SHU2SI9U4GR                  GR                  SJ'   U2GR                  GR                  n5[3        U5G[         GR                  5      (       d
   U5 SK35       eT Rh                  Rj                  GR                  GR                  G[        U2U1S 5      5        G[        RX                  " T Rh                  U4U25      $ G[        T5      (       Ga  [3        T[4        GR                  5      (       a  T R^                  OG[        T R^                  5      n1S n6TGR                  GR                  5       (       ab  T Rh                  Rj                  GR                  GR                  G[        TGR                  GR                  5      U1G[        GR                  SL9n6Om[3        T[4        GR                  5      (       a1  T Rh                  Rj                  GR                  GR                  5       n6O[        SMS7SN/ [        R                  QS%9  U6c   e[3        U6G[        5      (       d  G[        SE[-        U65       35      eT Rh                  Rj                  GR                  GR                  G[        GR                  " SFSGT GR                  5      [-        U65      U6U1S9n4G[        U1U6SHS SHU6SI9U4GR                  GR                  SJ'   U6GR                  GR                  n5[3        U5G[         GR                  5      (       d
   U5 SK35       eT Rh                  Rj                  GR                  GR                  G[        U6U1S 5      5        [3        T[4        GR                  5      (       a  U6OU6SO:H  n7G[	        U4U75      $ [3        TX45      (       a6  T RO                  [P        R                  5        G[        TS S T R^                  S9$ TU
L a
  G[        SOSP9$ TUL a
  G[        SSP9$ TUGR                  L a  G[!        5       $ TUL a  G[#        T5      $ [3        T[4        GR$                  GR&                  GR(                  5      (       a  [3        T[4        GR$                  GR&                  GR*                  5      (       a  T GR-                  T5      $ T RO                  [P        R                  5        G[/        TGR0                  TGR2                  TGR4                  TGR6                  /T R^                  SQ9$ G[8        GR:                  " T5      (       a  G[&        GR.                  " T5      (       a!  T RO                  [P        GR0                  5        O=G[&        GR(                  " T5      (       a   T RO                  [P        GR,                  5        G[9        TT R^                  S9$ G[&        GR                  " TSRSH5      (       a?  T RO                  [P        Rz                  5        G[=        TSST R^                  G[        5       S9$ G[?        T5      (       a?  T RO                  [P        Rz                  5        G[=        TSTT R^                  G[        5       S9$ TG[@        GRB                  L d+  G[@        GRD                  SU:  a*  TG[@        GRF                  L a  G[I        TT R^                  S9$ G[K        T5      (       a^  G[&        GR                  " TSVSH5      (       a?  T RO                  [P        Rz                  5        G[=        TSVT R^                  G[        5       S9$ T[t        GRL                  L a4  T RO                  [P        R                  5        G[O        TT R^                  S9$ [3        TG["        GRP                  5      (       aQ  G[R        GRT                  " T5      (       a4  T RO                  [P        R                  5        G[S        TT R^                  S9$ G[W        T5      (       a  TG[X        GRZ                  G[X        GR\                  4;   aW  T RO                  [P        R                  5        G[W        G[_        G[X        T R^                  S9TGR`                  [-        T5      S:9$ G[K        T5      (       a^  G[c        T5      u  mn8U8b  []        T R^                  U85      T l/        G[        GRd                  " T5      GRy                  TT R^                  S9$ TG[f        GRh                  L a3  T RO                  [P        R                  5        G[k        T R^                  S9$ [q        TG[f        GRh                  5      (       a  G[l        GRn                  " T5      (       af  T RO                  [P        Rz                  5        G[m        TT R^                  S9nT Rh                  Rj                  Rl                  R                  TU5        U$ [3        TG["        GRp                  G[r        GRt                  45      (       ag  T RO                  [P        GRv                  5        G[y        TT R^                  S9nT Rh                  Rj                  Rl                  Ro                  TU5        U$ [3        TG["        GRz                  5      (       a  G[}        T5      $ [3        TG["        GR~                  5      (       a  G[        T5      $ G[        [-        T5      [,        5      (       aB  G[        TG[        5      (       a+  T RO                  [P        R                  5        G[        T5      $ G[        [-        T5      [,        5      (       Ga2  T[4        GR                  GR                  GR                  [4        R8                  GR                  [4        R8                  GR                  4;   a1  G[        GRd                  " T5      GRy                  TT R^                  S9$ T[4        GRB                  GR                  L aB  T RO                  [P        GR0                  5        G[        GR                  " T Rh                  5      $ G[        T[4        R6                  5      (       a`  T[4        R6                  LaM  TRF                  [4        R6                  RF                  L a&  G[        T5      (       d  G[        TT R^                  S9$ G[        T R^                  5      (       d   T RO                  [P        GR0                  5        [3        T[,        5      (       a5  G[        T[        R                  5      (       a  G[        TT R^                  S9$ G[        T5      (       a  G[        TT R^                  S9$ G[        TT R^                  S9$ G[        GR:                  " [-        T5      5      (       Ga  SSWK/GJSn9GJTn:  [3        T[4        GR                  GR                  GR                  5      (       a  TGR                  m[4        GR                  GR                  GR                  T5      (       a  T Rh                  Rj                  GR                  GR                  G[        GR                  " SFSGT GR                  5      [-        T5      TT R^                  S9n;G[        T R^                  TSHS SHT5      U;GR                  GR                  SJ'   G[        RX                  " U;TT R^                  S9$ G[        [-        T5      5      (       a"  T RO                  [P        GR                  5        GO,G[        [-        T5      5      (       a@  T RO                  [P        Rz                  5        T RO                  [P        GR                  5        O[%        TSX5      (       d  T GR-                  T5      $ [V        GR                  " [        T Rh                  U:" T R^                  5      5      " TGR                  5       GR                  5       5      5        [V        GR                  " [        T Rh                  U9" T R^                  5      5      " TGR                  5       5      5        [4        GR                  GR                  GR                  T Rh                  Rj                  GR                  T5      n<G[        [-        T5      5      (       a   G[        [-        T5      5      (       d  Tn<Tn;GO>[B        GR                  (       a  G[        T R^                  5      (       d6  G[        T R^                  5      (       d  G[        T R^                  5      (       a;  T Rh                  Rj                  GR                  TT GR                  T R^                  S9$ T Rh                  Rj                  GR                  GR                  G[        GR                  " SFSGT GR                  5      [-        T5      U<T R^                  S9n;G[        T R^                  TSHS SHU<5      U;GR                  GR                  SJ'   G[        RX                  " U;U<T R^                  S9$ [3        T[r        [t        Rx                  45      (       Ga  [-        T5      GR                  [r        GR                  L Gaa  T RO                  [P        Rz                  5        T RO                  [P        RR                  5        T Rh                  Rj                  R~                  R                  T R^                  5        S[        S[        S[        S[        [        [        4   4U 4SY jjmC[s        UC4SZ j[        T5       5       5      n[        U[3        T[t        Rx                  5      (       a  [t        Rx                  O[r        [c        5       T R^                  S[9n=S<U=Glk        G[        TU=T R^                  S\9nT Rh                  Rj                  Rl                  Ro                  TU5      $ [3        T[        5      (       Ga  T RO                  [P        Rz                  5        T RO                  [P        RR                  5        G[        [        GR                  T5      5       Vs/ s HF  n[V        RX                  " [        GR                  TU5      G[        T R                  5       U5      S9PMH     nn[a        UT R^                  [c        5       S9n[e        TUT R^                  S]9nT Rh                  Rj                  Rl                  Ro                  TU5      $ [3        T[        5      (       Ga  T RO                  [P        Rz                  5        T RO                  [P        RR                  5        G[        [        GR                  T5      5       Vs/ s HF  n[V        RX                  " [        GR                  TU5      G[        T R                  5       U5      S9PMH     nnG[        UT R^                  [c        5       S9n>G[        TU>T R^                  S^9nT Rh                  Rj                  Rl                  Ro                  TU5      $ [3        T[        [        45      (       Gaf  T RO                  [P        Rz                  5        T RO                  [P        RR                  5        [        [r        GR                  T5      5      nG[        [        GR                  U5      5       Vs/ s HE  n[V        RX                  " [        GR                  UU5      [        T R                  5       U5      S9PMG     nn[3        T[        5      (       a  [        n?O[3        T[        5      (       d   e[        n?U?" UT R^                  [c        5       S9n@G[        TU@T R^                  S_9nT Rh                  Rj                  Rl                  Ro                  TU5      $ G[        [-        T5      G[        5      (       ad  T RO                  [P        Rz                  5        G[        TT R^                  S9nT Rh                  Rj                  Rl                  Ro                  TU5      $ G[        T5      (       ad  T RO                  [P        Rz                  5        G[        TT R^                  S9nT Rh                  Rj                  Rl                  Ro                  TU5      $ [3        TG[        5      (       a  [}        S` T 5       5      (       a  T Vs/ s H#  n[        RY                  T Rh                  U5      PM%     nn[        T R                  5       R                  [P        RR                  5      T R                  5       R                  [P        R                  5      5        G[        UT R^                  S9$ [        SaSbT V$s/ s H"  n$[        R                  " U$5      (       a  M   U$PM$     sn$ 3ScSd/S%9  g G[        GR                  " T5      (       Ga  SSeGK|GJ}nA  TGR                  b&  TGR                  R,                  WAGR                  :X  a  T GR                  TGR                  5      $ TGR                  R,                  WAGR                  :X  a{  G[        GR                  SfT R^                  GR                  G[        GR                  5        T GR                  TGR                  G[        GR                  G[	        G[        SHSg9Sh9Si9$ TGR                  R,                  WAGR                  :X  aj  G[        GR                  SfT R^                  GR                  G[        GR                  5        T GR                  TGR                  G[        GR                  Sj9$ G[O        SkTGR                   35      e[q        TG[        5      (       a4  T RO                  [P        Rz                  5        G[        TT R^                  S9$ T GR-                  T5      $ s  snf s  snnf s  snf ! G[N         a     G(N'f = fs  snf s  snf s  snf s  snf s  sn$f )mNr   )
has_triton has_triton_experimental_host_tma%has_triton_tensor_descriptor_host_tmar=   )CudagraphOverrideContextManagerDynamoConfigPatchProxy(ErrorOnGraphBreakDecoratorContextManager)	Autotuner)JITFunctionc                       \ rS rSrSrg)*VariableBuilder._wrap.<locals>.JITFunctioni  r  Nr  r  r  r  r  r        r  r  c                       \ rS rSrSrg)(VariableBuilder._wrap.<locals>.Autotuneri  r  Nr  r  r  r  r  r!    r  r  r  r	  c                      g r)  r  r  r  r  create_1d_tma_descriptor7VariableBuilder._wrap.<locals>.create_1d_tma_descriptor      r  c                      g r)  r  r  r  r  create_2d_tma_descriptor7VariableBuilder._wrap.<locals>.create_2d_tma_descriptor  r%  r  c                   (    \ rS rSr\SS j5       rSrg)/VariableBuilder._wrap.<locals>.TensorDescriptori  Nc                      g r)  r  r  r  r  from_tensor;VariableBuilder._wrap.<locals>.TensorDescriptor.from_tensor  s    r  r  rF  )r  r  r  r  staticmethodr,  r  r  r  r  TensorDescriptorr*    s     r  r/  c                      g r)  r  r  r  r  set_allocator,VariableBuilder._wrap.<locals>.set_allocator  r%  r  )r#  r'  )r/  r1  r9  r  )r   tuple_vtc              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr)  r  r  s     r  rk  (VariableBuilder._wrap.<locals>.<genexpr>E  s     JEq,77::Er  ir  r  c                    > T	R                  5       nT(       a  [        R                  " U5      nUnO![        X05      n[        R                  " X5      n[        X55      n[        R                  " X&5      nXG4$ r)  )r  r   r  rT   r   rW   )
r6  r  r  baser  r  r  r  r  r,  s
           r  r  .VariableBuilder._wrap.<locals>.build_key_value`  se     (*11!4C!"J!3D!<J-44QCC0B/66qG	~%r  c              3   <   >#    U  H  u  pnT" XU5      v   M     g 7fr)  r  ri  r6  r  r  r  s       r  rk  r5  o  &      HGA!  a((H   default_factory)r>  r   )user_clsr   c              3   V   #    U  H  n[        U[        R                  5      v   M!     g 7fr)  )r/  r  r4  ri  xs     r  rk  r5    s     >1:a..s   ')z$Attempted to wrap a set with tensorsz+Python set containing torch.Tensor elementszDynamo cannot trace sets of tensors. To get a stable ordering, Dynamo needs to convert the set into a list and the order might not be stable if the set contains tensors.z,Use a dictionary where the keys are tensors.r  _dictc              3     #    U  H  n[        U5      [        R                  L =(       a    UR                  S :H  =(       dD    U[        R
                  R                  R                  ;   =(       d    [        U[        [        45      v   M     g7f)r  N)r  r  BuiltinMethodTyper  r  r  _pytreeBUILTIN_TYPESr/  r   r    rA  s     r  rk  r5    ss      .
  aE333O8O > U[[((666> 1z+;<=> s   B	Bc              3   ,   >#    U  H	  nTUL v   M     g 7fr)  r  )ri  r  r'  s     r  rk  r5    s      %
"OBERK"Os   funcargskeywordsz,functools.partial() with non-literal keywordznon-literal keyword: z3functools.partial() expects literal/string keywords
cache_hash)original_cache_hash__func__dtypesaved_tensors)r   rP  __self__r  r  apply)rj  py_typec                    > [        [        R                  R                  R                  R
                  5      R                  T R                  T R                  R                  R                  R                  5       40 5      $ r)  )r   r  _dynamoexternal_utilsFakeCompiledAutogradEngineexec_final_callbacksr]  rY  rZ  r  get_ca_final_callbacks_varr5  s   r  rW  'VariableBuilder._wrap.<locals>.<lambda>}  sZ    ,MM00KK``-GGWW^^00KKMOr  Tz9Attempted to wrap torch._higher_order_ops.invoke_subgraphzJDirectly using invoke_subgraph is not supported. Use nested_compile_regionstreamr]  )r   user_object_indexenter_result)r   dynamic_dim)hintr   Expected SymInt, got [^a-zA-Z0-9]+rd  F)r$  r%  grapharg is not a basic Symbol.)r_  z!Attempted to wrap unbacked SymIntz+Unbacked SymInt input is not supported yet.r   )rank)target_valuesr   __script_if_tracing_wrapper__original_fn__wrapped__)      r  )FlattenScriptObjectSourceScriptObjectQualifiedNameSource__obj_flatten__c                    > TR                  5       n[        X05      n[        R                  " X5      n[	        X45      n[        R                  " X&5      nXW4$ r)  )r  rT   r   r  rX   )	r6  r  r  r8  r  r  r  r  r,  s	           r  r  r9    sM     (/8
)00?8J/66qG	~%r  c              3   <   >#    U  H  u  pnT" XU5      v   M     g 7fr)  r  r;  s       r  rk  r5    r<  r=  )r?  r  r   )r  r   )r3  r   )list_vtr   )set_vtr   c              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr)  r  r  s     r  rk  r5    s     A5a#..q115r  znon-const keys in dict_keysr  z.Dynamo expects dict_keys keys to be constants.zCEnsure your dict_keys keys are constants (e.g. int, float, strings))_DimHintTypez%s marked %s via IntWrapper	warn_only)
constraint)dynamismr  rx  zUndefined dynamism rF  (  torch.utils._tritonr  r  r  
decoratorsr  r  r  triton.runtime.autotunerr  triton.runtime.jitr  $triton.tools.experimental_descriptorr#  r'  triton.tools.tensor_descriptorr/  tritonr  r1  r  r  r  r  rh  r/  r  r4  r  	parameterUninitializedBufferUninitializedParameterr7   r>   nontraceable_tensor_subclasses__torch_dispatch__r9   r  r~   r  rG   SEQUENCE_LENGTHr   r   r  getattrrQ   r   r   r   r   
get_vt_clsrY  rZ  r  r  r   r  r  defaultdictOrderedDictr  r  guard_on_key_orderr  r   r  r   ru   r   ro  r>  r   r  r  wrap_moduler   r  r  	overridesTorchFunctionModer   setr8   anyrF   r?   r  r   rH   r  DICT_KEYS_MATCHr   r  	enumeratere   	frozensetSourcelessBuilderEQUALS_MATCHr   enumEnumDispatchKey_C
_functorchTransformTyper  r   r   is_reorderable_logging_functionBUILTIN_MATCHcallablerV  ignore_logging_functionsr   loggingLoggerr   r   rp   r|   rq   r   should_wrap_in_hopr  	functoolspartialr  rI  rJ  r  r[   rK  r  
USER_ERRORrW   r   r   r   r   genericr  asarrayrB   is_numpyr  
MethodTyperf  
isfunctionrN  r  rg  CLASS_MATCHr   is_numpy_dtyper   is_numpy_type_infoiinfor   r   can_rewriteautogradfunctionFunctionMetar   FunctionCtxrP  RuntimeErrorr   r   rQ  r   _ImperativeEnginer   rW  rX  _exec_final_callbacks_stubr   r   changesr   error_on_graph_breakr   fwdbwdlookup_callableis_callable_allowed!has_user_defined_allowed_in_graphcreate_with_sourcenumberwrap_unspecialized_primitiver   _higher_order_opsinvoke_subgraphr   makecudaStreamContextr\  r   StreamrV   r   r   create_proxyr   r   noder   _SDPAParamsr   pyfunctorchFuncTorchInterpreterr   Eventr   
contextlibnullcontextgetattr_staticr   r   is_matching_objectoptim	Optimizerrg   r   r   DispatchKeySetDISPATCH_KEY_SET_MATCHr   r   is_group_member_typer   rl  rm  r   r*   r+   rY   root_tracerdynamic_scalar_nodes	shape_envcreate_unspecified_symbolrealr.   DYNAMICcreate_symintnoder   AssertionErrorcreate_graph_inputr  subr&  r  metaexprsympySymboltracked_fakesr4   r   r   rU   has_hint$create_unspecified_symint_and_symbolintr`  SymBoolcreate_unbacked_symintr   r   r,  r   r   ampautocast_modeautocast_UnmanagedAutocastwrap_user_definedr   device
fast_dtype_enabled_cache_enabledr   is_matching_clsr   r}   sysexc_infoversion_info	exceptionr   r{   
namedtupler   rE  r   is_supported_builtin_methodrz   floatfromhexhexr   r  r   lookuprandomRandomr   r   is_supported_random_objr   rA   DummyModuleMODULE_MATCHr   GetSetDescriptorTyper   MethodWrapperTyper   
issubclassBaseExceptionr   r  r  BackwardHookr  Buffer _unsafe_preserve_version_counterr   constructorr:   r   r^   r   r   r   r   rl  rm  _libraryfake_class_registryFakeScriptObjectreal_objtracing_with_realr   CONSTANT_MATCHr   OPAQUE_OBJ_GUARD_FN_MATCHrealize_all_typequalified_namern  maybe_to_fake_obj	fake_moder   install_free_tensorsr_   r`   rb   register_attr_or_module__new__should_reconstruct_allr   r  __len____getitem__rc   r   r   fromkeysr   r   r   ry   r   rt   r   r   torch.export.dynamic_shapesrt  rx  STATICwrap_symintvallogdebugr3   r/   AUTOr*  r   )Dr,  r'  r  r  r  r  r  r  r  r  r#  r'  r/  r1  
triton_modtype_dispatchid_dispatchr&  rZ  r3  r  factory_sourcevarset_var_clsinternal_dict_sourceLr6  r  r  func_srcfunc_objrJ  args_sourceargrK  keywords_sourcer  rM  	dt_sourceactual_saved_tensorsrP  r  saved_tensors_sourcestream_source
stream_varindexstream_proxyevent_proxyis_intr   r  symsym_node_proxysym_expr
new_syminttracing_symint	attr_namerl  rm  proxyfake_script_objr  rq  
set_vt_clsrr  rt  r  r  sD   ``                                                                @@r  r  VariableBuilder._wrap  s)   	
 	
	
 	
 <<:6  			 	
	 ,-- 122G<<'z?33 * 8 8 ++-11$u+>$ u-- '')--bi8"tU++ uell++U ""66""99	 U6#H#HH U..%,,2Q2QQ077''.. < <= .d5k:-
 ;D	 $**E4(%dkk48 ;  - %{{35H
 .88eE{{!F
 77>>..DDUFSSED+"9"9;;R;RSTT 7 78JEJJI " 1155dkkB&&&#&&78& &  A%H F
 e[4455!+DKK9J!K,K$3DGG^$L--%  ;; +!%[;; 77>>..<<UFKKuxx//##E**((//$$U++u@@AA+E$++FCGGNN''==eSIJEC,-->>>>BI>
 G*66  7 78 < <=%KeZ(('1$++w'G$(33L4P4PQ 11556JK0 UA
 &aL	 )DAq $**=dkk1M )	   !t{{;F77>>..DDUFSSE9%%# .
 .
 +
 +
" DII5a&--dggq95EI 9 9:$U4;;??YY))588+>+>+L+LM
 
  5 56,U4;;GG>>uEE  : :;$U4;;??e__ %
"'--"6"6"O"O%
 "
 "
  5 56*5EEw~~.. 7 78(t{{CC '',DKK@@&&1EE/BB5II5;;4;;OOy0011!$//"3V<H&tww9%**EHD$T__%6?K#EJJ/3#DGG];-JKCP 0
 H():JGO,,.1'22155! N"7s ;$Y= 1 < <=	 .GG.B / !,,\-D-DE**<+G+GH&&|'C'CD #*%t"D+$>Q  u 5 56!{{  ^
5"** = =**2::e+<==!!%((2I2eU--..%%enn55!"4;;
;FF(66
 ''##L$<$<=##E**##L$>$>?%##L$9$9:##L$;$;< t{{;;''.. 5 56%eDKK@@++E22%**##L$;$;<&t{{G<	i22<3H3HIJ##L$9$9:'dkkBB.::5AA : :;4;;{{ 
 E5>>22??@@ 8 89+{{  u~~66BBCC#' ',':':$ Mkk,,\-D-DEFF.66'1$++'O$(33L4P4PQ &&:;DAq!((' GG]3G%K < 6"77>>..DD/;;"0"?  ue..//z40%..2I2I2V2V  z2.'9$?? 4??,j9DD ..
 #(NN%dkk*E U  uxx99:: 5 56)%DD}}++FFaab  : :;!  566,U]];;GHH,U-G-GHH>??,UYY		BBe__!<!<U!C!O..u55CG@..u5HHdkk I   RJubii0044U;;233//???W l	  7 78388t{{SSuzz7788 5 56&t{{H=M(-@NJ(//DDu||,, 7 78$++':;;,,UDKK@77>>66!=xL l//7 eDKK5C 77>>..DDUCPP 4 466 7 78%,,TWWeT[[IIu//;;PPQQ 5 56/66u{{++ 7 78(<E''..55,	K k..6 {{	  5*0011&&undCK 7 78&dkk::&99%@@ 7 78.uT[[IF77>>..DDUFSSu{{4455 5 56)$++6DK${{79 
 u3344 C CD)%00#88??)%DDj  5 56*,,uI++5	!>> 8 89$U4;;??~..z2F(f=F%yDGGNN66KKK ww~~11FFr%yQggnn..HHJJ! * 2 2 I 
 ww~~//AA! B 
 "$//(+@d)MNN "WW^^77JJ'dii8T
	 K N 4<#'4N$$Z0 yy~~Hh55 *345 GGNN((//D&$0OP"))$''>4HH%   eU\\22 %dkk2 
 Jzz""$$GGNN,,QQEJJOO,$.$6$6 R   eU]]33!%!9!9!P!P!RJ " C "$Q> 1 = =>	 )))j&11$'<T*=M<N%OPP!WW^^77JJ'dii8Z 	 K N 4<#-4N$$Z0 "++Hh55 *345 GGNN((//JPT0UV )==
:QR?  #>>BB788 5 56'{{	  ..:BB..:BB&222466m#-e44uyy66??@@%!8!8!K!KLL--e44##L$9$9:+((,,	#  ;;  *99%@@u%%##L$<$<=##E**##L$>$>?/dkkJJ##E+H%PP 7 78.{{79	  +511 7 78.{{79	  cll"'ES]],B&uT[[AA#E**w/E/E(%0
 0
  7 78.%{{79	  k,,, 5 560t{{KK5**
 
#??FF 5 56(t{{CCEemmUYY-G$G 5 56"dkk:U 
 $E**?FE9 $(i@%%e,??dkk @   fmm# 5 56&dkk::E6==))n.T.T/
 /
  7 78#E$++>FGGNN''55eVDM  0 0-2K2KLMM 9 9:){{F
 GGNN''==eVLMu99:: ,E22u6677
 )//UT**z%/O/O 5 564U;;UT**!!..""  #))%0CC$++ D   GGG##L$<$<=5AA$''JJ 5%,,//- ,,0O0OO
 ;5AA-eDKKHH)$++66 ##L$<$<=%&&:eTYY+G+G/;; 
 e$$0;; 
 ,{{  '66tE{CC  %!C!C!T!TUU ~~11CCEJJ22EEFF+S$))<K;;	 F  /7KK/


+ 177;;  $DK00##L$?$?@)$u+66##L$;$;<##L$J$JKU$566 --e44 $//#!@!M 446 $//#DGG-Ft{{-ST--/ $nn@@RR((%O $DK00d5k9R9R"',,,%dkk22*4;;779$++FFww~~==499T[[ >  
 22EEFF+S$))<K#;;	 F  /7KK#/


+ -33{{  ut[%<%<=>>U##t||3  7 78 < <= GGNN--11$++>
&
&
&#&
&78
&  A%H F
 ( "%)@)@AA  ++35{{	G .2G*,UGDKKXF77>>..DDUFSSu%% 7 78 < <= u}}U34
 5A	 $**%%eQ/():A> 5   %{{35H
 .F 77>>..DDUFSSt$$ 7 78 < <= t||E23
 4A	 $**$$UA.,T__->B 4   #{{35G
 -UGDKKXF77>>..DDUFSSY/00 7 78 < <=T]]5)*A t||A/
 0A	 $**$$Q*:4??;LaP 0   %%%(
!%3333.
t{{:O:QF ,E&UF77>>..DDUFSSU^44 7 78+E$++FF77>>..DDUFSS '' 7 78,U4;;GF77>>..DDUFSSy))A5AAA HMMu!*11$''1=uMOO%001M1MNOO%001J1JK *%DD9.5/g5aHXHcHcdeHf5/g.hi P]	  22599@~~%)<)<@S@S)S''		22$$(<(<<		1KK$$&&
 ''II'//1#:U#K (   $$(9(99		1KK$$&&
 ''		J<N<N'OO"%88H#IJJE6"" 7 78!%<<))%00y-@2 Jv   ^.&B N 0hs`   =Ca$6Ca).*Ca/ACa4 CACbHACbMACbU$*CbXCbX5Cba4CbbCbc                 :   SSK Jn  U R                  [        R                  5        [
        R                  " U5      (       a  [        U[        U R                  5      S9nOi[        X5      (       aF  [        U5      [        ;  a3  U R                  [        R                  5        [        XR                  S9nO[        XR                  S9n[        R                   " [        U5      5      (       d  U$ U R"                  R$                  R&                  R)                  X5      $ )Nr   )_CONSTANT_BASE_TYPESr9  )user_definedrF  r  rG   r  r   r  ri   r   r/  r  rs   CONSTANT_SUBCLASS_MATCHr   r   rO   "cls_supports_mutation_side_effectsrY  rZ  r  r  )r,  r'  rF  r  s       r  r  !VariableBuilder.wrap_user_defined.  s    6L334--e44
 %U?4;;3OPFu33U#88 D DE0{{KF.u[[IF==d5kJJMww~~**@@OOr  c                 X   [         R                  (       aO  [        U5      [        R                  L a3  U R                  [        R                  5        [        R                  " US9$ U R                  [        R                  5        [        U[        5      (       a  [        S U 5       5      (       ax  U R                  R                  R!                  5       (       aO  U R                  [        R                  5        [#        U Vs/ s H  n[        R                  " U5      PM     sn5      $ [%        U5       VVs/ s H2  u  p2[&        R                  " U[)        U R+                  5       U5      S9PM4     nnnU R,                  R.                  R0                  R3                  S5      n[5        U R                  [6        5      (       Ga  U R                  R8                  [;        U5      ;   Ga  U R                  n[5        U[<        5      (       d   eU R,                  R.                  R>                  RA                  [B        RD                  " SSU RF                  5      [        U5      UUS9nSURH                  RJ                  S'   [M        [N        U R,                  UUS US	9n/ n	[%        URP                  5       H  u  p:[)        XcS
S9nXR,                  R.                  RR                  U'   [U        X   5      U
RV                  RH                  RJ                  S'   [X        RZ                  " [        R\                  [_        X   5      S9nU	Ra                  URc                  U5      5        M     [e        U	SS06  [g        UUS
S S
S9nXRH                  RJ                  S'   U H  nURi                  5         M     [j        Rl                  " U5      " X@R                  S9n[        U[<        [n        Rp                  45      (       a/  U R,                  R.                  Rr                  Ru                  X5      $ U$ s  snf s  snnf )Nr'  c              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr)  r  )ri  items     r  rk  0VariableBuilder.wrap_listlike.<locals>.<genexpr>U  s     H%$$//55%r  r9  r,  rb  rd  T	steal_arg)
target_clsrY  rA  example_valuesubclass_typer   Fr8  r7  index_is_slicetensor_dictr  r   )r"  r#  r$  rc  );r>   specialize_intr  r  r  r  rG   r  r   r  r  r   r  r  r   guard_sourceis_unspecialized_nn_moduler   r  r   r[   r  rY  rZ  local_scoper  r/  rd   
local_namerw   r  r  r  r  r  r&  r  r  wrap_fx_proxy_clsr   r  input_source_to_varro   rA  r  r  TENSOR_MATCHr<   r  r  rH   r  realizer   cls_for_instancer  r  r  r  )r,  r'  rN  r6  rZ  maybe_gmr   tensor_list_proxylist_variabler  tensor_variablesource_ir  rc  r~  r  s                   r  r  VariableBuilder.wrap_listlikeE  s^      T%[EJJ%> ; ;<#**77 	L889 5%  H%HHH((CCEE ; ;< E!RED"2"9"9$"?E!RSS %U+

 ,	  &&$T__%6: , 	 
 77>>--11&9KK
 
kk$$(;H(EE [[FeT**** $ : : M M'dii8U	 !N ! 8<""''4-)77'#"M F&/0C0C&D"(feT?N228<AUHB%%**//> ")) --]585L h11%89 'E 6**#( H 7?""''
3( 

  "2259&U%$ 1 123377>>..<<UKKy "S
s    P!69P&c           
         U R                  [        R                  5        [        [	        U5      5       Vs/ s H@  n[        U R                  [        U R                  5       U5      5      " [        X5      5      PMB     nn[        X0R                  S9nU R                  R                  R                  R                  X5      $ s  snf r  )r  rG   TUPLE_ITERATOR_LENr  r   ro  rY  rl   r  r   r   r   rZ  r  r  )r,  r'  r6  rZ  r  s        r  r  #VariableBuilder.wrap_tuple_iterator  s    L;;<
 -e45	
 6 DGG%?@QST%UV&u0 6	 	 
 'vkkBww~~**88GG
s   ACc                 B   U R                  [        R                  5        [        R                  " U5       Vs/ s H  n[
        R                  " U5      PM     nn[        X0R                  S9nU R                  R                  R                  R                  X5      $ s  snf r  )r  rG   RANGE_ITERATOR_MATCHcopydeepcopyr   r  r   r   rY  rZ  r  r  )r,  r'  r  r  r  s        r  r  #VariableBuilder.wrap_range_iterator  s~    L==> 15e0D(
0D1##A&0D 	 (
 &eKK@ww~~**88GG	(
s    Bc                    [        U5      u  p#[        R                  " U5      (       a  [        R                  " U5      (       d  U R                  U5      $ U R	                  [
        R                  5        [        [        R                  " U5      [        R                  " U5      U R                  S9nU R                  R                  R                  R                  X5      $ r  )r   r   r  r  r  rG   COUNT_ITERATOR_MATCHr   r  r   rY  rZ  r  r  )r,  r'  current_itemstepr  s        r  r  $VariableBuilder.wrap_itertools_count  s    1%8''55 ++D11))%00L==>&##L1##D);;

 ww~~**88GGr  c           
      p   S Vs/ s H@  n[        U R                  [        U R                  5       U5      5      " [	        X5      5      PMB     nnU R                  [        R                  5        [        U[        5      (       a  [        X0R                  U R                  S9$ [        X0R                  S9$ s  snf )Nstartstoprr  r9  )ro  rY  rQ   r  r  r  rG   r  r/  r  r   r   r   )r,  r'  r  r  s       r  r   VariableBuilder.wrap_slice_range  s    
 /	
 / DGGZ0A1%EF! /	 	 
 	L334eU## DD {{;;
s   AB3r  c                 r   SSK Jn  [        R                  SU R                  R
                  [        U5      5        U" XS9  XR                  R                  R                  ;   aT  U R                  R                  R                  U   nUR                  UR                  R                  R                  S   S'   g g )Nr=   )mark_static_addressz Marking static input %s, id: %s)r  rV  _dynamo_static_input_type)r{  rz  static_inputs_logr#  r   r&  rh  rY  rZ  r  r|  rA  r  r  )r,  r'  r  rz  r)  s        r  mark_static_input!VariableBuilder.mark_static_input  s    4.0@0@"U)	
 	E/ GGNN///''..--e4C // IINN./JK 0r  c                 4   SSK Jn  [        UR                  5      S:X  a4  [	        S[        U5      S[        U5       S3/ [        R                  QSPS9  [        X5      (       a  [        R                  " UR                  S	S
5      (       a:  [        R                  " UR                  SS 5      n[        U R                  SU S3S9$ U R                  [        R                   5        [#        U R                  S5      U l        U R%                  UR&                  5      $ [)        U5      [*        R,                  R.                  R0                  L a%  [	        S[3        U5      S/ [        R4                  QS9  [7        U[*        R8                  R:                  [*        R8                  R<                  [*        R8                  R>                  45      (       a;  [@        RB                  (       d&  [	        S[3        U5      SS/[        RD                  QS9  [G        USS
5      (       a  [G        USS
5      (       d  [	        SSS/ S9  U R                  [        R                   5        [I        XRK                  5       S9n[L        RN                  " [)        U5      5      (       d  U$ U RP                  RR                  RT                  RW                  X5      $ [X        RZ                  " XRP                  R\                  5      (       Ga]  [7        U[*        R^                  R`                  Rb                  Rd                  5      (       a*  URg                  5       n[i        U R                  5      U l        [k        5       n[m        URn                  5      (       aF  URn                  Rp                  [r        L a)   URo                  5        H  u  pgU Ru                  XuS9  M     [m        UR~                  5      (       aF  UR~                  Rp                  [        L a)   UR                  5        H  u  piU Ru                  XS9  M     U(       a,  XRP                  RR                  R                  U R                  '   UR                  R                  S5      (       a   UR                  R                  S5      (       a  [G        UR                  SS
5      (       a  U R                  n
U RP                  RR                  R\                  (       a  [@        R                  (       a  [        U R                  5      n
[        XS9n[        U
R                  [        R                   5      5        OU R                  n
U RP                  RR                  R\                  (       a  [@        R                  (       a  [        U R                  5      n
[        XS9n[        U
R                  [        R                   5      5        U RP                  RR                  R                  XR                  5        [L        RN                  " [)        U5      5      (       d  U$ U RP                  RR                  RT                  RW                  X5      $ [        UR                  [*        R8                  R                  R                  R                  5      (       a6  U R                  [        R                   5        [        XRK                  5       S9$ U RP                  RR                  R                  UU R                  U RK                  5       S9$ ! [v         a<  n[y        [)        U5      U RP                  [{        UR|                  5      S9   S nAGNS nAff = f! [v         a<  n[y        [)        U5      U RP                  [{        UR|                  5      S9   S nAGNpS nAff = f) Nr=   )OptimizedModuler   zUninitialized nn.Modulez6Attempted to trace an uninitialized nn.Module of type .z?Ensure your nn.Module instance has called `super().__init__()`.r  _torchdynamo_disableF_torchdynamo_disable_msgzHOptimized `nn.Module` is wrapped with `torch.compiler.disable` (reason: ))r   msg	_orig_modz+torch.jit.script/freeze modules unsupportedzDynamo does not support tracing into torch.jit.script or torch.jit.freeze modules because they execute in the TorchScript runtime, not Python. Replace the ScriptModule submodule with the original eager nn.Module.z#Attempted to wrap RNN, GRU, or LSTMz*Dynamo does not support RNN, GRU, or LSTM.zgSet torch._dynamo.config.allow_rnn=True to enable experimental support for RNN, GRU, and LSTM in Dynamo_is_fsdp_managed_module_fsdp_use_orig_paramszFSDP with use_orig_params=Falser  z3Dynamo only supports FSDP with use_orig_params=Truer9  r{  )rJ  )ztorch.nn.modulesz	torch.ao.ztorch.nn.modules.container_dynamo_marked_static)S
eval_framer  len__dict__rF   r   r?   r  r   rf  r  forwardr   r   r  rG   r  rQ   r  r  r  r  r  _scriptRecursiveScriptModulerK  FUNDAMENTALr/  r  RNNGRULSTMr>   	allow_rnnr  r  r   r  rO   rI  rY  rZ  r  r  r@   is_dynamic_nn_moduleexportfxexperimentalproxy_tensor
_AttrProxyget_baserP   r   r  named_parametersrN  !og_module_named_parameters_fn_ptrr~  	TypeErrorrE   r  rJ  named_buffersog_module_named_buffers_fn_ptr
nn_modulesr&  r  re  rR  r  rm   r   rH   r  rn   r    add_fqn_info_for_inlined_modulesr  paralleldistributedDistributedDataParallelr  )r,  r'  r  r  r  freezingrd  peb
new_sources              r  r  VariableBuilder.wrap_module  s   0u~~!#1TU\]bUcTddef&11U	 %))%%emm5KUSS
 ,,MM#=t /;;bcfbgghi 
  7 78$T[[+>DK##EOO44;%))++AAAEE
,&22
 uuxx||UXX\\588==IJJ$$=E
H}&22	 53U;; 5"95AA= U	"  7 780?PQFAA$u+NN77>>..DDUSS00GG
 %!6!6!C!C!N!NOO(-dkk:,.H //00**337XXR % 6 6 8..q.A !9 ,,--''004RRR % 3 3 5..q.A !6
  8=))$))4   ++,MNN((334PQQ*A5II![[
ww~~,,0K0K!CDKK!PJ=eWj33L4K4KLM![[
ww~~,,0K0K!<T[[!IJ6uPj33L4K4KLMGGNN;;E;;OAA$u+NN77>>..DDUSSOOUXX..::RR
 
  7 780?PQQ77>>99		( :  c ! R,T!WdggDLQQR ! R,T!WdggDLQQRs0   (\ :(] 
]1]		]
^1^^c                 @   [        U5      [        L GaR  [        U[        5      (       d   e[        U R                  R
                  5      (       aH  [        R                  SU R                  R
                  5        U R                  U[        R                  S9$ [        U R                  R
                  5      (       aH  [        R                  SU R                  R
                  5        U R                  U[        R                  S9$ [        R                  (       Gd<  [        XR                  5      (       Ga  S nU R                  R                   R#                  5       (       d)  U R                  R                   R%                  5       (       a  Sn['        U R(                  U R                  R
                  [*        R,                  " U5      U R                  R                   R%                  5       S9  U R/                  [0        R2                  " [4        R6                  US95        [8        R:                  " XR                  S9$ U R=                  XR>                  5      $ U R=                  U5      $ [        U5      [@        L aX  [        U[@        5      (       d   e[        RB                  (       d  U R=                  XRD                  5      $ U R=                  U5      $ [        U5      [F        [H        4;   a.  [        U[F        [H        45      (       d   eU R=                  U5      $ U R/                  [4        RJ                  5        [8        R:                  " XR                  S9n[        U[L        [N        45      (       a/  U R(                  RP                  RR                  RU                  X5      $ U$ )N&%s marked dynamic via source whitelistry  '%s marked unbacked via source whitelista  torch.compile considers integer attributes of the nn.Module to be static. If you are observing recompilation, you might want to make this integer dynamic using torch._dynamo.config.allow_unspec_int_on_nn_module = True, or convert this integer into a tensor.rY  )recompile_hintr'  r   )+r  r  r/  is_dynamic_sourcer   r&  r"  r#  r   r.   r  is_unbacked_sourceUNBACKEDr>   rW  r   rX  "is_unspecialized_builtin_nn_modulerY  rN   rY  rL   make_scalarr  r  r  rG   r  r   r  _wrap_lazy_constant_wrap_symint_for_lazyr  specialize_float_wrap_symfloat_for_lazyrI  rK  r  r  r  rZ  r  r  )r,  r'  r  r  s       r  r  VariableBuilder.wrap_literal  s   ;#eS)))) !1!122		BDKKDTDTU''
8J8J'KK!$++"2"233		CT[[EUEUV''
8K8K'LL((( .e[[AA%)N00SSUU;;33NNPP5 ' .((+77>37;;3K3K3f3f3h	 ''!))(55n
 ,22{{SS//7Q7QRR++E22%[E!eU++++**//7S7STT++E22%[T3K'edC[1111++E22 ; ;<%,,5MF%$--ww~~22@@OOMr  c                 $    U R                  U5      $ r)  )r   r  s     r  r  %VariableBuilder._wrap_symint_for_lazy  s    &&r  c                 $    U R                  U5      $ r)  )wrap_symfloatr  s     r  r  'VariableBuilder._wrap_symfloat_for_lazy  s    !!%((r  wrap_fnc                     g r)  r  r,  r'  r  s      r  r  #VariableBuilder._wrap_lazy_constant      
 r  c                     g r)  r  r  s      r  r  r    r  r  c                     g r)  r  r  s      r  r  r    r  r  c                     U R                   (       dH  Ub  U" U5      $ U R                  [        R                  5        [        R
                  " XR                  S9$ [        R
                  " XR                  S9$ )zCWrap a primitive constant, deferring guard installation if allowed.r  r9  )rp  r  rG   r  r   r  r   r   r  s      r  r  r  	  s[     ''"u~% ; ;<#**{{KK#**5EEr  c                     [        U5      (       a/  [        U5      U R                  R                  L a  [	        SS5      eg g )Nz*Cannot wrap a Tensor that has already beenz"wrapped by this instance of Dynamo)r#   r$   rY  r  rD   r  s     r   assert_not_wrapped_by_this_graph0VariableBuilder.assert_not_wrapped_by_this_graph	  s=    5>>1%8DGG<M<MM*<4  N>r  c           	      D   U R                  5       nXR                  R                  R                  ;  d   e[	        U5      S LnU(       di  [        U[        R                  R                  5      (       d&  U(       a9  UR                  R                  5       (       a  U R                  U[        5       S9  Sn[        R                  =(       a/    [        U5      =(       d    [!        U5      =(       d    [#        U5      nU=(       a5    [        5       =(       d$    [        R$                  R                  R&                  nU(       dE  UR                  R)                  5       (       d  U(       a^  UR                  R+                  5       (       d?  U R-                  U5        U R                  R                  R/                  XR0                  US9$ [	        U5      S:X  a^  U R3                  [4        R6                  5        U R-                  U5        U R                  R                  R/                  XR0                  US9$ [9        U5      (       aV  U R-                  U5        U R                  R                  R/                  U[:        R<                  " SSU R0                  5      US9$ X R                  R                  R>                  ;   nU(       a#  U R                  R                  R>                  U   $ 0 n[A        U5      nUb  U R3                  [4        RB                  5        [	        U5      S:X  a  U R3                  [4        R6                  5        U R-                  U5        [        U[        RD                  5      (       aZ  URF                  (       aI  [        U[        RH                  RJ                  RL                  RN                  5      (       d  [Q        SSS	/ S
9  [        U[        RD                  5      (       a\  [S        U5      (       aL  U R                  RT                  (       a  [        RV                  (       d  [Q        SSS/ [X        RZ                  QS
9  []        U5      (       a  [_        U5      bt  UR`                  [_        U5      R`                  :w  aQ  [_        U5      n	U	b  [c        U	R`                  5      OSn
[Q        SSUR`                   SU
 3S/ [X        Rd                  QS
9  [g        XR                  SUS9nU R                  R                  Rh                  Rk                  [:        R<                  " SSU R0                  5      [m        U5      UUS9n[o        U R                  X5        [q        S)U R                  UUUUS.UD6nU R                  R                  R                  Rs                  X5        URu                  5       (       a*  [g        URv                  U R                  [y        US5      SS9  [4        Rz                  n[        U[|        5      (       a   [        U5      (       a  [4        R                  n[        R                  R                  5       =(       a.    [        U[        R                  R                  R                  5      nU(       dD  U R3                  [        R                  " U[        U[        5      (       a  UO
[        U5      S95        [        U5      (       Ga  U(       GaU  U R3                  [4        RB                  5        UR                  5       S   nUSS/:w  a  [        S5      eUR                  5       S   n[        U5      S:X  aj  US   UR                  R                  :X  aM  US   UR                  R                  :X  a0  US   UR                  R                  :X  a  US   UR                  :X  d  [        S5      e[        [y        U R                  S 5      R                  [4        R                  5      5        [        [y        U R                  S!5      R                  [4        R                  5      5        OoU R3                  [4        R                  5        U R3                  [4        RB                  5        [        [        U5      R                  [4        R                  5      5        UR                  5       u  nnU GH  n[        UU5      n[m        U5      n[        U[        R                  R                  R                  5      (       a  [m        UR                  5      n[        U[        RD                  5      (       dH  [        U5      (       d8  [        [m        U5      R                  < S"[m        U5      R                   S#35      e[y        U R                  U5      n[        R                  " [        U R                  U5      " U5      5        GM     XR                  R                  R>                  U'   S$UR                  R                  ;  d   e[        U5      UR                  R                  S$'   UR                  R                  R                  S%   n[        U5      U R                  R                  La  [        S&5      e[        X!S'U5      nUUR                  R                  S('   U$ )*Nr{  Tr9  guardedrb  rd  z&Attempted to wrap strided NestedTensorr  3torch.compile does not support strided NestedTensorr  zAttempted to wrap sparse Tensorz-torch.compile does not support sparse TensorsNonez.dtype mismatch between tensor and its gradientztensor dtype: z; grad dtype: zmInconsistent dtype between tensor and its gradient. This can happen in FSDP and crashes meta tensor creation.rY  r$  r   )rY  rA  rR  rS  r   _base)rY  r   r$  rL  r   _local_tensordevice_meshzDExpecting DTensor inner attrs to be ['_local_tensor', 'device_mesh']r      r=   rj  z\Expecting DTensor flattening ctx to be (placements, tensor_meta, shard_order, requires_grad)_specrequires_gradz found in tensor attrs of z[.__tensor_flatten__(). Only tensors and reference-type opaques are allowed in tensor attrs.rV  rR  z(Wrapped Tensor must be this graph's fakeFrc  r  )kr  rY  rZ  r  rx   r/  r  r  r  rX  rY  r~  r   r>   r  r_   r`   rb   rV  prepare_freezingis_specialized_nn_moduleis_fsdp_moduler  r  r&  r  rG   r  r]   r  r  r]  infer_subclass_typer  r4  	is_nestednestedr  nested_tensorNestedTensorrF   r%   r  capture_sparse_computer?   SPARSE_TENSORr  r&   rO  rK  r  wrap_to_fake_tensor_and_recordr  r  r  cache_real_value_when_exportwrap_fx_proxyr  _is_viewr  rQ   r^  r\   ra   NOT_NONE_MATCHr  is_availabletensorDTensorr  r  rf   r<   r9   __tensor_flatten__r  r  r  
placementstensor_metashard_orderr  rH   r   r  DTENSOR_SPEC_MATCHr  TENSOR_SUBCLASS_METADATA_MATCHrk   r  r  r  r  r  r   r  r   r  ro  r  r  ro   rA  r$   r  rD   r  )r,  r'  r   is_static_inputshould_install_free_tensormake_graph_attributeis_duplicate_tensoroptionsrS  safe_grad_valgrad_strrR  tensor_proxyrd  
guard_type
is_dtensorinner_attrsflattening_ctxattrsrd  attrinner_value
inner_typeinner_sourcefake_tensor_valuerc  s                             r  r  VariableBuilder.wrap_tensor	  s   " GGNN777771%8Duehh00116..IIKK""50E0G"H"O &,%@%@ &
!&) >&v.>5f= 	#  /  
!#Lu}}';';'L'L 	 &  99;;?S''668811%877>>99yy :   #5)Y6  5 5611%877>>99yy :   f%%11%877>>99'dii8 :   %(J(JJ77>>55f==+E2$ 7 78"5)Y6 5 56 	--e4 uell++uell&<&<&J&J&W&WXX@Q	 uell++e$$WW^^6+H+H
 9K8)778	 %  % ,y/555%e,M3@3Ls=../RXHH(^H:NL6)556" 7ggf
 ww~~11DDFF#S$))4K	 E 
 	%TWWlB' 
ww''
 
 	##99%Q>> +77!&'2	 "..
fj)).Fv.N.N%44J&&335 
*5$$++33;

  !! &f.?@@ *51	 )// ##L$;$;<#668;?M"BB&^  "'!9!9!;A!>'1,&q)U[[-C-CC&q)U[[-D-DD&q)U[[-D-DD&q)U-@-@@&v  t{{G4??$77 t{{O<GG$11 ##L$O$OP##L$;$;<*62==l>W>WX //1HE1%eT2 "+.
NN66GG  "&k&:&:!;J! 2:>>&,5588R;//0 1++   *$++t<#//#DGG\:;G) 0 6E**62L$5$5$:$::::0DU0K}- ,1166;;OL019J9JJ*+UVVF52CD-5z*r  c           
      8   [         c   e[        U[         R                  5      (       d   e[        U R	                  5       5      nSSKJn  UR                  R                  (       + nU(       a   SUR                  l        S n[        R                  " 5           UR                  U5      nU(       a  SSKJn  U" U5      nS S S 5        Uc   e[(        R*                  " [-        U R.                  U5      " U5      5        [1        UU R.                  SUS	9nU R.                  R2                  R4                  R7                  [8        R:                  " S
SU R<                  5      [?        U5      UUS9n	[A        U R.                  X5        SU0n
[C        S[D        U R.                  U	US S.U
D6nXR.                  R2                  RF                  U'   URH                  RJ                  RL                  S   n[O        UUSUSUS9nXRJ                  RL                  S'   U RP                  Ul(        U$ ! [         a/    [        UR                  [         R                  5      (       d   e GNf = f! ["         a!  n[%        S['        U5      S/ US9   S nAGNS nAff = f! , (       d  f       GN= f)Nr   )_utilT)clone_preserve_stridesz)failed to convert numpy.ndarray to TensorzHException encountered when attempting to convert numpy.ndarray to Tensor)r  r  r  r  from_excFr  rb  rd  r9  r   )rQ  rY  rA  rR  rS  rR  r"  r#  r$  r%  rc  r  ))r   r/  r  rf   r  torch._numpyr  flags	writeable
ValueErrorr8  nditerr   temp_restore_stack_try_convert_to_tensortorch._prims_commonr  r  rF   rK  r   r  ro  rY  r  rZ  r  r  r  r  r&  r  r  r\  r   r]  rA  r  r  r  r   )r,  r'  r   r  readonlytensor_valuer  r  rR  rA  r  numpy_ndarray_variablerc  s                r  r  "VariableBuilder.wrap_numpy_ndarray.
  sV   ~~%,,,,"4??#45&{{,,,9(,%
 0CCE$;;EBJ#9,#GL F  ''' 	''(H(VW6ww	
 **==FF#S$))4	 > 
 	%TWWeBV$!2 "
+ww'"
 "
 6L**62.4499>>O #%+
 '/


# )-%%%O  9 "%**bii88889 ' GJ j  FEsB   -H  J
&I 5II
J&J<J
JJ


Jrx  r  c           	         [        U5      [        L d   eU R                  U R                  R                  R
                  ;   a-  U R                  R                  R
                  U R                     $ U R                  R                  R                  nS n[        R                  " 5       R                  (       a`  UR                  5       n[        U5        U R                  R                  R                  R                  [        X`R                  S 5      5        GOX[!        U R#                  5       5      (       Gd  Ucf  [$        R&                  R(                  R*                  (       a=  U R-                  [.        R0                  5        [2        R4                  " XR                  S9$ U R                  R                  n[7        U R                  U[8        R:                  " U5      U R                  R<                  R?                  5       S9n[A        U R                  R                  5      nU R                  n	[C        U	[D        5      (       a  U	RG                  5       n	Ub  Un
GO[(        RH                  (       a*  URJ                  [L        L a  [O        SS5        [Q        5       n
O[C        U	[R        5      (       a<  U	RT                  b/  [W        U	RT                  5      R                  USS05      S   (       d  [(        RX                  (       d  [Z        R\                  n
ORURJ                  [L        L a  [O        SS5        U R-                  [.        R0                  5        [2        R4                  " US9$ [(        R^                  (       a  Ub  UR`                  OS nURc                  UU R                  U
US9n[C        U[d        5      (       d  [g        S	[        U5       35      eU R                  R                  R                  R                  [        X`R                  U5      5        O][!        U R#                  5       5      (       d   eU R-                  [.        R0                  5        [2        R4                  " XR                  S9$ [C        U R#                  5       [h        5      (       a   e[k        U R#                  5       Rm                  [.        Rn                  5      5        S
U R#                  5       0nU R                  R                  Rp                  Rs                  [t        Rv                  " SSU R                  5      [        U5      UU R#                  5       S9nURx                  Rz                  n[C        U[|        R~                  5      (       d
   U S35       eXR                  R                  Rp                  R                  U'   [        R4                  " U R                  X40 UD6nXR                  R                  R
                  U R                  '   [!        U R#                  5       5      (       d3  [        U R#                  5       USS SUS9URx                  R                  S'   U$ )Nr  r  dynamo.automatic_dynamic_shapesTr   FrL  )r   r_  excluded_valuera  r   rb  rd  r9  rd  r  rc  )Dr  r  r&  rY  rZ  unspec_variable_mapr  r   r  #force_unspec_int_unbacked_size_liker  r,   r  r  r4   r   r]   r  r  rV  r>   rW  r  rG   r  r   r  rN   rL   r  rX  rY  r)   r/  rS   r  automatic_dynamic_shapesscalarrJ   r   $get_automatic_dynamic_shapes_mark_asrd   rx  r  assume_static_by_defaultr.   r  !automatic_dynamic_exclusion_guardexcluded_scalarr  r   r  rh   rH   r  r  r  r  r  r  r  r  r  r  bound_symbolsr   r  r  )r,  r'  rx  r  r  frame_state_entrywrapped_valuer&  normalized_source_namebase_sourcer_  r  r  rA  r=  
unspec_vars                   r  r   VariableBuilder.wrap_symint
  s    E{c!!!99:::77>>55dii@@GGNN,,	8<CC%<<>M%m4GGNN((//M;;= $DOO$566EMM$8$8$G$G
 ##L$?$?@'..U;;OO;;##D 9#//6+/;;+C+C+^+^+`	! &;4;;;K;K%L"++K+}55)224#&//%,,< A4HBD;44((4--.223IAu:V 44(00 %++|;#$EuM##L$?$?@'..U;; ;;%1 "11 	  &JJ{{'.	 K M mV44$'<T-=P<Q%RSSGGNN((//M;;@ &doo&78888 ; ;<#**{{KKdoo/1BCCCCdoo'22<3J3JKLT__./**==FF#S$))4??$	 > 
 !%%**(ELL11WhZ?V3WW1=B""00:$++DGGUUWU
8B**4995!$//"344*2!#( #0+EJJOOJ' r  c           
      
   U R                   U R                  R                  R                  ;   a-  U R                  R                  R                  U R                      $ [	        U R                  U R
                  R                   [        R                  " U5      U R
                  R                  R                  5       S9n[        R                  R                  R                  (       d  [        U R                  5       5      (       d  [         R"                  " U5      (       d  [         R$                  " U5      (       dl  [        R&                  R                  R(                  R*                  (       d9  [-        SS5      (       d(  [        R.                  (       aP  UR0                  [2        La=  U R5                  [6        R8                  5        [:        R<                  " XR
                  S9$ [        R>                  " U[        R@                  S9n[        RB                  RD                  RG                  U5      (       a=  U R5                  [6        R8                  5        [:        R<                  " XR
                  S9$ [I        U R                  5       [J        5      (       a   e[M        U R                  5       RO                  [6        RP                  5      5        [S        U R                  5       5      nXAS.n[U        X0R                  SUS9nU R                  R                  RV                  RY                  [Z        R\                  " SS	U R                   5      [_        U5      UUS
9n[a        U R                  Xs5        [c        [d        4U R                  UUS S.UD6n[I        U[d        5      (       d   eXR                  R                  R                  U R                   '   U R                  Rf                  (       aB  [I        U R                  5       [h        5      (       d  [k        SU SU R                  5        35      eS n	URl                  Rn                  Rp                  S   n[s        U5      (       d   eUn	U	Rt                  U R                  Rt                  L d   SU	Rt                   S35       e[w        U R                  5       USU	SUS9URn                  Rp                  S'   [y        U R                  U R                  R                  Rz                  " SS/[}        U/0 5      Q76 5      n
U R                  R                  R~                  R                  [        U
R                  U R
                  S 5      5        [        5       R                  SSSS9  U
$ )Nr  z.pytorch/compiler:unspecialize_float_killswitchFr  )rO  )r   	raw_valuer  rb  rd  r9  rY  rA  rR  rS  =Dynamo attempts to add additional input during export: value=	, source=rR  fake mode (^) from fake tensor metadata doesn't match mode({self.tx.fake_mode}) from InstructionTranslatorTr  rc  call_methodrN  tensorify_float_attempt)	overwrite)Er&  rY  rZ  r  rN   r   rL   r  rX  rY  r  rV  r>   r  r]   r  mathisnanisinf	_inductorr  
cudagraphsr'   r  r  rJ   r  rG   r  r   r  r  float64r  r  is_gradtrackingtensorr/  rh   rH   r  r  rZ   r  r  r  r  r  r  r  r\  r   r  rd   r  rA  r  r  r#   r  r  r  r  r   r  r  r4   sym_numr   r  )r,  r'  r   r!  r   r  rR  rA  r$  r  r0  s              r  r  VariableBuilder.wrap_symfloat  s1    99:::77>>55dii@@5GGKK++E2'+{{'?'?'Z'Z'\
 MM  11!$//"344zz%  zz%   %%,,77OQVWW//%,,L@  ; ;<#**{{KK U%--@
 8844]CC ; ;<#**{{KK doo/1BCCCCdoo'22<3J3JKL #4??#45#8 7ggv
 **==FF#S$))4	 > 
 	%TWWeC&'
ww'
 

 *&ABBBB8B**499577>>*T__->"L"L OP]^ghlhwhwhygz{  !"((--22?C}%%%%) **dgg.?.?? 	
+556 7? ?	
?  '/OO#),'



# GGGGNN'' #J<4
 	$$++K		4;;PT,UV!!";TT!Rr  c           	      F   U R                   U R                  R                  R                  ;   a-  U R                  R                  R                  U R                      $ [        R
                  " U5      n[        U R                  5       [        5      (       d6  [        U R                  5       R                  [        R                  5      5        SU R                  5       0nUR                  SU05        [        X R                  SU R                  5       S9nU R                  R                  R                  R!                  ["        R$                  " SSU R                   5      ['        U5      UU R                  5       S9n[)        U R                  XR5        [+        [,        4U R                  UUS S.UD6nX`R                  R                  R                  U R                   '   [/        U R                  5       5      (       Gd'  U R                  R0                  (       aB  [        U R                  5       [2        5      (       d  [5        S	U S
U R                  5        35      eS nUR7                  5       (       a  UR9                  5       nO#UR:                  R<                  R>                  S   n[A        U5      (       d   eUnURB                  U R                  RB                  L d   SURB                   S35       e[E        U R                  5       USUSUS9UR<                  R>                  S'   U$ )Nr   r'  Fr  rb  rd  r9  r(  r)  r*  rR  r+  r,  Tr  rc  )#r&  rY  rZ  r  r  r  r/  r  rh   rH   r  rG   r  updater  r  r  r  r  r  r  r\  r   r]   r  rd   r  is_python_constantas_python_constantrA  r  r  r#   r  r  )r,  r'  r!  r  rR  rA  r$  r  s           r  r  ,VariableBuilder.wrap_unspecialized_primitive  s   99:::77>>55dii@@U+$//+->??$//+66|7N7NOPT__./U+,6ggt?P
 **==FF#S$))4??$	 > 
 	%TWWeC&'
ww'
 

 9C**4995!$//"344ww~~j1BK&P&P$STaSbbklpl{l{l}k~  !%,,.. * = = ? !+ 0 0 5 5 : :? K=)))) -$..$''2C2CC /99: ;C CC
 +3!#'-#0+EJJOOJ' r  )rp  r&  r   rY  )Tr)  NN)Rr  r  r  r  __doc__rj   rI  rQ  r*  r   r{  rw  r  r  r   r   r  rK  r  classmethodr  r  cacher  r  r  r   r  r  r  r   r  r  r  r  r  r   r  r   r  r  r  r  r  r  r   r  r  r   r   r  r   r  r   r  r  r  r  r   r   r  r4  r~  r  r  r  r  r  r  r  r	   r  r  r  r  r.   r3   r   r  r  r  ra  rb  s   @r  ro  ro    s   = %)	7#7 7 "	7
 
7 7&f  > >? >@
O 
 
F hsCx&8 T#s(^d=R  ;tFHS#X,>$>? ; ; __'d 'tFHSRUXDV<V7W '  'R+

3 +<P +
I'"7"7"< I I
[[&&66
	

s 
/J 
"H H HB __	c8.4oEFF	G  6R13 R1? R1h"Ps P P.p5c?DI|ZOPp	pd	H 	HO 	HH HO HH# H/ H <eem <8U <u|| D T $h h_ hT?& ?_ ?B'3 '? ')U ) )  3%01 
	   5'?23 
	   U{T!C'  
	  <@FU{T!C'F 3%01D8F 
	Fell t W W/ WrS& S& S&p '+04	AA t#A '-	A
 
AFO5 O_ Ob># >/ > >r  ro  objc           	         S n[        U [        5      (       a  U R                  nO[        SSU  S[	        U 5       3SU  S3/ S9  Uc   e/ n[
        R                  " U5       HY  nS nU R                  (       a+  [        U R                  S5      n[        XSR                  5      nUR                  [        X4S95        M[     [        U5      $ )	Nzdataclass fields failurezobj: z; variable type: z$Dataclass fields handling fails for z*. Expected it to be a user-defined object.r  __dataclass_fields__r9  )r/  r   r'  rF   r  r  r  r   rQ   rW   r&  r  r   )rB  r'  r  fieldr   base_srcs         r  r  r    s    E#011		.C5 1$s)=>seCmn		
 E##E*::!#**.DEH&x<F.uDE + r  r'  r  c                     [        U [        R                  5      (       aZ  [        U [        5      (       dE  [        R                  " U 5      (       a  [        U 5      UL d  U R                  (       d  [        U 5      n U $ r)  )r/  r  r4  r!   _is_functional_tensorr$   r  rr   )r'  r  s     r  _clone_inputrI    sZ    %&& uj)) ++E22'.);  &ELr  rY  r  rA  rR  rS  r  c                     U UUUS.UEnUc  [        SS[        0UD6$ [        SS[        0UD6nUR                  U 5        U$ )Nr(  rQ  r  )r\  r   r   install_global)rY  rA  rR  rS  r  kwargsr  s          r  r  r    sd     &&	
 F  ENEfEE #U.JUfUb!r  c                    U R                   (       a^  [        R                  R                  5          [	        X R
                  5      UR                  R                  UR                  '   S S S 5        g g ! , (       d  f       g = fr)  )	r  r  r  DisableTorchFunctionSubclassrI  r  tracerreal_value_cacher  )rY  rA  rR  s      r  r  r    sW     
yy XX2248D||9ELL))%**5 54	  54s   7A11
A?rQ  c                    Uc  [        XX#U40 UD6nO;[        U[        R                  5      (       a  [	        XX#U40 UD6nO[        X1X%X@5      n[        U[        R                  R                  R                  [        R                  R                  R                  45      (       a?  UR                  R                  S:w  a%  UR                  R                  R                  U5        U$ )Nplaceholder)_wrap_fx_proxyr/  r  r4  _wrap_fx_preexisting_tensorhandle_traced_outputrV  	variablesr   r   r  oprZ  r  record_proxyable_vt)rQ  rY  rA  rR  rS  r  outs          r  r\  r\  T  s     )E-
CJ
 
M5<<	0	0)E-
CJ
 #u}

 	''66''77	
 	
 JJMM]*
		  44S9Jr  r  c                    SSK Jn  [        U[        R                  5      (       d   S[        U5       35       e[        X5      (       d   eSU;   a.  US   b(  UR                  R                  R                  US   5        UR                  R                  S:X  a&  SUR                  R                  ;   d   SU S35       eO9SUR                  R                  ;  d   UR                  R                  S    5       e[        R                  R                  R                  5          [        U5      UR                   L a  O[#        XU5        UR$                  (       a]  [        R&                  R)                  5          [+        X1R                   5      UR,                  R.                  UR                  '   S S S 5        S	U [0        [2        4;   0nS
U;   a  US
   c   eUS
   US
'   [5        U4SU0UD6nUR6                  R
                  S:w  a&  [        U5      UR                   La  [9        SU 35      eS S S 5        [;        XX#XE5      $ ! , (       d  f       N= f! , (       d  f       N,= f)Nr=   r  z1_wrap_fx_preexisting_tensor expected tensor, got r  rR  rR  zplaceholder z* doesn't have 'example_value' in node.metar$  r   rY  r  zN`tensor` needs to be a `FakeTensor`wrapped by this instance of Dynamo. Found: )symbolic_convertr  r/  r  r4  r  rZ  r  r:  r  rW  r  rV  r  +_disable_saved_tensors_hooks_during_tracingr$   r  r  r  r  rN  rI  rO  rP  r   r   r  r  rD   construct_tensor_variable)rQ  rY  rA  r  rS  r  r  rL  s           r  rT  rT  |  s&    =fell++ 
;DL>J+ b44447wx0<
		 12 zz}}%%**//1 	
5'!KL	
1 ejjoo5 	
zz/0	
5
 
			H	H	Jv&",,6(F;yy XX::<@LAELL11%**= = Z"$@ABF w&78+<+HHH&x0F83FLrLVLF==''r||;*>>DXG ? 
KH %} 5 =< 
K	Js&    AI57H>,A=I>
I	I
Ic                    SSK Jn  [        X5      (       d   eSU;   a.  US   b(  UR                  R                  R                  US   5        SUR                  R                  ;  d   UR                  R                  S    5       e[        R                  R                  R                  5          [        UR                  USS9nS S S 5        [        UUUUUU 5      $ ! , (       d  f       N= f)Nr=   r[  r  rR  T)allow_non_graph_fake)r\  r  r/  rZ  r  r:  r  r  r  rV  r  r]  rv   rU  )rQ  rY  rA  rR  rS  r  r  s          r  rS  rS    s     =b44447wx0<
		 12%**//1Xejjooo6V5WX1 
			H	H	J 'uzz2DQ	 
K  
  
K	Js   .C
C*c                 V   SS K nSS KnSS Kn[        XR                  5      (       a  [        U 5      (       aK  UR                  (       a  [        R                  (       d%  [        S[        U 5      S/ [        R                  QS9  [        XQX XC5      n[        U[        5      (       d   eUR                  R                   R#                  X'[$        S9  U$ ['        UR(                  R*                  S5      (       ag  UR(                  R*                  R,                  S:X  aC  [        UR(                  R*                  R.                  UR0                  R2                  5      (       d-  UR(                  R*                  UR4                  R6                  L aG  [9        UR(                  R*                  5      [        Ld   e[;        UR(                  R*                  5      $ UR(                  R*                  UR0                  R<                  L d-  UR(                  R*                  UR>                  R@                  L a  [C        U 5      $ [E        XRF                  5      (       aI  [I        S U  5       5      (       a2  U  Vs/ s H  n[J        RL                  " U5      PM     n	n[O        U	40 UD6$ [        U [P        [R        45      (       Ga  [U        UR(                  U 5        / n
[W        U 5       H  u  pUc'  U
RY                  [J        RL                  " S#0 UD65        M/  URZ                  R]                  S	[^        R`                  X+40 S
9nSU;   a;  [        U [R        5      (       d   eUS   nURc                  5       n[e        UUSS9US'   OUnU
RY                  [g        S$UUUUS.UD65        M     [        XRF                  5      (       a  [O        X40 UD6$ [E        U [P        5      (       a  [i        U
40 UD6$ [E        U [R        [j        45      (       a  [m        U
40 UD6$ [o        U 5      (       d   S[9        U 5       35       e[i        U
URq                  S[s        5       5      S9n[t        Rv                  " [9        U 5      5      " U 4SU0UD6$ U b#  UR(                  R*                  URx                  L a  [J        RL                  " S#0 UD6$ [        XRz                  UR|                  UR~                  45      (       aS  UR                  R                  R                  X5        [U        UR(                  U 5        [        RL                  " XU 40 UD6$ [        XR                  5      (       a  UR(                  R*                  [        L dB  UR(                  R*                  [        5        VVs/ s H  u  nnUR                  PM     snn;   a[  [U        UR(                  U 5        S nUR(                  R*                  [        L a  UR(                  R                  S   n[        X U40 UD6$ [        XR                  5      (       a  UR(                  R*                  [        L dB  UR(                  R*                  [        5        VVs/ s H  u  nnUR                  PM     snn;   a[  S nUR(                  R*                  [        L a  UR(                  R                  S   n[U        UR(                  U 5        [        X U40 UD6$ [        R                  " UR(                  R*                  5      (       a/  [        UR(                  R*                  UR                  5      (       dB  UR(                  R*                  [        5        VVs/ s H  u  nnUR                  PM     snn;   a#  [U        UR(                  U 5        [        X S 40 UD6$ UR(                  R*                  S:X  a<  UR(                  R                  S:X  a"  [U        UR(                  U 5        [K        U 40 UD6$ U bq  [        XR                  5      (       aW  UR(                  R*                  S:X  a=  UR(                  R                  S:X  a#  [U        UR(                  U 5        [        X S 40 UD6$ [        U [        5      (       Ga{  UR(                  R*                  UR                  UR                  UR                  [        [^        R`                  UR                  R                  UR                  [^        R                  UR                  R                  R                  UR                  R                  R                  UR                  R                  R                  [        UR                  S[        5      [        UR                  S[        5      UR                  4;   d4  UR(                  R                  S:X  aG  UR(                  R*                  S:X  a-  [U        UR(                  U 5        [J        RL                  " U 40 UD6$ [        XR                  R>                  R                  5      (       a%  SSKcJdn  [U        UR(                  U 5        U" U40 UD6$ [        U [        5      (       Gav  UR(                  R*                  UR0                  R                  UR0                  R                  R                  UR                  R>                  R                  UR                  R>                  R                  UR                  R>                  R                  UR0                  R                  UR0                  R                  UR0                  R                  UR0                  R                  UR0                  R                  UR0                  R                  S/[S        [        R                  " 5       5      -   ;   a-  [U        UR(                  U 5        [J        RL                  " U 40 UD6$ [        U [        [        [        45      (       a  UR(                  R*                  [        L dQ  UR(                  R*                  [        L d4  UR(                  R                  S:X  aG  UR(                  R*                  S:X  a-  [U        UR(                  U 5        [J        RL                  " U 40 UD6$ [        U [        5      (       d  UR(                  R*                  S;   a-  [U        UR(                  U 5        [J        RL                  " U 40 UD6$ [        XR                  R                  R                  5      (       a  [        RL                  " UU 5      $ [        [9        U 5      5      (       a  [        [9        U 5      5      (       a  [        RL                  " U U 5      $ UR                  R                  R                  UR                  R                  U 5      n[        RL                  " UU5      $ [        SS[        U 5       S UR(                  R                   S!UR(                  R*                   3S"/ S9  g s  snf s  snnf s  snnf s  snnf )%Nr   z4Attempted to wrap sparse Tensor with VariableTrackerzBtorch.compile does not support sparse Tensors with VariableTrackerr  )mutation_type_clsr  	set_statec              3   B   #    U  H  n[        U[        5      v   M     g 7fr)  )r/  r  rA  s     r  rk  'handle_traced_output.<locals>.<genexpr>!  s      3$1q
1cMs   r]  )kindtargetrJ  rL  r   FrT  )rQ  rY  rA  rR  z)expected namedtuple or structseq but got r  r  r3  queryr-  record_eventget_rankget_world_size
bit_lengthr   r   
is_integerrN  )r  	__round__ztorch.* op returned non-Tensorzexample_value type: z; op: z
; target: zUtorch.* ops that return a non-Tensor cannot be traced into the Dynamo FX graph outputr)  r  )torch._functorch.vmaptorch._subclasses.fake_tensortorch._utilsr/  r4  r%   r  r>   r  rF   rK  r?   r  r^  r   rZ  r  
_track_objr   r  r  rg  r  rQ  r  	Generatorr  set_rng_stater  r   _DisableFuncTorchr  _is_in_bad_forkr   r   r  r  r   r  r   r  r  r   r  r  rO  r  operatorgetitemrl  r[   r\  r   r6   r   r~   r  r   r   r  manual_seedr   SymFloatr  r  track_produced_symintsr   r  r   rC   current_streamrJ  r   r  r   rf  rg  r  rW  r  sym_intsym_maxsym_minr  _utils_element_sizeseedmodr  vmap_validate_and_get_batch_sizepredispatch_vmap_increment_nesting_vmap_decrement_nestingr  r  _constrain_as_sizebackends
SDPAParamssdpar   rI   _are_functorch_transforms_activeis_batchedtensoris_flash_attention_availablecan_use_flash_attentioncan_use_efficient_attention_get_cudnn_sdp_enabled_get_flash_sdp_enabled_get_mem_efficient_sdp_enabled_get_math_sdp_enabled_get_overrideable_sdp_enabled_is_autocast_availabler   r   r  r   r   r  r  r  r   r   r   r  r  r   )rR  rY  rA  r  rS  rQ  r  r)  rB  sizesunpackedr6  r!  proxy_ir   	options_ir3  rd  device_interfacer7  r   rB  s                         r  rU  rU    s    !(-.. ''		!>!>NM*`8)778	 (E-
 #////
		))*> 	* 	
 


!!:..JJ&&+5uzz((115883E3EFF:: : ::EJJ%%&c111+EJJ,=,=>>

UXX777::

 : ::(77	zz	*	*s 3$13 0 0 6CC]!((+]CE-W--	ME4=	1	1%**m4.FA{$++<G<  ,,33(#++	 4  w& &mT::::$X.F 'I*7#',+Ih' !(I % #-%&) $
= /R mZZ00  ;7;;M5)) 5W55MD.#9::4G44 // ;D<O;PQ/ %%kk/;K;MNH ,66tM7JK!  
 
	%**"3"3u7H7H"H&&7w77	MLL%..%--#P	Q	Q
		  77M%**m4%%bJ'JJ=,,//JJ!==			#C#E#EA 	''#E 
 	%**m4:: <<JJOOA&EeEEWEE=++..JJ!==			#C#E#EA 	''#E 
 :: <<JJOOA&E%**m4U5DGDD

))**uzz((%++66			#C#E#EA 	#E 
 	%**m4U4C7CC			g	%%**--=*H%**m4999!}kk22JJ/JJMM]*%**m4U4C7CC	M3	'	'

MMMMMMLL&&JJLL!!>>((@@((@@E%%z8<E%%'7B $$#
	
, JJMM]*uzz/@/@L/P 	%**m4&&}@@@	M>>#6#6#A#A	B	B,%**m4!%3733	M4	(	(

HH55HH00NN<<NN77NN;;HH++HH++HH33HH**HH22HH++
 388:
;<	<" 	%**m4&&}@@@	MC#5	6	6

^+::
*JJMM]*uzz/@/@F/J%**m4&&}@@@	M5	)	)UZZ->->BV-V%**m4&&}@@@	M>>#E#E#V#V	W	W )//
 	
 
]+	,	,] 344,33   ..<<NNII
 )//
 	

 	4*7=+A*B&Wabgblblbsbsatuo		
[ DXs   * xxxx%c                 4   [        U 5      [        R                  [        R                  R                  [        R
                  R                  R                  [        R
                  R                  R                  4;   d  [        U 5      (       a  g [        U 5      $ r)  )r  r  r4  r  r  rJ  r#  r!   r  r  r9   rL  s    r  r  r    sm    E{%%00++<<	 
 
'u	-	-$ E{r  c                    U R                  U5      n[        U[        R                  R                  R
                  5      (       a  UR                  UR                  L a  U(       a  UnO[        U[        R                  R                  5      (       a  [        R                  R                  nOT[        U[        R                  R                  5      (       a  [        R                  R                  nO[        R                  nXTS'   U$ )N
class_type)
specializer/  r  rJ  r#  r!   r  r  r  r  r4  )rQ  rY  rR  rS  specialized_propstensor_types         r  get_specialized_propsr    s     #--m< 	=%"3"3"?"?"J"JKK##r||3'Kuxx'9'9::((,,Kuxx77((//K,,K*5,'r  c                    [        X1R                  5      n[        UR                  U5        UR                  R                  S:w  a%  UR
                  R                  R                  X25        UR                  [        XX45      5        U " U40 UD6$ )z
Actually construct a tensor variable after all the pre-processing from
wrapping a pre-existing or newly created tensor value.
rR  )
rI  r  r   r  rW  rZ  r  r|  r:  r  )rQ  rY  rA  rR  rS  r  s         r  r^  r^  /  sn     !=Mejj-0
 zz}}%
		  77MNN(VWe'w''r  c                      [         R                  S:X  a  [        R                  $ [         R                  S:X  a  [        R                  $ [        S[         R                   35      e)Ndynamicunbackedz+invalid automatic_dynamic_shapes_mark_as = )r>    automatic_dynamic_shapes_mark_asr.   r  r  r  r  r  r  r  r  K  sT    ..);!!!		0	0J	>"""9&:a:a9bc
 	
r  _DYNAMIC_SOURCES_DYNAMIC_SOURCES_CONFIG_HASHc                  ^   [        [        R                  R                  R                  5      n [
        b  [        U :X  a  [
        $ [        R                  R                  R                  R                  SS5      R                  S5       Vs1 s H  nU(       d  M  UiM     snqU q[
        $ s  snf N r  ,)	hashr  compilerr>   dynamic_sourcesr  r  replacesplitcurrent_hashss     r  get_dynamic_sourcesr  Z  s     --==>L #(D(T
 &&66>>sBGMMcRRA 	
R
 $0    
B*B*source_namec                     [        5       nU H<  nX :X  d  [        R                  " X 5      (       d  M%  [        R	                  SU U5          g   g)NzA%s was marked dynamic due to dynamic source allowlist pattern: %sTF)r  r  matchr"  r#  )r  r  patterns      r  r  r  n  sG    )+O"!RXXg%C%CIIS
  # r  r&  r  c           
         UR                  5       n[        U5      (       d  UR                  5       nUR                  5       nS /U-  n[	        U5       Vs/ s H
  otU   U* 4PM     nnUR                  [        S9  0 n	U H;  u  pU* nU	R                  X5      Xg'   U	R                  XU   -  [        U5      5        M=     O/ n[        U U[        R                  " [        U5      [        U5      5      5      $ s  snf )N)r  )sizer%   stridedimr  sortr-   r  
setdefaultrM   rN   rL   make_tensorr  )rY  r&  r  ex_size	ex_strider  r  r6  pending
candidatesi_strideneg_is               r  record_automatic_dynamicr  {  s     ffhGHHJ	eeg#/4Sz:z!aL1"%z:/0
&OHA"x:FI!!(QZ"7QH  ' $
''gfF  ;s   C4_UNBACKED_SOURCES_UNBACKED_SOURCES_CONFIG_HASHc                  ^   [        [        R                  R                  R                  5      n [
        b  [        U :X  a  [
        $ [        R                  R                  R                  R                  SS5      R                  S5       Vs1 s H  nU(       d  M  UiM     snqU q[
        $ s  snf r  )	r  r  r  r>   unbacked_sourcesr  r  r  r  r  s     r  get_unbacked_sourcesr    s     -->>?L $)F,)V  
 &&77??RHNNsSSA 	
S
 %1!r  c                     [        5       nU H<  nX :X  d  [        R                  " X 5      (       d  M%  [        R	                  SU U5          g   g)NzC%s was marked unbacked due to unbacked source allowlist pattern: %sTF)r  r  r  r"  r#  )r  r  r  s      r  r  r    sH    +-#!RXXg%C%CIIU
  $ r  r   static_shapes
outer_onlyc                   ^1^2 U R                   (       aI  [        U [        R                  R                  R
                  R                  5      (       d  [        SSS/ S9  UR                  nUR                  R                  R                  R                  U S 5      nU(       a  UR                  O0 nS nU R                  5       (       a#  [        US5      n	[!        U R"                  XU5      n[%        U 5      (       Ga  U(       d  [!        XX#SS9n
[        U
[&        5      (       d   e0 n[)        U 5      R+                  U 5      u  pU Hl  n[-        X5      ==[        R.                  S` =b   u   n  [        X.5      n[!        XUU5      X'   MC      =[0        S` =b  u     MU    n[3        S	[)        U5       35      e   [5        U
R6                  U
R8                  U
R:                  U
R<                  UU
R>                  U
R                  US
9$ U(       a  [A        U5      (       ds  ['        [B        RD                  /U RG                  5       -  [B        RH                  /U RG                  5       -  S /U RG                  5       -  S /U RG                  5       -  UUUS9$ SSK%J&m2  [O        U24S jU RQ                  5        5       5      (       a  ['        U RQ                  5        Vs/ s H8  n[        U[R        5      (       a  [B        RT                  O[B        RD                  PM:     sn[B        RH                  /U RG                  5       -  S /U RG                  5       -  S /U RG                  5       -  UUUS9$ [W        XU 5      n[Y        U 5      n0 m1S[Z        SSS[\        SS 4U14S jjnSSK/J0n  UR                  Rb                  bj  UR                  Rb                   HP  n[        UU5      (       a  M  URd                  U:X  d  M(  U" URF                  URf                  UR                  5        MR     / n/ n/ n/ n/ n[i        U RG                  5       5       GH  nU[-        U S[k        5       5      ;   nU[-        U S[k        5       5      ;   nU[-        U S[k        5       5      ;   n U[-        U S[k        5       5      ;   n!U[-        U S[k        5       5      ;   n"URm                  [-        U S0 5      R                  U/ 5      5        [o        UR                  5      n#Un	[        U	[p        5      (       a  U	Rs                  5       n	U (       dQ  [        U	[t        5      (       a  U	Rv                  b}  [y        U	Rv                  5      R                  U#US05      U   (       aN  [z        R}                  SU5        [~        /U RG                  5       -  n$[        U$U'   U[        R                  " U$S9-  n[        R                  =(       a    UR                  U5      n%[        R                  =(       a    UR                  U5      n&[A        U5      (       a  [z        R}                  SU5        Sn%[        U5      (       a  [z        R}                  S U5        Sn%U%=(       d    U&n'T1R                  U5      nUGcA  S n(S n)U (       a  [        R                  (       d  S n)[        U S!5      (       a  U R                   V*s/ s H  n*U*RF                  U:X  d  M  U*PM     sn*R                  5       n+U+R                  c  U+R                  c
  [        SS"9n(OSS#K%JOn,  U," [        U+R                  U+R                  S$9SS%9n(O[        SS"9n(OU(       a
  [        SS"9n(OU"(       d4  U'(       a-  [        S&S5        U%(       a	  [        SS"9n(U&(       a	  [        SS"9n)O_U"(       d!  [        R                  (       d  [        S&S5        S n(S n)O2Uu  n(n-S n)U S'U S(3n.U-UR                  R                  R                  U.'   URm                  U(5        URm                  U)5        U(       d  [        U5      (       a  [B        R                  n/OU(c,  U (       d%  U!(       d  T2" U RQ                  5       U   5      (       a#  U'(       a  [        5       n/OU[B        RT                  n/ODU(       d  [        R                  (       d  U"(       a  [B        RD                  n/O[B        R                  n/U)b  [B        RT                  n0O[B        RH                  n0URm                  U/5        URm                  U05        GM     ['        UUUUUUUU[-        U S)S 5      [-        U S*S 5      UR                  S+9$ s  snf s  sn*f ),NzGEncountered strided NestedTensor in automatic dynamic dim determinationr  r  r  r  T)r  r  z#expected Tensor or OpaqueBase, got )dynamic_sizesdynamic_stridesconstraint_sizesconstraint_stridesview_base_contexttensor_source#shape_env_to_source_to_symbol_cacheinner_contexts)r  r  r  r  r  r  r  r   )is_nested_intc              3   l   >#    U  H)  n[        U[        5      =(       a    T" U5      (       + v   M+     g 7fr)  )r/  r   )ri  r  r  s     r  rk  %_automatic_dynamic.<locals>.<genexpr>  s(     
L8a:a 9q)9%998s   14r  constraint_rangeStrictMinMaxConstraintr&  r	  c                    > U T;   a=  SSK Jn  TU    u  pEU" UR                  UR                  -  SS9nU=(       d    UnXg4TU '   g X4TU '   g )Nr   r  Fvrrv  )%torch.fx.experimental.symbolic_shapesr  r  )	r  r  r&  r  old_constraint_rangeold_namenew_constraint_rangenew_namedim2constraints	           r  update_dim2constraint1_automatic_dynamic.<locals>.update_dim2constraint)  sg     . T-;C-@* #9#&&)=)@)@@$   '4H"6"@N3"2"8N3r  )_RelaxedConstraint_dynamo_strict_unbacked_indices_dynamo_unbacked_indices_dynamo_dynamic_indices_dynamo_weak_dynamic_indices_dynamo_static_indices_specialize_onFz#automatic dynamic %s marked dynamic)r  r  r  _dynamo_dynamic_rangeru  r  )lowerupperr  r  z.size()[]_dynamo_shape_ids_dynamo_unbacked_bounds)r  r  r  r  specialize_onr  r  r  	shape_idsunbacked_boundsexcluded_sizes)Yr  r/  r  r  r  r  r  rF   r&  rZ  tracing_contexttensor_to_contextr  r  r  rQ   _automatic_dynamicr  r9   r0   r  r  r  r4  r   r  r1   r  r  r  r  r  r  r.   r  r  INFER_STRIDEr  r  r  r  r   r  r  rh  r  rK  r  r  export_constraintst_idr  r  r  r  r)   rS   r  rd   rx  r  r"  r#  rK   rJ   rL   	make_sizer>   r  is_size_dynamicis_stride_dynamicr  allow_ignore_mark_dynamicr  r  popminmaxr/   r  r;   r   r  source_name_to_debug_namer  r  r  DUCKr  )3r  rY  r   r  r  r&  prior_policyr  r  r#  outer_contextr  r  rd  r  r  r   
unexpectedr  r   r  r  r  rw  r  r  r  r  r  r6  marked_strict_unbackedmarked_unbackedmarked_dynamicmarked_weak_dynamicmarked_staticr"  	mark_sizeautomatic_dynamic_sizeautomatic_dynamic_strideautomatic_dynamicconstraint_sizeconstraint_stridedr	dim_ranger  name_dim_namedynamic_sizedynamic_strider  r  s3                                                    @@r  r  r    s'    	{{:	5<<!!//<<  	]M		
 ;;D99,,>>BB1dKL<H88b (
 15zz|| 1.qwwW$Q''
*6T
 -)@AAAA 7--a0D!"2U\\^2#-f#;L+=#},N( 3
 "Z\ "(=d:>N=OP   ''55)99*;;,??/'550=0a0a)	
 		
 .t44&%,,-7'445?"Vaeeg- $v// 0S
 	
 D

L1668
LLL& !A '1F&;&;
""ARARR! (445?"Vaeeg- $v// 0S
 	
 11= a5DN99$<9DG9	9$ ?	yy##/))66J*&899$&%NNJ$?$?	 7 MOM1557^!"g0#%'
 "
 wq*DceLLga)BCEJJ71.Lce#TTWQ(@#%HHWQ(8"=AA!RHI
 "7v{{!Ck=11%..0K{K00$$0[))*../E5zRSTU II;TB#quuw.I'IaL!4!>!>I!NN ++T0A0Q0QRS0T 	 ++V0A0S0STU0V 	! T""II>E%)"d##II?F%)"2N6N
 $''*
"O $f&F&F$(!1566%&%<%<!%<r!%<!ce  !}},1F*AE*R +A*immT&++
 '>&NO'"9E"J"'8 A4H)&=&MO+(?$(O%$V-L-L#$EuM"&$(!%/"OU $xs!,HFKBII99(C0!!"34066%..L'"QVVXa[))
 !CE)11f==%,,L &??L('//N'44N\*~.K N ##')-#+,O!0$7#<dC(77 z!s   ?eee)parent_contextr$  r"  c                J   [         R                  " 5       n [        XX#US9UR                  R                  =R
                  [         R                  " 5       U-
  -  sl        $ ! UR                  R                  =R
                  [         R                  " 5       U-
  -  sl        f = f)Nr   r$  r"  )ru  rv  $_wrap_to_fake_tensor_and_record_implrZ  rx  !wrap_to_fake_tensor_and_record_ns)r  rY  r   r$  r"  rz  s         r  r  r    sx     ,,.C
3&n
 			**LLLLNS 	
L		**LLLLNS 	
Ls   
A! !AB"c          
        ^ ^^^ [        T 5      [        R                  [        R                  R                  [
        4;   d0  [        T [        R                  5      (       d  [        T 5      (       GaK  Tc   e[        T UTS9u  pVU(       d  [        T TTU5      mO2[        T[        5      (       d   eTR                  nUR                  U   m[        R                  STR                  [!        T R"                  5      T[        T 5      5        [%        5          TR&                  c   e[)        U UUU4S j5      nS S S 5        Tb  [        W[
        5      (       ak  UR*                  =n	b\  [        T[,        5      (       a  TR.                  n
O[1        T5      n
TR2                  R4                  R7                  [9        XT5      5        [        W5      (       ac  UR;                  5       u  pU HK  n[=        X5      n[=        T U5      n[        TU5      n[?        UTU[        U[        R                  5      TS9  MM     TTR2                  R@                  RB                  T '   [E        U5      (       a  URF                  (       a  URI                  5       OURK                  5       nURM                  5       SURN                  -  URM                  5       URQ                  5       S.TR2                  RR                  T'   O8URM                  5       URQ                  5       S.TR2                  RR                  T'   U(       a  U(       a  TRU                  5       (       dq  [W        T5      (       da  TR2                  R4                  R7                  [9        UTT5      5        TR2                  RX                  [[        T 5         R7                  T5        U$ T $ ! , (       d  f       GN= f)N)r  zwrap_to_fake %s %s %s %sc                  :   > TR                   R                  T TTS9$ )N)r   symbolic_context)r  r,  )r  r   r)  rY  s   r  rW  6_wrap_to_fake_tensor_and_record_impl.<locals>.<lambda>)  s"    00!%5 1 r  r$  )r   )r  r  values_sizevalues_stride)r  r  ).r  r  r4  r  r  r!   r/  r9   r   r  rQ   rj  r  r"  r#  r&  r  shaper   r  r   	item_memorZ   r8  rR   rZ  r  r  r4   r  r  r  r  r   r%   	is_sparse_valuesvaluesr  ndimr  input_source_to_sizes_stridesr  r]   tracked_fakes_id_to_sourcerh  )r  rY  r   r$  r"  r  _reasoninner_context_namefake_esym_valitem_sourcer  rd  r  
fake_innerinnerr   r1  r)  s   ```               @r  r%  r%    s    	QELL%(("4"4jAAa&&(++!!!!? "
 1!RO fj1111!'-<<=OP		&KK!''NG	
 &'<<+++(F ( 6:..",,,9 &"344$kk26:II##**G2BC )00002HE$V2
4()&$7.'(U\\B#3	  :J		!!33A6   *0)9)9V^^%v}}F ,%{{}!'?BII33F;  --/?BII33F; "v'F'F'H'H&v..II##**FF,<= II00A7>>vFO ('s   "N>>
Oc            
          \ rS rSrSrSS jr\\SSS\\	\
      \\\
\
4      -  \\\
S	4      -  \\\
      -  S\4S
 j5       5       r\\SSS\\
   S\4S j5       5       r\\SSS\\
S	4   S\4S j5       5       r\\SSS\\-  \-  \-  S\4S j5       5       r\\SSS\
S\4S j5       5       r\SSS\
S\4S j5       r\S\S\4S j5       r\S\\\S\
/\4   4   4S j5       rSrg)r  ip  a  
Like builder, but stateless and does not require a source. Useful for simple type->VT objects, or objects
that are being created/evaporated during inlining (ex: consider a locally made list of tensors we then iterate over
.), such a list should not show up as an artifact from inputs, nor in reconstruction, nor in the graph. However,
there may be reasons to represent it as a ListVariable internally.

NOTE - Objects produced here are born UNGUARDED due to the nature of sources!

NOTE - This class is very new! It will have some rough edges, but it was created to stem the bleeding of giant
if/else type->VariableTracker trees that were cropping up all over dynamo.
r	  Nc                     [        S5      e)NzUse SourcelessBuilder.create()r  r5  s    r  rQ  SourcelessBuilder.__init__}  s    =>>r  rY  r  r'  .c                     g r)  r  rY  r'  s     r  r  SourcelessBuilder.create  s     r  c                     g r)  r  rA  s     r  r  rB    s    SVr  c                     g r)  r  rA  s     r  r  rB    s     r  c                     g r)  r  rA  s     r  r  rB    s     r  c                     g r)  r  rA  s     r  r  rB    s    PSr  c           
      n   [        U5      n[        R                  R                  U5      nU(       a  U" X5      $ [	        U[
        5      (       a  U$ [        [        U5      5      (       a5  [	        U[        R                  5      (       d  [        R                  " X5      $ [        [        U5      5      (       aU  [        R                  R                  R                  U R                   R"                  U5      n[        R                  " UU5      $ [	        U[$        R&                  5      (       a  [)        U5      $ [*        R,                  " U5      (       a  [*        R                  " U5      $ [/        U5      (       a_  [0        R2                  " U5      bH  [0        R4                  " U5      (       a  SU R                   l        [0        R2                  " U5      " U5      $ [/        U5      (       a_  [8        R:                  " U5      (       aD  [0        R2                  " UR<                  5      " UR<                  5      n[?        US[        U5      S9$ [A        U5      (       a  [0        RB                  " U5      " U5      $ [	        U[        R                  [        RD                  [        RF                  RH                  RJ                  45      (       a  [)        U5      $ [	        U[         [L        RN                  45      (       aI  [Q        [        U5      [         5      (       a   [Q        U[R        5      (       a  [U        U5      $ [9        U5      $ [	        U[V        RX                  5      (       a  [[        U5      $ [	        U[V        R\                  5      (       Ga  [	        UR<                  [         [L        RN                  45      (       au  [_        UR<                  UR`                  Rb                  5      U:X  d   e[        R                  XR<                  5      n URe                  XR`                  Rb                  5      $ U R                   Rh                  Rj                  R                  [m        UR<                  5      5      nUb4  [        Rn                  Rp                  Rs                  UR`                  U5      $ GO'[	        U[        Rt                  Rv                  Rx                  5      (       a  [{        U5      $ [	        U[        R|                  R~                  R                  5      (       a  [)        U5      $ [	        U[        R                  5      (       a  [        U5      $ [	        U[        Rn                  Rp                  R                  R                  5      (       a    [*        R                  " [        U5      5      $ [	        U[        [        R                  R                  5      5      (       a3  [        Rn                  Rp                  R                  R                  U5      $ [	        U[V        R                  [V        R                  45      (       a  [        U5      $ [        U5      (       av  [        [        U5      5       Vs/ s H"  n[        R                  U [_        X5      5      PM$     n	n[        U	[        5       S9n
[        R                  " [        U5      5      " XS9$ [	        U[        R                  5      (       aq  UR                  R                  U R                   R                  ;   aC  U R                   R                  UR                  R                     n[        R                  " X5      $ [	        U[        5      (       a:  S Vs/ s H"  n[        R                  U [_        X5      5      PM$     nn[        X5      $ [        U[        5      (       a  [        U5      $ [        SUR                   SUR                   3S	U 3/ [        R                  QS
9  g ! [f         a     NEf = f! [        Rn                  R                  R                  [        Rt                  R                  R                  R                  4 a>    [        R                  " UR                  R                  5       UR                  /0 5      s $ f = fs  snf s  snf )NTr  rS  rh  )r3  ru  z%Unexpected type in sourceless builderr  z3SourcelessBuilder.create does not know how to wrap r  )lr  r  _type_handlersr  r/  r   r   r  r  r   r  r   r  r  r  r  rZ  r  r  _HAS_DEFAULT_FACTORY_CLASSr   r   r  r  rB   r  r  r  r   is_supported_new_methodrQ  r   r{   r  r  r  r  r  abcABCMetar  r  r   r  r  r   r  r  rN  r  var_getattrr  r  id_to_variablerh  rV  rV  UserMethodVariabler  graph_moduleGraphModuler   r  rF  TreeSpecr  r  r   lazyLazySymNodeFormatStringrK  exc	UserErrorr  symbolic_shapesGuardOnDataDependentSymNoder   fmt_varr<  sym_node_varr  flex_attention_backwardhigher_order_ops&FlexAttentionBackwardHighOrderVariableGenericAlias	UnionTyper   r~   r   r   r   r   r  r   r  r  r  r   r  r   r   r*  r   rF   r  r  r?   
DYNAMO_BUG)rY  r'  
value_typefast_handlerrB  rB  
cls_obj_vtobj_vtr&  rZ  r3  rA  r  r  s                 r  r  rB    so   %[
(77;;JG**e_--L!$u+..z%7S7S,33EAA%d5k22#nn@@RR		##UO -33 
 {EEFF,U33((//#**511e__!<!<U!C!O..u55>B		;..u5e<<e__!9!Q!Q"
 "

 --enn=ennMC"3	4;GG#E**%%e,U33YY))588+>+>+L+LM
 
 -U33ckk233$u+t,,E=1Q1Q8??+E22u6677(//u//00%..4*=>>u~~u~~/F/FG5PPP.55b..I
%11"nn6M6MNN
 //>>BB2ennCUV% ==22EE  & uxx44@@AA077u{{22;;<<,U33rzz**'..u}}66;;SSTT'..s5z:: tE$;$;$S$STUU==**;;bb   2 2EOODEE!%((5!! .d5k::D "((WU-AB:   %V;K;MNH+66tE{C  uell++

299#:#::II++EJJOO<E"))"44u%% 32A "((WU->?2   !++E6""!%((;!,,-Qz/F/F.GHMj\Z1%001		
u + * !!++%%55QQ  ,22MM446''( 	 s1   $` 
` .)b-7)b2
``Bb*)b*c                 d    [         R                  " U 5      (       d   e[         R                  " U S9$ )NrL  )r   r  r  rL  s    r  wrap_constant_literal'SourcelessBuilder.wrap_constant_literal  s*    **51111&&U33r  r  c                    ^ [         R                  m0 n [         H  nS X'   M
     U4S jU [        '   U4S jU [        '   U4S jU [
        '   U4S jU [        '   U4S jU [        '   U4S jU [        R                  '   U [
           U [        R                  '   U [
           U [        '   U [           U [        '   U4S jU [        R                  '   S	 U [        R                   '   S
 U ["        R$                  '   S U [&        R(                  '   S U [        R*                  '   S U [        R,                  '   S U [        R.                  R0                  R2                  '   S U [        R4                  R6                  R8                  '   S U [        R4                  R6                  R:                  '   S U [        R4                  R6                  R<                  '   SSS[>        S[>        4S jn[@        RB                   H  nX U'   M	     U $ )Nc                     [        U5      $ r)  r   rA  s     r  rW  6SourcelessBuilder.make_type_handlers.<locals>.<lambda>*  s
    ,<U,Cr  c           	      `   > [        U Vs/ s H  nT" X5      PM     sn[        5       S9$ s  snf Nrh  )r   r   rY  r'  rB  r  s      r  rW  rj  +  s)    +$)*EqVB]E*:J:L+
*   +c           	      `   > [        U Vs/ s H  nT" X5      PM     sn[        5       S9$ s  snf rl  )r   r   rm  s      r  rW  rj  .  s*    1C$)*EqVB]E*:J:L2
*rn  c                    > [        UR                  5        VVs0 s H  u  p#T" X5      T" X5      _M     snn[        U5      [        5       S9$ s  snnf rl  )r   r  r  r   rY  r'  r  r  r  s       r  rW  rj  1  sB    +<6;kkmDmdaVB]F2M)mDK*,,
Ds   A
c           	      `   > [        U Vs/ s H  nT" X5      PM     sn[        5       S9$ s  snf rl  )r   r   rm  s      r  rW  rj  6  s)    <$)*EqVB]E*:J:L,
*rn  c           	      R   > [        U Vs/ s H  nT" X5      PM     sn5      $ s  snf r)  )r   rm  s      r  rW  rj  9  s#    M$)*EqVB]E*-
*   $c           	      R   > [        U Vs/ s H  nT" X5      PM     sn5      $ s  snf r)  )r   rm  s      r  rW  rj  <  s#    $)*EqVB]E*2
*rt  c                    > [        [        UR                  5        VVs0 s H  u  p#T" X5      T" X5      _M     snn[        [	        5       S95      $ s  snnf rl  )r   r   r  r  r   rq  s       r  rW  rj  D  sF    =Q:?++-H-$!r--H.0>
Hs   Ac                     [        U5      $ r)  )r   rA  s     r  rW  rj  L  s
    6u=r  c                 &    [        U[        5       S9$ rl  r   r   rA  s     r  rW  rj  N  s    8Q!1!39
r  c                     [        5       $ r)  )r   rA  s     r  rW  rj  Q  s    4G4Ir  c                     [        U5      $ r)  )r   rA  s     r  rW  rj  R  s
    7KE7Rr  c                 &    [        U[        5       S9$ rl  )r   r   rA  s     r  rW  rj  T  s    ;Q!1!3<
r  c                 &    [        U[        5       S9$ rl  )r   r   rA  s     r  rW  rj  X  s    :%5%7r  c                 &    [        U[        5       S9$ rl  ry  rA  s     r  rW  rj  ^      7%5%7r  c                 &    [        U[        5       S9$ rl  ry  rA  s     r  rW  rj  c  r  r  c                 &    [        U[        5       S9$ rl  ry  rA  s     r  rW  rj  h  r  r  rY  r  r'  r	  c                     U$ r)  r  rA  s     r  passthrough9SourcelessBuilder.make_type_handlers.<locals>.passthroughm  s    Lr  )"r  r  rs   r  r8   r  r  r  r  r  r  r  r5   r6   r  r  r  rf  r  r  r  r   r  r  r  r  distributionsconstraints_Real	_Interval
Constraintr  r   all_subclasses)handlersr  r  r  r  s       @r  make_type_handlers$SourcelessBuilder.make_type_handlers!  s    #))  	 'ACHK '
 




 
 -5TN(()#+D> #+D> ,
''( > 	++,'
""# #J%R!!"*
%%& 	!!--BBC 	$$00667 	$$00::; 	$$00;;<	3 	A 	! 	 '55C'SM 6r  r  rF  )r  r  r  r  r?  rQ  r	   r.  r  r  r   r  r  r  r   r  r   r   rI  r  r  rK  r   r   r*  rf  r   r  r  r  r  r  r  r  p  s   
? 'CH~
tCH~

uS#X
  tCy/ 
   V.VtCyV\V  V'05c3h	   '04s
U0BS0H	   S.SsSS  S{
. {
s {
 {
 {
z 4V 4 4 4 Ph/5FGG! P Pr  r  c                   B    \ rS rSrSrSS jr\SSS\S\4S	 j5       r	S
r
g)"SourcelessUserDefinedObjectBuilderix  z
SourceLessBuilder does not return a UserDefinedObjectVariable, but in some
cases it might be ok to return UserDefinedObjects. In such case, use this
builder.
r	  Nc                     [        S5      e)Nz/Use SourcelessUserDefinedObjectBuilder.create()r>  r5  s    r  rQ  +SourcelessUserDefinedObjectBuilder.__init__  s    NOOr  rY  r  r'  c                     [        U5      n[        U[        5      (       a  [        U[	        5       S9$ [        U[        R                  R                  5      (       a  [        U[	        5       S9$ [        U[	        5       S9$ rl  )r  r  r   r   r   r/  r  r  r  r   r   )rY  r'  ra  s      r  r  )SourcelessUserDefinedObjectBuilder.create  sg    %[
j.11)%?O?QRRuxx//0%5%7  -UBRBTUUr  r  rF  )r  r  r  r  r?  rQ  r.  r   r   r  r  r  r  r  r  r  x  s<    P 	V* 	V3 	V? 	V 	Vr  r  r>  r)  )F(  r?  rK  r  r  rl  r  r  r  rf  r  r  r0  rx  r  r  r  ru  r  r  collections.abcr   r   r   typingr   r   r   r	   r
   r   r  r  r   torch._dispatch.pythonr   #torch._dynamo.graph_bytecode_inputsr   r   r   torch._dynamo.utilsr   r   r   r   r   torch._guardsr   "torch._higher_order_ops.flat_applyr   !torch._higher_order_ops.torchbindr   torch._library.opaque_objectr   r   r   r   torch._opaque_baser   
torch._opsr   r   r    rq  r!   r"   r#   r$   torch._subclasses.meta_utilsr%   r&   torch._utils_internalr'   %torch.fx.experimental._backward_stater(   torch.fx.experimental._dynamismr)   torch.fx.experimental.sym_noder*   r+   r  r,   r-   r.   r/   r0   r1   r2   r3   r4   torch.fx.immutable_collectionsr5   r6    torch.nn.utils._expanded_weightsr7   torch.utils._ordered_setr8   torch.utils._python_dispatchr9   r:   torch.utils._sympy.value_rangesr;   torch.utils.weakr<   r  r>   r?   r@   rA   rB   r  rC   rU  rD   rE   rF   r  rG   rH   rI   pgorJ   rK   rL   rM   rN   r  rO   r   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   r  ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r8  r   r   r   r   r   r   r   builtinr   constantr   ctx_managerr   r   r   r   r   r   dictsr   r   r   r   r  r   	functionsr   r   r   r   r   r   r   r   r   r   r   r\  r   r   iterr   r   rS  r   r   listsr   r   r   r   r   r   r   r   miscr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   	nn_moduler   r   r   	optimizerr   script_objectr   r   r  r   setsr   r   r   r   streamsr   r   r   r  r   r   r   r   r   r   r   r   r   r   torch_functionr   r   r   rG  r   r   r   r   r   r   r   r   r   r   r   r   r   r   numpyr   ModuleNotFoundErrorrH  torch._dynamo.codegenr  torch._dynamo.symbolic_convertr  r  	getLoggerr  r"  r  getArtifactLoggerr}  r  r  r  r  DimListr*  rI  r  r  	dataclassr  rN  r  varsr  rl  r  r  rm  r  r  r  r  r  r  ro  r  rI  r  r  r  r\  r  Proxyr4  rT  rS  r  rK  rU  r  r  r^  r  r  r  r  r  r  r  r  r  r  r  r  r%  r  r  rH  r  r  r  r  <module>r     s  &              	 
    4  L L    ; 
  ) 9 <  * H H  B 1 ? A E
 
 
 J ; / 8 * T T ? S S A A  '                 B! ! ! ! ! ! ! ! !D   % &   0    ; ;	 	 	          4  
 ) ( O O $ $   J I I       
       $
 //  !NN44'  
 m$CL
"V " "
	 	 G9 G9 G9T<H <, &/ /Y--// & IcN  +.% s3x /
 "'!>!> $)HHOO$D$D !E( E(PP O    0 (= # * !%!%	# : $;	
  2
#
,/
@C
	
z !%!%$[!$#$ $ :	$
 $;$ $ $Z "&D[!D#D 88>>D LL	D
 $;D D DX !%!% [! #  88>>  :	 
 $;     HN
N
#N
 88>>N
 #s(^	N

 $;N
 [!N
 N
bq T!Wt^ :#  $;	
 
#s(^2([!(#( 88>>( 	(
 $;( #s(^( (8
j 
 %) #c(T/ (+/ cDj /SX (
3 
4 
#+.38<<@ &* 3s8d? ),0 sTz 0c#h (
C 
D 
( ^
^#^ ^ 	^
 ^ ^P	 "&


#
 TM	

 
 $J
 	
2 "&v
v#v TM	v
 v $Jv 	vrB BJ $5#G#G#I   V VyA  B
s   $^ ^"!^"