
    Vhf              	       `   U d Z ddlZddlZddlZddlZddlmZmZ ddlm	Z	m
Z
mZmZmZmZ ddlmZ ddlmZmZmZ dZee   ed<   ej0                  j3                  dd	      d
k(  ZdZdZdZdZdZdZ dZ! ed      Z"e#ed<    ed      Z$e#ed<    ed      Z%e&ed<    ed      Z'e&ed<   dZ(dZ)dZ*ej0                  j3                  dd
      d
k(  Z+dZ,dZ-dZ.ed   ed<   dZ/dZ0dZ1dZ2dZ3ej0                  j3                  dd	      d
k(  Z4 e5       Z6e5e7e	      ed<    e&ej0                  j3                  dd            Z8ej0                  j3                  d d	      d
k(  Z9dZ:ej0                  j3                  d!d      Z;ej0                  j3                  d"d      Z<i Z=e>e	e	f   ed#<   h d$Z?ej0                  j3                  d%d      Z@ e#ej0                  j3                  d&d'            ZAej0                  j3                  d(      d
k(  ZBd)ZCej0                  j3                  d*      d
k(  ZDdZEej0                  j3                  d+      d
k(  ZFej0                  j3                  d,d	      d
k(  ZGdZHdZIdZJdZKdZLee&ed-   f   ed.<   ej0                  j3                  d/d	      d
k(  ZMe&ed0<   dZNdZOdZPdZQdZRdZSdZTdZUdZVdZWdZXdZY e       rdndZZdZ[dZ\ e e e ee]                        Z^dZ_d1Z`d2Zad3ZbdZcdZddZedZfdZg edd45      ZhdZidZjdZkdZldZmdZnd6 Zo eo       Zph d7ZqdZrdZsdZtdZudZvdZw e5       Zxe5e
e	gdf      ed8<    e5       Zye5e
d9e	f      ed:<   dZzg d;Z{g d<Z|ej0                  j3                  d=d
      d
k(  Z}ej0                  j3                  d>d	      d
k(  Z~dZi Ze>ee	f   ed?<   ej0                  j3                  d@d	      d
k(  Z edAdBdC      Ze&edD<    edE      Zee&   edF<   ej0                  j3                  dGd	      d
k(  Z eddHdIJ      ZdZee	   edK<   erddLl dM Z eej                  e          y)Naq  
Configuration module for TorchDynamo compiler and optimization settings.

This module contains various configuration flags and settings that control TorchDynamo's
behavior, including:
- Runtime behavior flags (e.g., guard settings, specialization options)
- Debugging and development options
- Performance tuning parameters
- Feature toggles for experimental features
    N)abspathdirname)AnyCallableLiteralOptionalTYPE_CHECKINGUnion)	is_fbcode)Configget_tristate_envinstall_config_modulelog_file_nameTORCHDYNAMO_VERBOSE01F   T      z$torch._dynamo.config.recompile_limit)aliascache_size_limitz0torch._dynamo.config.accumulated_recompile_limitaccumulated_cache_size_limitz?torch._dynamo.config.skip_code_recursive_on_recompile_limit_hit&skip_code_recursive_on_cache_limit_hitz0torch._dynamo.config.fail_on_recompile_limit_hitfail_on_cache_limit_hit#TORCH_COMPILE_USE_LAZY_GRAPH_MODULEdynamic)r   unbacked automatic_dynamic_shapes_mark_asTORCHDYNAMO_PREPARE_FREEZINGtraceable_tensor_subclassesTORCHDYNAMO_SUPPRESS_ERRORSTORCH_COMPILE_REPLAY_RECORDTORCH_COMPILE_DISABLETORCH_COMPILE_CPROFILE!skipfiles_inline_module_allowlist>   torch._refstorch._primstorch._decomptorch.testingtorch.distributionsTORCHDYNAMO_REPRO_AFTERTORCHDYNAMO_REPRO_LEVEL   TORCHDYNAMO_REPRO_FORWARD_ONLYgMbP?TORCHDYNAMO_REPRO_IGNORE_NON_FP"TORCHDYNAMO_CAPTURE_SCALAR_OUTPUTS,TORCHDYNAMO_CAPTURE_DYNAMIC_OUTPUT_SHAPE_OPS)ddp_optimizerpython_reducer'python_reducer_without_compiled_forwardno_optimizationoptimize_ddp(TORCH_DYNAMO_DO_NOT_EMIT_RUNTIME_ASSERTSdo_not_emit_runtime_assertsfloat64
