
    PhK^                     
   U d dl Z d dlZd dlmZmZmZ d dlZdZdZdZ	dZ
e j                  j                  d      dk(  ZdZdZdZe j                  j                  dd      dk(  Ze j                  j                  d      dk(  ZdZdZdZe j                  j                  d	d
      dk(  Ze j                  j                  dd      ZdZdZdZdZdZdZdZdZdZ dZ!dZ"i i i i i i dZ#ee$ee$ef   f   e%d<   i Z&ee$ee$ef   f   e%d<   dZ'e j                  j                  dd      dk(  Z(dZ)dZ*dZ+dZ,g dZ-dZ.dZ/dZ0e j                  j                  d      dk(  Z1e j                  j                  d      dk(  Z2e j                  j                  d      dk(  Z3e j                  j                  dd      ji                         Z5dZ6e j                  j                  d      dk(  Z7e j                  j                  d      dk(  Z8e j                  j                  d      dk(  Z9e j                  j                  d      dk(  Z:e j                  j                  d      dk(  Z;e j                  j                  d       dk(  Z< e=e j                  j                  d!d            Z>e j                  j                  d"d      dk(  Z?e j                  j                  d#d
      dk(  Z@e j                  j                  d$d      dk(  ZAe j                  j                  d%      dk(  ZBd&ZCd'ZDd(ZEdZFdZGdZHe j                  j                  d)      dk(  ZIe j                  j                  d*      dk(  ZJe j                  j                  d+d,      ZKd-ZLd&ZMd(ZNdZOdZPdZQe j                  j                  d.d
      dk(  ZRdZSdZTdZUd/ ZVdZWdZXd0ej                  v xs d1ej                  v ZZ eV       xs eZZ[d2Z\d3 Z] e]       Z^ eV       rcd d4l_m`Z` 	 earG e`j                  e j                  j                  eaj                  d5e j                        d6            Zgn e`j                  d6      ZgndZgd7Zie j                  j                  d8d      dk(  Zje j                  j                  d9d
      dk(  ZkdZldZmdZndZoe j                  j                  d:d,      Zpepd,k7  Zqepdk(  rd,nepZre j                  j                  d;d      ZsdZte j                  j                  d<d
      dk(  Zueve%d=<   dZweve%d><    G d? d@      Zx G dA dB      Zy G dC dD      Zz G dE dF      Z{ G dG dH      Z|dIhZ}erd dJl~ d dKlmZ  eej                  e          y# eh$ r dZgY w xY w)L    N)AnyDictTYPE_CHECKINGFTTORCHINDUCTOR_FX_GRAPH_CACHE1TORCHINDUCTOR_SIZE_ASSERTSTORCHINDUCTOR_NAN_ASSERTSTORCHINDUCTOR_MEMORY_PLANNING0TORCHINDUCTOR_MEMORY_POOLintermediates)batch_linearbatch_linear_lhsbatch_layernorm
batch_tanh
batch_relubatch_sigmoidpre_grad_fusion_optionspost_grad_fusion_options"TORCHINDUCTOR_DYNAMIC_SCALE_RBLOCK)reorder_compute_for_overlap
sink_waitsraise_commsdefaulti,     TORCHINDUCTOR_MAX_AUTOTUNE$TORCHINDUCTOR_MAX_AUTOTUNE_POINTWISETORCHINDUCTOR_MAX_AUTOTUNE_GEMM(TORCHINDUCTOR_MAX_AUTOTUNE_GEMM_BACKENDSzATEN,TRITONi    #TORCHINDUCTOR_SEARCH_AUTOTUNE_CACHETORCHINDUCTOR_SAVE_ARGS!TORCHINDUCTOR_AUTOTUNE_IN_SUBPROC#TORCHINDUCTOR_AUTOTUNE_MULTI_DEVICE'TORCHINDUCTOR_COORDINATE_DESCENT_TUNING5TORCHINDUCTOR_COORDINATE_DESCENT_CHECK_ALL_DIRECTIONS'TORCHINDUCTOR_COORDINATE_DESCENT_RADIUS!TORCHINDUCTOR_LAYOUT_OPTIMIZATIONTORCHINDUCTOR_FORCE_LAYOUT_OPT TORCHINDUCTOR_KEEP_OUTPUT_STRIDETORCHINDUCTOR_WARN_MIX_LAYOUT   i     TORCHINDUCTOR_DEBUG_FUSIONTORCHINDUCTOR_BENCHMARK_FUSION#TORCHINDUCTOR_ENABLED_METRIC_TABLES @   TORCHINDUCTOR_BENCHMARK_KERNELc                  8    t        t        j                  d       S )Ngit_version)hasattrtorchversion     aC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\torch/_inductor/config.py	is_fbcoder;     s    u}}m444r9   devgitforkc                  >   dt         j                  v rt        t         j                  d         S t        j                  dk(  s
t               ryt        t         d      rt        t        j                  d            nt        j                         } | sJ t        d|       S )a8  
    Here are the precedence to decide compile_threads
    1. User can override it by TORCHINDUCTOR_COMPILE_THREADS.  One may want to disable async compiling by
       setting this to 1 to make pdb happy.
    2. Set to 1 if it's win32 platform or it's a fbcode build
    3. decide by the number of CPU cores
    TORCHINDUCTOR_COMPILE_THREADSwin32   sched_getaffinityr       )osenvironintsysplatformr;   r5   lenrC   	cpu_countmin)rK   s    r:   decide_compile_threadsrM   $  s     '"**42::=>??		 IK r./ $$Q'( 	
 y2y!!r9   )parutil.zfb/cache
   TORCHINDUCTOR_SHAPE_PADDINGTORCHINDUCTOR_PERMUTE_FUSIONTORCHINDUCTOR_PROFILETORCHINDUCTOR_PROFILE_OUTPUTTORCHINDUCTOR_FREEZINGfreezingfreezing_discard_parametersc                       e Zd ZdZdZdZdZdZdej                  j                  dd      fZdZdZdZdZdZdZd	ZdZdZy)
cppTFNi   CXXzg++original_aten   )__name__
__module____qualname__threadsno_redundant_loopsdynamic_threadssimdlenmin_chunk_sizerE   rF   getcxxenable_kernel_profileweight_prepackinject_relu_bug_TESTING_ONLYinject_log1p_bug_TESTING_ONLY
vec_isa_okdescriptive_namesmax_horizontal_fusion_sizefallback_scatter_reduce_sumenable_unsafe_math_opt_flagr8   r9   r:   rY   rY   {  s    G  OGN
 	

ue$C " N
 $( $(! J ( "$ #' #(r9   rY   c                       e Zd ZU dZdZdZdZdZdZdZ	dZ
dZdZdZdZdZdZej$                  j'                  d      dk(  ZdZej$                  j'                  dd      dk(  ZdZdd	d	d
ZdZdZeed<   dZy)tritonFT   !TORCHINDUCTOR_UNIQUE_KERNEL_NAMESr   r\   #TORCHINDUCTOR_PERSISTENT_REDUCTIONSi   i   )XYZr]   spill_thresholdN)r^   r_   r`   
cudagraphscudagraph_treesslow_path_cudagraph_asserts!cudagraph_trees_history_recordingfast_path_cudagraph_assertsskip_cudagraph_warmupdebug_sync_graphdebug_sync_kerneldense_indexing	max_tilesautotune_pointwiseautotune_cublasLt tiling_prevents_pointwise_fusion tiling_prevents_reduction_fusionrE   rF   rf   unique_kernel_namesrm   persistent_reductionsdivisible_by_16	max_blockstore_cubinry   rG   __annotations__rj   r8   r9   r:   rr   rr     s    J O #' ).% #( "   N I   (,$'+$ **..)LMQTT ( 	

<cBcI 
 O D1I K OS
 $( r9   rr   c                   d    e Zd ZdZej
                  j                  dd      dk(  Z e       Z	dZ
dZy)aot_inductorr0   AOT_INDUCTOR_DEBUG_COMPILEr   r   N)r^   r_   r`   output_pathrE   rF   rf   debug_compiler;   abi_compatibleserialized_in_specserialized_out_specr8   r9   r:   r   r     s<     KJJNN#?ELM [N  r9   r   c            
       $   e Zd ZU dZdZdZdZdZdZdZ	e
j                  j                  de
j                  j                  e
j                  j                  e
j                  j!                  ej$                        d                  ZdZdZdZeed<   y)cudaNz-O1FTORCHINDUCTOR_CUTLASS_DIRz../third_party/cutlass/cutlass_only_evt_capable_ops)r^   r_   r`   archr7   compile_opt_levelenable_cuda_ltoenable_ptxas_infoenable_debug_infouse_fast_mathrE   rF   rf   pathabspathjoindirnamer6   __file__cutlass_dircutlass_max_profiling_configscuda_cxxr   boolr   r8   r9   r:   r   r   !  s     D
 G  O   M **..#
GGLL8:ST	
K %)! H
 */ $.r9   r   c                   &   e Zd Zej                  j                  dd      dk(  ZdZdZdZ	dZ
dZdZdZdZej                  j                  dd      dk(  Zej                  j                  dd      dk(  Zej                  j                  d	d      ZdZdZy)
traceTORCH_COMPILE_DEBUGr   r   NFTINDUCTOR_POST_FUSION_SVGINDUCTOR_ORIG_FX_SVGINDUCTOR_DOT_GRAPH_SHAPE_SVG)r^   r_   r`   rE   rF   rf   enabled	debug_dir	debug_loginfo_logfx_graphfx_graph_transformedir_pre_fusionir_post_fusionoutput_codegraph_diagramdraw_orig_fx_graphdot_graph_shapecompile_profile
upload_tarr8   r9   r:   r   r   X  s    jjnn2C8C?G I I H H   M N K JJNN#=sCsJM (>DK jjnn%CTJO O Jr9   r   ztrace.upload_tar)*)install_config_module)rE   rH   typingr   r   r   r6   debugdebug_check_inf_and_nandisable_progressverbose_progressrF   rf   fx_graph_cachecpp_wrapperdcestatic_weight_shapessize_assertsnan_assertspick_loop_ordersinplace_buffersallow_buffer_reusememory_planningmemory_poolbenchmark_harnessepilogue_fusionepilogue_fusion_firstpattern_matcherpost_grad_custom_pre_passpost_grad_custom_post_passpre_grad_custom_passsplit_cat_fx_passes efficient_conv_bn_eval_fx_passesgroup_fusionbatch_fusionr   strr   r   reorder_for_localitydynamic_scale_rblockforce_fuse_int_mm_with_muluse_mixed_mmforce_mixed_mm reorder_for_compute_comm_overlap'reorder_for_compute_comm_overlap_passesestimate_op_runtimeintra_node_bwinter_node_bwmax_autotunemax_autotune_pointwisemax_autotune_gemmuppermax_autotune_gemm_backendsunbacked_symint_fallbacksearch_autotune_cache	save_argsautotune_in_subprocautotune_multi_devicecoordinate_descent_tuning'coordinate_descent_check_all_directionsrG    coordinate_descent_search_radiuslayout_optimizationforce_layout_optimizationkeep_output_stridewarn_mix_layoutrealize_reads_thresholdrealize_bytes_thresholdrealize_acc_reads_thresholdfallback_randomimplicit_fallbacksaggressive_fusiondebug_fusionbenchmark_fusionenabled_metric_tablesmax_fusion_sizemax_pointwise_cat_inputsunroll_reductions_thresholdcomment_originconv_1x1_as_mmsplit_reductionsbenchmark_kernelconstant_and_index_propagationalways_keep_tensor_constantsassert_indirect_indexingr;   joint_graph_constant_foldingdebug_index_asserts__version__is_nightly_or_sourcedeveloper_warningsworker_start_methodrM   compile_threadslibfb.pyrN   __package__get_dir_pathr   r   replacesepglobal_cache_dir
ValueErrorkernel_name_max_opsshape_paddingpermute_fusionprofiler_mark_wrapper_callgenerate_intermediate_hooksdebug_ir_traceback_raise_error_for_testing_profile_varprofile_bandwidthprofile_bandwidth_regexprofile_bandwidth_outputdisable_cpp_codegenrV   r   rW   rY   rr   r   r   r   _save_config_ignoretorch.utils._config_typingtorch.utils._config_moduler   modulesr^   r8   r9   r:   <module>r'     s   	 
 + +  	         >?3F     zz~~:C@CGjjnn89S@      **..!@#F#M jjnn8/J       ! ! 
     $)    
 6 c4S>12  79 $sDcN23 8   zz~~&JCPTWW  # 
   $)  + '      zz~~:;sB (NOSVV  JJNN#DEL   ZZ^^.%'     

'LMQTT JJNN45<	 jjnn%HISP  

'LMQTT  JJNN<=D  JJNNJKsR ( $'JJNN<cB$   jjnn%H#NRUU  JJNN+KSQUXX  ZZ^^$FLPSS  **..!@ASH
            zz~~:;sB::>>"BCsJ 

'LbQ           ::>>"BCHCO  "&   %    5
  $     1 11OUe>O>O5O [8$8 
  ", )* ;  3w33[00bff=zJ   4w33J?    

<cBcI  >DK # 
 $    ! zz~~5r: B&  , 3"  ::>>*H$O     8#>#E$ E %* T )4( 4(pV( V(r *3/ 3/n2 2n  
 , < ckk(+ ,c
    s   *AU U'&U'