
    /j              	       P   U d Z ddlZddlZddlZddlZddlZddlmZ ddlm	Z	m
Z
 ddl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j                            d	d
          dk    ZdZej                            dd          Zeed<   ej                            dd          Zeed<   dZ dZ!d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Z0dZ1dZ2ej                            d d          dk    Z3dZ4ej                            d!d          dk    Z5d"Z6ed#         ed$<   dZ7dZ8dZ9dZ:dZ;dZ<ej                            d%d
          dk    Z= e>            Z?e>e@e                  ed&<    e>            ZAe>e@e                  ed'<    e.ej                            d(d                    ZBej                            d)d
          dk    ZCdZDej                            d*d
          dk    ZEej                            d+d          ZFej                            d,d          ZGe.ez  ed-<   i ZHeIeef         ed.<   	 h d/ZJej                            d0d          ZK e+ej                            d1d2                    ZLej                            d3          dk    ZMd4ZNej                            d5          dk    ZOdZPej                            d6          dk    ZQej                            d7d
          dk    ZRdZSdZTdZUdZVee.ed8         f         ed9<   ej                            d:d
          dk    ZWe.ed;<   dZXdZYdZZdZ[dZ\dZ]dZ^dZ_dZ`dZadZbdZcdZddZedZfdZgdZhdZidZj e             ZkdZldZm e
 e
 e
 e	en                                        ZodZpdZqd<Zrd=Zsd>ZtdZudZvdZwdZxdZydZz edd?@          Z{dZ|dZ}dZ~dZdZdZdZdZdZdZdZdZdZdZdAefdBZ e            Zh dCZdZdZdZdZdZdZe.edD<   dZ e>            Ze>eegdf                  edE<    e>            Ze>edFef                  edG<    edH          Ze>edFef                  edI<   dZg dJZg dKZej                            dLd          dk    Zej                            dMd
          dk    ZdZej                            dNd
          dk    Zej                            dOd
          dk    ZdZdZdZdZdZi ZeIeef         edP<   	 ej                            dQd
          dk    Z edRdSdT          Ze.edU<    edV          Zee.         edW<   ej                            dXd
          dk    Zej                            dYd          Zee         edZ<    e ej        d[          dk    d\d]^          ZdZdZdZdZdZee         ed_<   dZe.ed`<   dZee.         eda<   erddblT dcedAefddZ eej        e                    dS )ear  
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)Callable)abspathdirname)AnyLiteralOptionalTYPE_CHECKINGUnion)	is_fbcode)Configget_tristate_envinstall_config_modulelog_file_nameTORCHDYNAMO_VERBOSE01FTORCH_COMPILE_OVERRIDE_BACKENDS debug_backend_override'TORCH_COMPILE_OVERRIDE_INDUCTOR_CONFIGSdebug_inductor_config_override   Tinfo      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%TORCH_DYNAMO_AUTOMATIC_DYNAMIC_SHAPESdynamic)r#   unbacked automatic_dynamic_shapes_mark_asTORCHDYNAMO_PREPARE_FREEZINGtraceable_tensor_subclassesnontraceable_tensor_subclassesTORCHDYNAMO_SUPPRESS_ERRORSTORCH_COMPILE_REPLAY_RECORDTORCH_COMPILE_DISABLETORCH_COMPILE_CPROFILETORCH_COMPILE_DYNAMO_PROFILERdynamo_profiler!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justknobreturnc                     d} | t           j        v r0t           j                            t           j        |          d          S t	                      rCt           j                            t          j                    t          j                    d          S t           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    Y/home/longshao/multi-rider-rag/.venv/lib/python3.11/site-packages/torch/_dynamo/config.pydefault_debug_dir_rootrW   S  s    2RZ''w||BJ'9:<QRRR	 @w||!!7?#4#46K
 
 	
 w||BIKK)>???    >   repro_afterrepro_levelconstant_functionsr/    capture_profiler_record_functionreorderable_logging_functions.ignore_logging_functionsz-torch._dynamo.config.ignore_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TORCH_CACHING_PRECOMPILETORCH_STRICT_PRECOMPILE!compiled_autograd_kwargs_overrideTORCH_COMPILER_COLLECTIVESz7pytorch/remote_cache:enable_local_automatic_dynamic_pgo(TORCH_DYNAMO_AUTOMATIC_DYNAMIC_LOCAL_PGO)rG   env_name_forcerF   automatic_dynamic_local_pgo)TORCH_DYNAMO_AUTOMATIC_DYNAMIC_REMOTE_PGOautomatic_dynamic_remote_pgoUNSAFE_SKIP_FSDP_MODULE_GUARDSPT2_COMPILE_ID_PREFIXpt2_compile_id_prefixPy_GIL_DISABLEDz,pytorch/compiler:enable_run_gc_after_compile!TORCH_DYNAMO_RUN_GC_AFTER_COMPILE)rF   rG   env_name_default_custom_ops_profile'enable_invoke_subgraph_regional_compile#invalidate_compile_context_weakrefs)*changesc                      d S )N )r|   s    rV   _make_closure_patcherr   c  s      rX   )__doc__rR   rL   sys	sysconfigrP   collections.abcr   os.pathr   r   typingr   r   r   r	   r
   torch._environmentr   torch.utils._config_moduler   r   r   r   str__annotations__rM   getverboseverify_correctnessr   r   leaf_function_validate_outputs%leaf_function_check_escaped_gradientsminimum_call_countdead_code_eliminationreplay_side_effectsside_effect_replay_policy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%   log_graph_in_out_metadata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'   typer(   suppress_errorsreplay_record_enabled rewrite_assert_with_torch_assertdisablecprofiler.   r/   dict*allowed_functions_module_string_ignorelistrY   rZ   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_guards3force_unspec_int_unbacked_size_like_on_torchrec_kjtallow_unspec_int_on_nn_moduler@   rB   skip_torchrecdont_skip_tracingoptimize_ddp_lazy_compile#use_lamba_guard_for_object_aliasingskip_fsdp_guardsskip_fsdp_hooksskip_nnmodule_hook_guards,skip_no_tensor_aliasing_guards_on_parameters*skip_tensor_guards_with_matching_dict_tags%skip_guards_on_constant_func_defaults)assume_dunder_attributes_remain_unchanged"use_recursive_dict_tags_for_guards0max_saved_pointers_for_recursive_dict_tags_checkraise_on_ctx_manager_usageraise_on_unsafe_aot_autograderror_on_nested_jit_traceerror_on_nested_fx_traceforce_compile_during_fx_trace	allow_rnncapture_sparse_computeerror_on_recompilereport_guard_failures__file__base_dirtrace_numpytrace_autograd_ops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_trace_unittest"enable_faithful_generator_behaviorinline_inbuilt_nn_modulesnested_graph_breaks3error_on_dynamo_callback_in_fullgraph_compiled_codeinstall_free_tensorsinstall_free_tensors_for_export!enable_cpp_framelocals_guard_evaluse_graph_deduplicationtrack_nodes_for_deduplicationgraph_deduplication_lintissue_3_13_0_warningallow_empty_graphsdebug_force_nested_calls&debug_force_graph_break_on_leaf_returndebug_disable_compile_counter%record_compile_time_instruction_countrW   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_transformsr\   log_compilation_metricsr]   r^   r_   +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"fake_tensor_disable_inference_modecaching_precompilestrict_precompilecompiled_autogradenable_dynamo_decompositionsgraph_break_on_nn_param_ctor#inline_torch_dispatch_torch_compile-skip_fwd_side_effects_in_bwd_under_checkpointrk   enable_compiler_collectivesro   rq   _unsafe_skip_fsdp_module_guardsrt   get_config_varrun_gc_after_compile'constant_fold_autograd_profiler_enabledwrap_top_framerecord_runtime_overheadenable_aot_compilerx   ry   rz   torch.utils._config_typingr   modules__name__r~   rX   rV   <module>r
     s
  
 
 
  				 



      $ $ $ $ $ $ $ $ $ $ $ $ $ $ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ( ( ( ( ( ( V V V V V V V V V V  $x} # # # *...
4
4
;   !jnn-NPRSS  S S S ')jnn-r' '     "'  ). %       #   "  .2 * $ %KLLL # L L L$*F
<% % % c   
 06v
K0 0 0 &    !'
<! ! !     
    JNN8#>>#E     JNN:C@@CG 
 DM  '*?"@ L L L "  !% 
 *. & "    $(  
 :>>"@#FF#M  /2cee Sc^ 3 3 3 25 DI 6 6 6 $rz~~&CUKKLL
 
'DcJJcQ  $(   *..0#
6
6#
= :>>2E:: !jnn-LeTT T T T 57 !4S> 6 6 6&. . . * jnn6== c"*..!:A>>?? Z^^$DEEL 
  jnn%FGG3N    
 (LMMQTT  JNNA3GG3N !
 /4 + 7< 3 !& 4 	 e	 	 	 	  JNN=sCCsJ T   
    "  '+ #   
 !  04 , .2 * )- %& -1 ) &* " 47 0 "   %  !    
 !&  	 'Y[[ 
     77777778#4#4556677      $         $)       &* " #F9      7< 3
   #'  %) !    !&  ! 
     !  */ &
 !&  ). %
@ 
@ 
@ 
@ 
@ ('))    ). % ,1 (  %  !    */  $ . . .   =@CEE s8SE4K#89 A A A 58CEE #hsCx01 9 9 9 28
92 2 2 s8CH-.    /4 +- - - )9 9 9 5 JNN5s;;sB  JNN@#FF#M % &* " Z^^$>DDK JNN#<cBBcI     $   $  '+ # 16 - 57 !4S> 6 6 6: !jnn-I3OOSVV . %+FF=% % % T    0@/?/0 0 htn    JNN3S99S@  
 (*z~~6Mt'T'T x} T T T v$I$%6771<;8	    +0 '     &* Xc] ) ) ) 16 ' 5 5 5 7; #Xd^ : : : :,,,,999999  ck(+ , , , , ,rX   