U
    Ç9%eë:  ã                   @   s  U d dl Z d dlZd dlZdZdZdZdZdZdZe j	 
dd¡dk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dZe j	 
d¡dkZe j	 
d¡dkZe j	 
d	¡dkZe j	 
d
d¡ ¡ Ze j	 
d¡dkZe j	 
d¡dkZ e j	 
d¡dkZ!e j	 
d¡dkZ"e j	 
d¡dkZ#e$e j	 
dd¡ƒZ%e j	 
dd¡dkZ&e j	 
dd¡dkZ'e j	 
d¡dkZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3e j	 
dd¡dkZ4dZ5dZ6dZ7dd„ Z8dej9kpºdej9kZ:e8ƒ pÆe:Z;dd „ Z<e<ƒ Z=e8ƒ r<d d!l>m?Z? z4e@re? Ae jB Ce@ Dd"e jE¡d#¡¡ZFn
e? Ad#¡ZFW n eGk
r8   dZFY nX ndZFd$ZHe j	 
d%d¡dkZIe j	 
d&d¡dkZJdZKdZLdZMdZNe j	 
d'd¡ZOeOdkZPeOdkrœdneOZQdZRe j	 
d(d¡dkZSeTeUd)< dZVeTeUd*< G d+d,„ d,ƒZWG d-d.„ d.ƒZXG d/d0„ d0ƒZYd1hZZd2d3l[m\Z\ e\ej]e^ ƒ dS )4é    NFTZTORCHINDUCTOR_SIZE_ASSERTSÚ1Ú ZTORCHINDUCTOR_MAX_AUTOTUNEZ$TORCHINDUCTOR_MAX_AUTOTUNE_POINTWISEZTORCHINDUCTOR_MAX_AUTOTUNE_GEMMZ(TORCHINDUCTOR_MAX_AUTOTUNE_GEMM_BACKENDSzATEN,TRITONZ#TORCHINDUCTOR_SEARCH_AUTOTUNE_CACHEZTORCHINDUCTOR_SAVE_ARGSZ!TORCHINDUCTOR_AUTOTUNE_IN_SUBPROCZ'TORCHINDUCTOR_COORDINATE_DESCENT_TUNINGZ5TORCHINDUCTOR_COORDINATE_DESCENT_CHECK_ALL_DIRECTIONSZ'TORCHINDUCTOR_COORDINATE_DESCENT_RADIUSZ!TORCHINDUCTOR_LAYOUT_OPTIMIZATIONZ TORCHINDUCTOR_KEEP_OUTPUT_STRIDEZTORCHINDUCTOR_WARN_MIX_LAYOUTé   iÐ  é   é@   ZTORCHINDUCTOR_BENCHMARK_KERNELÚ0c                   C   s   t tjdƒ S )NZgit_version)ÚhasattrÚtorchÚversion© r   r   úU/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/torch/_inductor/config.pyÚ	is_fbcode©   s    r   ÚdevÚgitc                  C   sb   dt jkrtt jd ƒS tjdks(tƒ r,dS tt dƒrDtt  d¡ƒnt  	¡ } | sTt
‚td| ƒS 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
    ZTORCHINDUCTOR_COMPILE_THREADSÚwin32é   Úsched_getaffinityr   é    N)ÚosÚenvironÚintÚsysÚplatformr   r   Úlenr   Ú	cpu_countÚAssertionErrorÚmin)r   r   r   r   Údecide_compile_threads²   s    
ÿýr   )ÚparutilÚ.zfb/cacheé
   ZTORCHINDUCTOR_SHAPE_PADDINGZTORCHINDUCTOR_PERMUTE_FUSIONZTORCHINDUCTOR_PROFILEZTORCHINDUCTOR_FREEZINGÚfreezingÚfreezing_discard_parametersc                   @   sN   e Zd ZdZdZdZdZdZdej	 
