o
    ^iBu                     @   s  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jdd	d
kZdZdZdZdZdZdZ dZ!eddZ"e#ed< eddZ$e#ed< eddZ%e&ed< eddZ'e&ed< dZ(dZ)dZ*ejdd
d
kZ+dZ,dZ-dZ.ed ed< dZ/dZ0dZ1dZ2dZ3dZ4ejdd	d
kZ5e6 Z7e6e8e	  ed< e6 Z9e6e8e	  ed< e&ejd dZ:ejd!d	d
kZ;dZ<ejd"d	d
kZ=ejd#dZ>i Z?e@e	e	f ed$< h d%ZAejd&dZBe#ejd'd(ZCejd)d
kZDd*ZEejd+d
kZFdZGejd,d
kZHejd-d	d
kZIdZJdZKdZLdZMee&ed. f ed/< ejd0d	d
kZNe&ed1< dZOdZPdZQdZRdZSdZTdZUdZVdZWdZXdZYdZZdZ[dZ\dZ]dZ^dZ_dZ`e rtdndZadZbdZceeeeedZedZfd2Zgd3Zhd4ZidZjdZkdZldZmdZndZoedd5d6ZpdZqdZrdZsdZtdZudZvdZwdZxdZydZzdZ{dZ|d7efd8d9Z}e} Z~h d:ZdZdZdZdZdZdZe6 Ze6e
e	gdf  ed;< e6 Ze6e
d<e	f  ed=< dZg d>Zg d?Zejd@d
d
kZejdAd	d
kZdZejdBd	d
kZejdCd	d
kZdZdZi Ze@ee	f edD< ejdEd	d
kZedFdGddHZe&edI< edJZee& edK< ejdLd	d
kZejdMdZee edN< eddOdPdQZdZdZdZdZee	 edR< erddSlT dTe	d7e	fdUdVZeeje  dS )Waq  
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nontraceable_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justknobreturnc                  C   sR   d} | t jv rt jt j|  dS t r t jt t dS t jt 	 dS )NTORCH_COMPILE_DEBUG_DIRtorch_compile_debug)
osenvironpathjoinr
   tempfile
gettempdirgetpassgetusergetcwd)DEBUG_DIR_VAR_NAME rK   O/var/www/html/RAG/RAG_venv/lib/python3.10/site-packages/torch/_dynamo/config.pydefault_debug_dir_root  s   
rM   >   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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)r=   env_name_forcer<   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_prefixz,pytorch/compiler:enable_run_gc_after_compile!TORCH_DYNAMO_RUN_GC_AFTER_COMPILE)r<   r=   env_name_default_custom_ops_profile)*changesc                  K   s   d S )NrK   )rl   rK   rK   rL   _make_closure_patcher  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   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%   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_guards3force_unspec_int_unbacked_size_like_on_torchrec_kjtallow_unspec_int_on_nn_moduler6   r8   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	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_trace_unittest"enable_faithful_generator_behaviorinline_inbuilt_nn_modulesnested_graph_breaksinstall_free_tensors!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_countrM   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"fake_tensor_disable_inference_modecaching_precompilestrict_precompilecompiled_autogradgraph_break_on_nn_param_ctorr^   enable_compiler_collectivesrb   rd   _unsafe_skip_fsdp_module_guardsrg   run_gc_after_compilewrap_top_framerecord_runtime_overheadenable_aot_compilerj   torch.utils._config_typingrm   modules__name__rK   rK   rK   rL   <module>   sV    	