complex128int64z*pytorch/compiler:inline_inbuilt_nn_modules)defaultjustknobc                     d} | t         j                  v r1t         j                  j                  t         j                  |    d      S t	               rEt         j                  j                  t        j                         t        j                         d      S t         j                  j                  t        j                         d      S )NTORCH_COMPILE_DEBUG_DIRtorch_compile_debug)
osenvironpathjoinr   tempfile
gettempdirgetpassgetusergetcwd)DEBUG_DIR_VAR_NAMEs    D/home/dcms/DCMS/lib/python3.12/site-packages/torch/_dynamo/config.pydefault_debug_dir_rootrL     s    2RZZ'ww||BJJ'9:<QRR	ww||!7??#46K
 	
 ww||BIIK)>??    >   repro_afterrepro_levelconstant_functionsr%   reorderable_logging_functions.ignore_logger_methods)layoutis_negis_conj	is_pinned)stridestorage_offsetis_contiguous TORCH_FAKE_TENSOR_DISPATCH_CACHE+TORCH_FAKE_TENSOR_DISPATCH_CACHE_CROSSCHECK!compiled_autograd_kwargs_overrideTORCH_COMPILER_COLLECTIVESz7pytorch/remote_cache:enable_local_automatic_dynamic_pgo(TORCH_DYNAMO_AUTOMATIC_DYNAMIC_LOCAL_PGO)r=   env_name_forcer<   automatic_dynamic_local_pgo)TORCH_DYNAMO_AUTOMATIC_DYNAMIC_REMOTE_PGOautomatic_dynamic_remote_pgoUNSAFE_SKIP_FSDP_MODULE_GUARDSz,pytorch/compiler:enable_run_gc_after_compile!TORCH_DYNAMO_RUN_GC_AFTER_COMPILE)r<   r=   env_name_default_custom_ops_profile)*c                       y )N )changess    rK   _make_closure_patcherrk   ]  s    rM   )__doc__rG   rA   sysrE   os.pathr   r   typingr   r   r   r   r	   r
   torch._environmentr   torch.utils._config_moduler   r   r   r   str__annotations__rB   getverboseverify_correctnessminimum_call_countdead_code_eliminationrecompile_limitaccumulated_recompile_limit*skip_code_recursive_on_recompile_limit_hitfail_on_recompile_limit_hitr   intr   r   boolr   specialize_intspecialize_floatdynamic_shapesuse_lazy_graph_moduleassume_static_by_defaultautomatic_dynamic_shapesr   force_parameter_static_shapes&force_nn_module_property_static_shapesallow_ignore_mark_dynamicguard_nn_modules guard_nn_modules_using_dict_tagsprepare_freezingsetr    typesuppress_errorsreplay_record_enabled rewrite_assert_with_torch_assertdisablecprofiler%   dict*allowed_functions_module_string_ignorelistrN   rO   repro_forward_onlyrepro_tolerancerepro_ignore_non_fpsame_two_models_use_fp64capture_scalar_outputs capture_dynamic_output_shape_ops+prefer_deferred_runtime_asserts_over_guards'allow_complex_guards_as_runtime_asserts3force_unspec_int_unbacked_size_like_on_torchrec_kjtallow_unspec_int_on_nn_moduler6   r8   skip_torchrecoptimize_ddp_lazy_compileskip_fsdp_guardsskip_fsdp_hooksskip_nnmodule_hook_guards,skip_no_tensor_aliasing_guards_on_parameters*skip_tensor_guards_with_matching_dict_tagsraise_on_ctx_manager_usageraise_on_unsafe_aot_autograderror_on_nested_jit_traceerror_on_nested_fx_trace	allow_rnncapture_sparse_computeerror_on_recompilereport_guard_failures__file__base_dirtrace_numpynumpy_default_floatnumpy_default_complexnumpy_default_intuse_numpy_random_streamenable_cpp_guard_manager enable_cpp_symbolic_shape_guardsenable_trace_contextlib"enable_faithful_generator_behaviorinline_inbuilt_nn_modules!enable_cpp_framelocals_guard_evaluse_graph_deduplicationtrack_nodes_for_deduplicationissue_3_13_0_warningallow_empty_graphs%record_compile_time_instruction_countrL   debug_dir_root_save_config_ignore%cudagraph_backend_keep_input_mutation(cudagraph_backend_support_input_mutationonly_allow_pt2_compliant_opscapture_autograd_functioncapture_func_transformslog_compilation_metricsrQ   rR   +inject_BUILD_SET_unimplemented_TESTING_ONLY)_autograd_backward_strict_mode_banned_ops5_autograd_backward_strict_mode_conditional_banned_opsfake_tensor_cache_enabled$fake_tensor_cache_crosscheck_enabledcompiled_autogradr\   enable_compiler_collectivesr`   rb   _unsafe_skip_fsdp_module_guardsrun_gc_after_compilerf   torch.utils._config_typingrk   modules__name__ri   rM   rK   <module>r      s  	  	 
  $ I I ( V V  $x} # **...
4
;        "  .2 * $ %KL # L$*
<% c 
 06
K0 &  !'
<!   
    JJNN8#>#E        DM  '*?"@ L !% 
 *. & "    $(  
 ::>>"@#F#M ( /2e Sc^ 3 rzz~~&CUKL
 

'DcJcQ  $(   **..0%
8 ::>>2E: 57 !4S> 6. * jjnn6= "**..!:A>? ZZ^^$DEL 
  jjnn%FG3N    
 (LMQTT  JJNNA3G3N !
 /4 + +0 ' 7< 3 !& 4 	 e	 	  JJNN=sCsJ T 
  "    
 !  04 , .2 * "   %  !     	 #,+4 
     7778#4567    $         $)     &* " #9  %) !    !& 
     ). %
@ ()  ). % ,1 (  %  !      =@E s8SE4K#89 A 25 s8CH-. 6 /4 +- )9 5 JJNN5s;sB  JJNN@#F#M %   57 !4S> 6 !jjnn-I3OSVV . %+F=% T  0@/0 htn  JJNN3S9S@  
 ;8  &* Xc] ),- ckk(+ ,rM   