dd¡fZdZdZdZdZdZdZd	ZdS )
ÚcppéÿÿÿÿTFNi   ÚCXXzg++Úoriginal_atené   )Ú__name__Ú
__module__Ú__qualname__ÚthreadsZno_redundant_loopsZdynamic_threadsZsimdlenZmin_chunk_sizer   r   ÚgetÚcxxZenable_kernel_profileZweight_prepackÚinject_relu_bug_TESTING_ONLYZinject_log1p_bug_TESTING_ONLYZ
vec_isa_okÚdescriptive_namesZmax_horizontal_fusion_sizer   r   r   r   r#     s   ú
r#   c                   @   s˜   e Zd ZU dZeƒ  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 d¡dkZdZej dd¡dkZdZdd	d	d
œZdZdZeed< dZdS )ÚtritonFTé   Z!TORCHINDUCTOR_UNIQUE_KERNEL_NAMESr   r&   Z#TORCHINDUCTOR_PERSISTENT_REDUCTIONSi   i   )ÚXÚYÚZr'   Úspill_thresholdN) r(   r)   r*   Z
cudagraphsr   Zcudagraph_treesZslow_path_cudagraph_assertsZ!cudagraph_trees_history_recordingZfast_path_cudagraph_assertsZskip_cudagraph_warmupZdebug_sync_graphZdebug_sync_kernelZdense_indexingZ	max_tilesZautotune_pointwiseZautotune_cublasLtZ tiling_prevents_pointwise_fusionZ tiling_prevents_reduction_fusionZassert_indirect_indexingr   r   r,   Zunique_kernel_namesr/   Zpersistent_reductionsZdivisible_by_16Z	max_blockZstore_cubinr5   r   Ú__annotations__r.   r   r   r   r   r0   7  s0   
ÿr0   c                   @   sT   e Zd Zej dd¡dkZdZdZdZ	dZ
dZdZdZej dd¡dkZdZdZdS )ÚtraceZTORCH_COMPILE_DEBUGr   r   FTZINDUCTOR_POST_FUSION_SVGN)r(   r)   r*   r   r   r,   ÚenabledÚ	debug_logZinfo_logZfx_graphZfx_graph_transformedZir_pre_fusionZir_post_fusionZoutput_codeZgraph_diagramZcompile_profileZ
upload_tarr   r   r   r   r7   ”  s   r7   ztrace.upload_tarr1   )Úinstall_config_module)_r   r   r	   ÚdebugZdisable_progressZverbose_progressZcpp_wrapperZdceZstatic_weight_shapesr   r,   Zsize_assertsZpick_loop_ordersZinplace_buffersZallow_buffer_reuseZbenchmark_harnessZepilogue_fusionZepilogue_fusion_firstZpattern_matcherZsplit_cat_fx_passesZgroup_fusionZbatch_fusionZ
reorderingZuse_mixed_mmZforce_mixed_mmZaot_inductor_output_pathZmax_autotuneZmax_autotune_pointwiseZmax_autotune_gemmÚupperZmax_autotune_gemm_backendsZsearch_autotune_cacheZ	save_argsZautotune_in_subprocZcoordinate_descent_tuningZ'coordinate_descent_check_all_directionsr   Z coordinate_descent_search_radiusZlayout_optimizationZkeep_output_strideZwarn_mix_layoutZrealize_reads_thresholdZrealize_bytes_thresholdZrealize_acc_reads_thresholdZfallback_randomZimplicit_fallbacksZaggressive_fusionZmax_fusion_sizeZunroll_reductions_thresholdZcomment_originZconv_1x1_as_mmZsplit_reductionsZbenchmark_kernelZconstant_and_index_propagationZjoint_graph_constant_foldingZdebug_index_assertsr   Ú__version__Zis_nightly_or_sourceZdeveloper_warningsr   Zcompile_threadsZlibfb.pyr   Ú__package__Zget_dir_pathÚpathÚjoinÚreplaceÚsepZglobal_cache_dirÚ
ValueErrorZkernel_name_max_opsZshape_paddingZpermute_fusionZprofiler_mark_wrapper_callZgenerate_intermediate_hooksZdebug_ir_tracebackZ_raise_error_for_testingZ_profile_varZprofile_bandwidthZprofile_bandwidth_regexZdisable_cpp_codegenr!   Úboolr6   r"   r#   r0   r7   Z_save_config_ignoreZ_dynamo.config_utilsr:   Úmodulesr(   r   r   r   r   Ú<module>   s¾     ÿÿÿÿÿ1]&þ