§
    ž²ÅjÙ  ã                   óÚ  — U d dl Z d dlZd dlmZmZmZmZmZmZm	Z	 d dl
Z
d dlZ
d dlmZ d dlmZmZ dee         fd„Zdee         fd„Zdee         fd„Zdee         fd	„Ze j                             d
d¦  «        dk    ZdZdZdZe j                             d e¦   «         rdnd¦  «        dk    Z e¦   «         Zee         ed<    e¦   «         Zee         ed<   dZ eed<    e¦   «         Z!ee         ed<    e¦   «         Z"ee         ed<   e j                             d¦  «        dk    Z#dZ$ee%         ed<   dZ&dZ'e j                             dd¦  «        dk    Z(e j                             dd¦  «        Z)dZ*dZ+e j                             dd¦  «        dk    Z,e j                             d¦  «        dk    Z-dZ.dZ/dZ0e j                             dd¦  «        dk    Z1e j                             dd¦  «        Z2dZ3dZ4dZ5dZ6dZ7dZ8e
j9        j:        j;        ed <   dZ<e
j9        j:        j;        ed!<   dZ=eee
j>        j?        gdf                  ed"<   dZ@eee
j>        j?        gdf                  ed#<   dZAeee
j>        jB        j?        gdf                  ed$<   dZCeeed%         ged%         f                  ed&<   dZDdZEdZFdZGdZHi ZIeeJeeJef         f         ed'<   i ZKeeJeeJef         f         ed(<   dZLe j                             d)d¦  «        dk    ZMdZNdZOdd*d+dd,œZPeeJef         ed-<   d.ZQdZRg d/¢ZSdZTd0ZUd1ZVd2ZWe j                             d3¦  «        dk    ZXe j                             d4¦  «        dk    ZYe j                             d5¦  «        dk    ZZd6Z[ e¦   «         rdne j                             d7¦  «        dk    Z\e j                             d8d9¦  «         ]                    ¦   «         Z^e j                             d:d;¦  «         ]                    ¦   «         Z_e j                             d<d=¦  «         ]                    ¦   «         Z`e j                             d>d¦  «        dk    Zad?Zbe j                             d@¦  «        dk    Zce j                             dA¦  «        dk    Zde j                             dB¦  «        dk    ZedCZfdDZgdEZhe j                             dF¦  «        dk    Zie j                             dG¦  «        dk    Zje j                             dH¦  «        dk    Zk e%e j                             dId¦  «        ¦  «        Zle j                             dJdK¦  «        Zme j                             dLdM¦  «        ZndNeJdefdO„ZodNeJdefdP„ZpdNeJdefdQ„Zqe j                             dRd=¦  «        Zre
js        jt        sdndZue j                             dSeu¦  «        dk    Zve j                             dTd¦  «        dk    Zwe j                             dUd¦  «        dk    Zxe j                             dV¦  «        dk    ZydWZzdXZ{dYZ|dZ}dZ~dZe j                             dZ¦  «        dk    Z€e j                             d[¦  «        dk    Z�e j                             d\dK¦  «        Z‚e j                             d]d¦  «        dk    Zƒd6Z„e j                             d^d¦  «        dk    Z…d+Z†d_Z‡dYZˆdZ‰dYZŠ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šdae
j›        v pdbe
j›        v Zœ e¦   «         peœZ�e j                             dcd¦  «        dk    ZždZŸeeJ         edd<   dZ d2Z¡dedfgZ¢ee	edg         eJf                  edh<   dZ£eedi<    G dj„ dk¦  «        Z¤defdl„Z¥de%fdm„Z¦ e¦   «         rdn	 e¦¦   «         Z§ee%         edn<    e¦   «         rl	 d dol¨m©Z© eªrC e©j«        e j¬         ­                    eª ®                    dpe j¯        ¦  «        dq¦  «        ¦  «        Z°n e©j«        dq¦  «        Z°n# e±e²f$ r dZ°Y nw xY wdZ°d6Z³e j                             drd¦  «        dk    Z´e j                             dsd¦  «        dk    ZµdZ¶dZ·dtZ¸duZ¹dZºdZ»dZ¼eedv<   e j                             dwd¦  «        dk    Z½dZ¾dZ¿dZÀdZÁe j                             dxdK¦  «        ZÂeÂdKk    ZÃeÂdk    rdKneÂZÄe j                             dyd¦  «        ZÅe j                             dz¦  «        dk    ZÆdZÇe j                             d{d¦  «        dk    ZÈeed|<   dZÉeed}<   dZÊeed~<   dZËeed<   dZÌeed€<   dZÍeed�<   dZÎeed‚<   e j                             dƒd¦  «        dk    ZÏe j                             d„d¦  «        dk    ZÐeed…<    G d†„ d‡¦  «        ZÑ G dˆ„ d‰¦  «        ZÒ G dŠ„ d‹¦  «        ZÓ G dŒ„ d�¦  «        ZÔ G dŽ„ d�¦  «        ZÕd‡ZÖd‰Z× G d�„ d‘¦  «        ZØ G d’„ d“¦  «        ZÙg d”¢ZÚg d•¢ZÛg ZÜeee
jÝ        e
jÝ        e
jÝ        gdf                  ed–<    G d—„ d˜¦  «        ZÞerd d™lßT  eejà        eá         ¦  «         dS )šé    N)ÚAnyÚCallableÚDictÚListÚOptionalÚTYPE_CHECKINGÚUnion)Ú	is_fbcode)Úget_tristate_envÚinstall_config_moduleÚreturnc                  ó    — t          d¦  «        S )NÚ#TORCHINDUCTOR_FX_GRAPH_REMOTE_CACHE©r   © ó    úGC:\Projects\Historical\venv\Lib\site-packages\torch/_inductor/config.pyÚfx_graph_remote_cache_defaultr      ó   € ÝÐAÑBÔBÐBr   c                  ó    — t          d¦  «        S )NÚ#TORCHINDUCTOR_AUTOTUNE_REMOTE_CACHEr   r   r   r   Úautotune_remote_cache_defaultr      r   r   c                  ó    — t          d¦  «        S )NÚ+TORCHINDUCTOR_BUNDLED_AUTOTUNE_REMOTE_CACHEr   r   r   r   Ú%bundled_autotune_remote_cache_defaultr      s   € ÝÐIÑJÔJÐJr   c                  óB   — t          dt          ¦   «         sdnd ¦  «        S )NÚ/TORCHINDUCTOR_BUNDLE_TRITON_INTO_FX_GRAPH_CACHET)r   r
   r   r   r   Ú)bundle_triton_into_fx_graph_cache_defaultr      s'   € ÝØ9Ý‘K”KÐ)ˆˆ Tñô ð r   Ú"TORCHDYNAMO_AUTO_FUNCTIONALIZED_V2Ú1FTÚTORCHINDUCTOR_FX_GRAPH_CACHEÚ0Úfx_graph_remote_cacheÚ!bundle_triton_into_fx_graph_cacheÚautotune_local_cacheÚautotune_remote_cacheÚbundled_autotune_remote_cacheÚ"TORCHINDUCTOR_FORCE_DISABLE_CACHESÚsleep_sec_TESTING_ONLYÚneeds_fixed_stride_orderÚTORCHINDUCTOR_CPP_WRAPPERÚTORCHINDUCTOR_C_SHIM_VERSIONÚ2ÚTORCHINDUCTOR_SIZE_ASSERTSÚTORCHINDUCTOR_NAN_ASSERTSÚTORCHINDUCTOR_MEMORY_PLANNINGÚTORCHINDUCTOR_MEMORY_POOLÚintermediatesÚpost_grad_custom_pre_passÚpost_grad_custom_post_passÚjoint_custom_pre_passÚjoint_custom_post_passÚpre_grad_custom_passz+torch._inductor.scheduler.BaseSchedulerNodeÚ_pre_fusion_custom_passÚpre_grad_fusion_optionsÚpost_grad_fusion_optionsÚ"TORCHINDUCTOR_DYNAMIC_SCALE_RBLOCKg-Cëâ6?é   )Úpre_gradÚ	precisionÚnum_iterationsÚrequires_optimizerÚfx_passes_numeric_checkÚ	heuristic)Úreorder_compute_for_overlapÚ
sink_waitsÚraise_commsÚdefaulti,  é   ÚTORCHINDUCTOR_MAX_AUTOTUNEÚ$TORCHINDUCTOR_MAX_AUTOTUNE_POINTWISEÚTORCHINDUCTOR_MAX_AUTOTUNE_GEMMé
   Ú"TORCHINDUCTOR_FORCE_SAME_PRECISIONÚ(TORCHINDUCTOR_MAX_AUTOTUNE_GEMM_BACKENDSzATEN,TRITON,CPPÚ(TORCHINDUCTOR_MAX_AUTOTUNE_CONV_BACKENDSzATEN,TRITONÚ,TORCHINDUCTOR_MAX_AUTOTUNE_GEMM_SEARCH_SPACEÚDEFAULTÚ'TORCHINDUCTOR_AUTOTUNE_FALLBACK_TO_ATENi    Ú#TORCHINDUCTOR_SEARCH_AUTOTUNE_CACHEÚTORCHINDUCTOR_SAVE_ARGSÚ!TORCHINDUCTOR_AUTOTUNE_IN_SUBPROCg      N@g      ð?g       @Ú#TORCHINDUCTOR_AUTOTUNE_MULTI_DEVICEÚ'TORCHINDUCTOR_COORDINATE_DESCENT_TUNINGÚ5TORCHINDUCTOR_COORDINATE_DESCENT_CHECK_ALL_DIRECTIONSÚ'TORCHINDUCTOR_COORDINATE_DESCENT_RADIUSÚ#TORCHINDUCTOR_AUTOHEURISTIC_COLLECTÚ ÚTORCHINDUCTOR_AUTOHEURISTIC_USEÚmixed_mmÚnamec                 ó>   — t          | ¦  «        pt          | ¦  «        S )N)Úcollect_autoheuristicÚuse_autoheuristic©r]   s    r   Úrun_autoheuristicrb   �  s   € Ý  Ñ&Ô&ÐAÕ*;¸DÑ*AÔ*AÐAr   c                 óX   — | t           j        j        j                             d¦  «        v S ©Nú,)ÚtorchÚ	_inductorÚconfigÚautoheuristic_collectÚsplitra   s    r   r_   r_   …  s#   € Ø•5”?Ô)Ô?×EÒEÀcÑJÔJÐJÐJr   c                 óX   — | t           j        j        j                             d¦  «        v S rd   )rf   rg   rh   Úautoheuristic_userj   ra   s    r   r`   r`   ‰  s#   € Ø•5”?Ô)Ô;×AÒAÀ#ÑFÔFÐFÐFr   Ú$TORCHINDUCTOR_AUTOHEURISTIC_LOG_PATHÚ!TORCHINDUCTOR_LAYOUT_OPTIMIZATIONÚTORCHINDUCTOR_FORCE_LAYOUT_OPTÚ TORCHINDUCTOR_KEEP_OUTPUT_STRIDEÚTORCHINDUCTOR_WARN_MIX_LAYOUTé   é   é   ÚTORCHINDUCTOR_DEBUG_FUSIONÚTORCHINDUCTOR_BENCHMARK_FUSIONÚ#TORCHINDUCTOR_ENABLED_METRIC_TABLESÚ(TORCHINDUCTOR_LOOP_ORDERING_AFTER_FUSIONÚ'TORCHINDUCTOR_BENCHMARK_EPILOGUE_FUSIONé@   ÚTORCHINDUCTOR_BENCHMARK_KERNELÚdevÚgitÚ0TORCHINDUCTOR_OPTIMIZE_SCATTER_UPON_CONST_TENSORÚworker_start_methodÚfuse_ddp_with_concat_opÚschedule_comm_wait).NÚ_fuse_ddp_communication_passesÚ_micro_pipeline_tpc                   ó,   — e Zd ZU dZeed<   dZeed<   dS )Ú_collectiveFÚauto_selecti   Ú#one_shot_all_reduce_threshold_bytesN)Ú__name__Ú
__module__Ú__qualname__r†   ÚboolÚ__annotations__r‡   Úintr   r   r   r…   r…   B  s3   € € € € € € Ø€K�ÐÐÑØ/9Ð'¨Ð9Ð9Ñ9Ð9Ð9r   r…   c                  óT   — d} d}t           j                             |¦  «        }| |k    S )a   
    TODO: Remove when parallel compiled is fully enabled internally. For rollout, use a
    knob to enable / disable. The justknob should not be performed at import, however.
    So for fbcode, we assign compile_threads to 'None' below and initialize lazily in
    async_compile.py.
    r<   z0pytorch/inductor:enable_parallel_compile_version)rf   Ú_utils_internalÚjustknobs_getval_int)ÚENABLE_PARALLEL_COMPILE_VERSIONÚjk_nameÚversions      r   Ú#parallel_compile_enabled_internallyr”   G  s0   € ð '(Ð#à@€GÝÔ#×8Ò8¸ÑAÔA€GØ*¨gÒ5Ð5r   c                  óh  — ddl } |                      t          ¦  «        }dt          j        v r6t          t          j        d         ¦  «        }|                     d|¦  «         nÏt          j        dk    rd}|                     d¦  «         n§t          ¦   «         r&t          ¦   «         sd}|                     d¦  «         nst          t          d	¦  «        r!t          t          j        d¦  «        ¦  «        nt          j        ¦   «         }|sJ ‚t          d
|¦  «        }|                     d|¦  «         |S )a!  
    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
    3. decide by the number of CPU cores
    r   NÚTORCHINDUCTOR_COMPILE_THREADSz!compile_threads set to %d via envÚwin32r<   z"compile_threads set to 1 for win32z"compile_threads set to 1 in fbcodeÚsched_getaffinityé    zcompile_threads set to %d)ÚloggingÚ	getLoggerrˆ   ÚosÚenvironr�   ÚinfoÚsysÚplatformr
   r”   ÚhasattrÚlenr˜   Ú	cpu_countÚmin)rš   ÚlogÚcompile_threadsr£   s       r   Údecide_compile_threadsr§   U  s+  € ð €N€N€Nð ×
Ò
�HÑ
%Ô
%€Cà&­"¬*Ð4Ð4Ý�bœjÐ)HÔIÑJÔJˆØ�ŠÐ4°oÑFÔFÐFÐFÝ	Œ˜Ò	 Ð	 ØˆØ�ŠÐ5Ñ6Ô6Ð6Ð6Ý	‰Œð ?Õ@ÑBÔBð ?ØˆØ�ŠÐ5Ñ6Ô6Ð6Ð6õ •rÐ.Ñ/Ô/ð �C•Ô$ QÑ'Ô'Ñ(Ô(Ð(å”‘”ð 	ð
 ÐÐˆyÝ˜b )Ñ,Ô,ˆØ�ŠÐ,¨oÑ>Ô>Ð>àÐr   r¦   )Úparutilú.zfb/cacheÚTORCHINDUCTOR_SHAPE_PADDINGÚ#TORCHINDUCTOR_COMPREHENSIVE_PADDINGé€   i   Úforce_shape_padÚTORCHINDUCTOR_PERMUTE_FUSIONÚTORCHINDUCTOR_PROFILEÚTORCHINDUCTOR_PROFILE_OUTPUTÚ3TORCHINDUCTOR_PROFILE_WITH_DO_BENCH_USING_PROFILINGÚTORCHINDUCTOR_FREEZINGÚfreezingÚfreezing_discard_parametersÚdecompose_mem_bound_mmÚassume_aligned_inputsÚ.unsafe_ignore_unsupported_triton_autotune_argsÚ"check_stack_no_cycles_TESTING_ONLYÚ*always_complex_memory_overlap_TESTING_ONLYÚ*TORCHINDUCTOR_ENABLE_LINEAR_BINARY_FOLDINGÚTORCHINDUCTOR_ANNOTATE_TRAININGÚannotate_trainingc                   ó  — e Zd ZU dZej                             dd¦  «        dk    Zej                             dd¦  «        dk    ZdZ	e
e         ed<    eej                             dd	¦  «        ¦  «        Zdej                             d
ej        dk    rdnd¦  «        fZej                             dd¦  «        dk    Zej                             dd¦  «        dk    ZdZe
e         ed<   dZe
e         ed<   dZe
e         ed<   d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¦  «        dk    Zej                             dd¦  «        dk    Z eej                             dd¦  «        ¦  «        Zej                             dd¦  «        Zej                             dd¦  «        Z dZ!dZ"dS )ÚcppéÿÿÿÿÚ$TORCHINDUCTOR_CPP_NO_REDUNDANT_LOOPSr    Ú!TORCHINDUCTOR_CPP_DYNAMIC_THREADSr"   NÚsimdlenÚ TORCHINDUCTOR_CPP_MIN_CHUNK_SIZEÚ4096ÚCXXÚdarwinzclang++zg++Ú'TORCHINDUCTOR_CPP_ENABLE_KERNEL_PROFILEÚ TORCHINDUCTOR_CPP_WEIGHT_PREPACKÚinject_relu_bug_TESTING_ONLYÚinject_log1p_bug_TESTING_ONLYÚ
vec_isa_okÚoriginal_atenÚ,TORCHINDUCTOR_CPP_MAX_HORIZONTAL_FUSION_SIZEÚ16Ú-TORCHINDUCTOR_CPP_FALLBACK_SCATTER_REDUCE_SUMÚ-TORCHINDUCTOR_CPP_ENABLE_UNSAFE_MATH_OPT_FLAGÚ5TORCHINDUCTOR_CPP_ENABLE_FLOATING_POINT_CONTRACT_FLAGÚ)TORCHINDUCTOR_CPP_ENABLE_TILING_HEURISTICÚ#TORCHINDUCTOR_CPP_GEMM_MAX_K_SLICESÚ%TORCHINDUCTOR_CPP_GEMM_CACHE_BLOCKINGÚ%TORCHINDUCTOR_CPP_GEMM_THREAD_FACTORSTF)#rˆ   r‰   rŠ   Úthreadsrœ   r�   ÚgetÚno_redundant_loopsÚdynamic_threadsrÂ   r   r�   rŒ   Úmin_chunk_sizerŸ   r    ÚcxxÚenable_kernel_profileÚweight_prepackrÉ   ÚstrrÊ   rË   r‹   Údescriptive_namesÚmax_horizontal_fusion_sizeÚfallback_scatter_reduce_sumÚenable_unsafe_math_opt_flagÚ#enable_floating_point_contract_flagÚenable_tiling_heuristicsÚgemm_max_k_slicesÚgemm_cache_blockingÚgemm_thread_factorsÚenable_loop_tail_vecÚenable_concat_linearr   r   r   r¾   r¾     sV  € € € € € € à€Gð
 	Œ
�ŠÐ=¸sÑCÔCÀsÒJð ð ”j—n’nÐ%HÈ#ÑNÔNÐRUÒU€Oà!€GˆX�cŒ]Ð!Ð!Ñ!Ø�S˜œŸšÐ(JÈFÑSÔSÑTÔT€Nàð
 	Œ
�Š�u¨3¬<¸8Ò+CÐ+C˜i˜iÈÑOÔOð€Cð 	Œ
�ŠÐ@À#ÑFÔFÈ#ÒMð ð
 ”Z—^’^Ð$FÈÑLÔLÐPSÒS€Nð
 37Ð  (¨3¤-Ð6Ð6Ñ6Ø37Ð! 8¨C¤=Ð7Ð7Ñ7ð "&€J�˜”Ð%Ð%Ñ%ð (Ðð "% Ø
Œ
�ŠÐEÀtÑLÔLñ"ô "Ðð 	Œ
�ŠÐFÈÑLÔLÐPSÒSð  ð 	Œ
�ŠÐFÈÑLÔLÐPSÒSð  ð 	Œ
�ŠÐNÐPSÑTÔTØò	ð (ð 	Œ
�ŠÐBÀCÑHÔHÈCÒOð ð ˜˜BœJŸNšNÐ+PÐRUÑVÔVÑWÔWÐð œ*Ÿ.š.Ð)PÐRVÑWÔWÐð œ*Ÿ.š.Ð)PÐRVÑWÔWÐð  Ðð !ÐÐÐr   r¾   c                   ór  — e Zd ZU ej                             d¦  «        dk    ZdZdZdZ	dZ
 e¦   «         rdndZdZdZee         ed<   dZdZdZdZdZdZdZdZdZeed	<   dZdZd
Zee         ed<   dZdZ ej                             dd¦  «        dk    Z!dZ"ej                             dd¦  «        dk    Z#ej                             dd¦  «        dk    Z$dZ% eej                             dd¦  «        ¦  «        Z&dZ'dZ(dZ)dZ*eed<   dZ+d
Z,ee-         ed<   dZ.ej                             dd¦  «        dk    Z/d
S )ÚtritonÚTORCHINDUCTOR_CUDAGRAPHSr    TFr¬   é2   Ú"cudagraph_dynamic_shape_warn_limité   Úprefer_nd_tilingNÚautotune_at_compile_timeÚ!TORCHINDUCTOR_UNIQUE_KERNEL_NAMESrÌ   Ú#TORCHINDUCTOR_PERSISTENT_REDUCTIONSÚ$TORCHINDUCTOR_COOPERATIVE_REDUCTIONSr"   ÚTORCHINDUCTOR_MULTI_KERNELé   é   Úspill_thresholdrÉ   ÚENABLE_PERSISTENT_TMA_MATMUL)0rˆ   r‰   rŠ   rœ   r�   r×   Ú
cudagraphsÚcudagraph_treesÚcudagraph_skip_dynamic_graphsÚslow_path_cudagraph_assertsÚ!cudagraph_trees_history_recordingr
   Ú cudagraph_support_input_mutationÚ#cudagraph_unexpected_rerecord_limitrî   r   r�   rŒ   Úforce_cudagraph_syncÚforce_cudagraphs_warmupÚfast_path_cudagraph_assertsÚskip_cudagraph_warmupÚdebug_sync_graphÚdebug_sync_kernelÚdense_indexingÚ	max_tilesrð   r‹   Úautotune_pointwiseÚautotune_cublasLtrñ   Ú tiling_prevents_pointwise_fusionÚ tiling_prevents_reduction_fusionÚunique_kernel_namesrß   Úpersistent_reductionsÚcooperative_reductionsÚforce_cooperative_reductionsÚmulti_kernelÚdivisible_by_16Úmin_split_scan_rblockÚstore_cubinrø   Úuse_block_ptrrÉ   rÞ   Úcodegen_upcast_to_fp32Úenable_persistent_tma_matmulr   r   r   rë   rë   w  s  € € € € € € à”—’Ð :Ñ;Ô;¸sÒB€Jð €Oð %*Ð!ð #'Ðð ).Ð%ð 1:°	±´Ð'E u uÀÐ$ð +.Ð'ð 9;Ð&¨°¬Ð:Ð:Ñ:ð !Ðð $Ðð #(Ðð "Ðð Ðð Ðð €Nð €Ið #Ð�dÐ"Ð"Ñ"ð Ðð Ðð 04Ð˜h tœnÐ3Ð3Ñ3ð (,Ð$Ø'+Ð$ð 	Œ
�ŠÐ:¸CÑ@Ô@ÀCÒGð ð (Ðð 	Œ
�ŠÐ<¸cÑBÔBÀcÒIð ð 	Œ
�ŠÐ=¸sÑCÔCÀsÒJð ð
 $)Ð ð �3�r”z—~’~Ð&BÀCÑHÔHÑIÔI€Lð €Oð  Ðð €Kð €O�SÐÐÑð €Mð
 37Ð  (¨3¤-Ð6Ð6Ñ6ð "Ðð
 	Œ
�ŠÐ5°sÑ;Ô;¸sÒBð !Ð Ð r   rë   c                   óô  — e Zd ZU dZej                             dd¦  «        dk    Zej                             dd¦  «        Zej                             dd¦  «        Z	dZ
dZdZeed	<   dZeed
<   dZeed<   dZeed<   i Zeeef         ed<   ej                             dd¦  «        dk    Zeed<   ej                             dd¦  «        dk    Zeed<   i Zeeef         ed<   dZeed<   dZeed<   dZeed<   dS )Úaot_inductorrZ   ÚAOT_INDUCTOR_DEBUG_COMPILEr"   r    Ú-AOT_INDUCTOR_DEBUG_INTERMEDIATE_VALUE_PRINTERÚ&AOT_INDUCTOR_FILTERED_KERNELS_TO_PRINTNFÚuse_runtime_constant_foldingÚforce_mmap_weightsÚpackageÚpackage_cpp_onlyÚmetadataÚ/AOTINDUCTOR_RAISE_ERROR_ON_IGNORED_OPTIMIZATIONÚ#raise_error_on_ignored_optimizationÚDUMP_AOTI_MINIFIERÚdump_aoti_minifierÚpresetsÚallow_stack_allocationÚuse_minimal_arrayref_interfaceTÚpackage_constants_in_so)rˆ   r‰   rŠ   Úoutput_pathrœ   r�   r×   Údebug_compileÚ debug_intermediate_value_printerÚfiltered_kernel_namesÚserialized_in_specÚserialized_out_specr  r‹   rŒ   r  r  r   r!  r   rÞ   r#  r%  r&  r   r'  r(  r)  r   r   r   r  r    s�  € € € € € € ð €Kà”J—N’NÐ#?ÀÑEÔEÈÒL€Mð (*¤z§~¢~Ø7¸ñ(ô (Ð$ð
 œJŸNšNØ0°$ñô Ðð Ðð Ðð */Ð  $Ð.Ð.Ñ.ð  %Ð˜Ð$Ð$Ñ$à€GˆTÐÐÑØ"Ð�dÐ"Ð"Ñ"ð  "€Hˆd�3˜�8ŒnÐ!Ð!Ñ!ð 	Œ
�ŠÐHÈ#ÑNÔNÐRUÒUð (¨ð ð ñ ð
  "œzŸ~š~Ð.BÀCÑHÔHÈCÒOÐ˜ÐOÐOÑOð !€GˆT�#�s�(Œ^Ð Ð Ñ ð $)Ð˜DÐ(Ð(Ñ(ð ,1Ð" DÐ0Ð0Ñ0ð %)Ð˜TÐ(Ð(Ñ(Ð(Ð(r   r  c            
       óè  — e Zd ZU dZee         ed<   dZee         ed<   dZdZ	dZ
dZdZej                             dej                             ej                             ej                             ej        ¦  «        d¦  «        ¦  «        ¦  «        ZdZee         ed<   dZee         ed	<   d
Zeed<   ej                             dd¦  «        dk    Zeed<   dZee         ed<   dZee         ed<   dS )ÚcudaNÚarchr“   z-O1FÚTORCHINDUCTOR_CUTLASS_DIRz../third_party/cutlass/Úcutlass_max_profiling_configsÚcuda_cxxr<   Úcutlass_backend_min_gemm_sizeÚ/INDUCTOR_CUDA_BACKEND_GENERATE_TEST_RUNNER_CODEr"   r    Úgenerate_test_runnerÚcutlass_op_allowlist_regexÚpingpongÚcutlass_op_denylist_regex)rˆ   r‰   rŠ   r2  r   rÞ   rŒ   r“   Úcompile_opt_levelÚenable_cuda_ltoÚenable_ptxas_infoÚenable_debug_infoÚuse_fast_mathrœ   r�   r×   ÚpathÚabspathÚjoinÚdirnamerf   Ú__file__Úcutlass_dirr4  r�   r5  r6  r8  r‹   r9  r;  r   r   r   r1  r1  ^  sU  € € € € € € ð €Dˆ(�3Œ-ÐÐÑð
 "€GˆX�cŒ]Ð!Ð!Ñ!ð Ðð €Oð Ðð Ðð €Mð ”*—.’.Ø#Ø
Œ�ŠØŒG�LŠL˜œŸš¨¬Ñ8Ô8Ð:SÑTÔTñ	
ô 	
ñô €Kð 48Ð! 8¨C¤=Ð7Ð7Ñ7ð #€Hˆh�sŒmÐ"Ð"Ñ"ð *+Ð! 3Ð*Ð*Ñ*ð
 	Œ
�ŠÐHÈ#ÑNÔNÐRUÒUð ˜$ð ð ñ ð 15Ð ¨¤Ð4Ð4Ñ4ð 0:Ð˜x¨œ}Ð9Ð9Ñ9Ð9Ð9r   r1  c                   ó  — e Zd ZU g Zee         ed<   g d¢Zee         ed<   dZdZ	dZ
dZdZdZdZee         ed<   ej                             d	¦  «        Zej                             d
d¦  «        dk    Zeed<   dZee         ed<   dZeed<   dS )Úrocmr2  )Úgfx90aÚgfx940Úgfx941Úgfx942Úck_supported_archz-O2FTNÚ	rocm_homeÚTORCHINDUCTOR_CK_DIRÚ-INDUCTOR_CK_BACKEND_GENERATE_TEST_RUNNER_CODEr"   r    r8  Ún_max_profiling_configsÚuse_preselected_instances)rˆ   r‰   rŠ   r2  r   rÞ   rŒ   rM  r<  Úis_debugÚ
save_tempsr@  Úflush_denormalsÚprint_kernel_resource_usagerN  r   rœ   r�   r×   Úck_dirr8  r‹   rQ  r�   rR  r   r   r   rH  rH  §  sú   € € € € € € ð €Dˆ$ˆsŒ)ÐÐÑð $LÐ#KÐ#KÐ�t˜C”yÐKÐKÑKð Ðð €Hð €Jð €Mð €Oð #(Ðð  $€Iˆx˜Œ}Ð#Ð#Ñ#ð ŒZ�^Š^Ð2Ñ3Ô3€Fð 	Œ
�ŠÐFÈÑLÔLÐPSÒSð ˜$ð ð ñ ð
 .2Ð˜X cœ]Ð1Ð1Ñ1ð ',Ð˜tÐ+Ð+Ñ+Ð+Ð+r   rH  c                   ó*   — e Zd ZdZdZdZdZdZdZdZ	dS )ÚhalideÚhostz	host-cudaÚAnderson2021Ú	Adams2019FN)
rˆ   r‰   rŠ   Ú
cpu_targetÚ
gpu_targetÚscheduler_cudaÚscheduler_cpuÚassertsÚdebugÚscan_kernelsr   r   r   rY  rY  Þ  s;   € € € € € à€Jð €Jð $€NØ€Mð €Gð €Eð €L€L€Lr   rY  c                   óè  — e Zd ZU ej                             dd¦  «        dk    Zej                             dd¦  «        dk    ZdZe	e
         ed<   dZdZdZdZdZdZdZej                             d	d¦  «        dk    Zej                             d
d¦  «        dk    Zej                             dd¦  «        Zej                             dd¦  «        ZdZdZe	ee
gdf                  ed<   dZeed<   dS )ÚtraceÚTORCH_COMPILE_DEBUGr"   r    ÚTORCH_COMPILE_DEBUG_SAVE_REALNÚ	debug_dirFTÚINDUCTOR_POST_FUSION_SVGÚINDUCTOR_ORIG_FX_SVGÚINDUCTOR_DOT_GRAPH_SHAPE_SVGÚ INDUCTOR_LOG_URL_FOR_GRAPH_XFORMÚ
upload_tarÚlog_autotuning_results)rˆ   r‰   rŠ   rœ   r�   r×   ÚenabledÚsave_real_tensorsrh  r   rÞ   rŒ   Ú	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Úlog_url_for_graph_xformÚcompile_profilerm  r   rn  r‹   r   r   r   re  re  ö  s;  € € € € € € àŒj�nŠnÐ2°CÑ8Ô8¸CÒ?€Gð œ
ŸšÐ'FÈÑLÔLÐPSÒSÐð  $€Iˆx˜Œ}Ð#Ð#Ñ#ð €Ið €Hð €Hð  Ðð €Mð €Nð €Kð ”J—N’NÐ#=¸sÑCÔCÀsÒJ€Mð œŸšÐ(>ÀÑDÔDÈÒKÐð ”j—n’nÐ%CÀTÑJÔJ€Oð !œjŸnšnÐ-OÐQUÑVÔVÐð €Oð 37€J�˜ 3 %¨ +Ô.Ô/Ð6Ð6Ñ6à#(Ð˜DÐ(Ð(Ñ(Ð(Ð(r   re  )ztrace.upload_tarr5   r6   r7   )re  zcuda.cutlass_dirr   r¦   r4   r3   r¹   Úexternal_matmulc                   ó   — e Zd ZdZdZdS )Útest_configsFN)rˆ   r‰   rŠ   Ú%force_extern_kernel_in_multi_templateÚruntime_triton_dtype_assertr   r   r   r  r  Q  s   € € € € € Ø,1Ð)à"'ÐÐÐr   r  )Ú*)ârœ   rŸ   Útypingr   r   r   r   r   r   r	   rf   Ú!torch._inductor.custom_graph_passÚtorch._environmentr
   Útorch.utils._config_moduler   r   r‹   r   r   r   r   r�   r×   Úenable_auto_functionalized_v2rb  Údisable_progressÚverbose_progressÚfx_graph_cacher#   rŒ   r$   r%   r&   r'   Úforce_disable_cachesr)   r�   Ú#custom_op_default_layout_constraintÚ'triton_kernel_default_layout_constraintÚcpp_wrapperÚc_shim_versionÚ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Úb2b_gemm_passr3   rg   Úcustom_graph_passÚCustomGraphPassTyper4   r5   ÚfxÚGraphr6   r7   Úgraphr8   Úsplit_cat_fx_passesÚ efficient_conv_bn_eval_fx_passesÚis_predispatchÚgroup_fusionÚbatch_fusionr9   rÞ   r:   Úreorder_for_localityÚdynamic_scale_rblockÚforce_fuse_int_mm_with_mulÚuse_mixed_mmrA   Úmixed_mm_choiceÚ reorder_for_compute_comm_overlapÚ'reorder_for_compute_comm_overlap_passesÚreorder_for_peak_memoryÚestimate_op_runtimeÚintra_node_bwÚinter_node_bwÚmax_autotuneÚmax_autotune_pointwiseÚmax_autotune_gemmÚautotune_num_choices_displayedÚforce_same_precisionÚupperÚmax_autotune_gemm_backendsÚmax_autotune_conv_backendsÚmax_autotune_gemm_search_spaceÚautotune_fallback_to_atenÚunbacked_symint_fallbackÚsearch_autotune_cacheÚ	save_argsÚautotune_in_subprocÚ+max_autotune_subproc_result_timeout_secondsÚ-max_autotune_subproc_graceful_timeout_secondsÚ.max_autotune_subproc_terminate_timeout_secondsÚautotune_multi_deviceÚcoordinate_descent_tuningÚ'coordinate_descent_check_all_directionsÚ coordinate_descent_search_radiusri   rl   rb   r_   r`   Úautoheuristic_log_pathr“   ÚhipÚlayout_opt_defaultÚlayout_optimizationÚforce_layout_optimizationÚkeep_output_strideÚwarn_mix_layoutÚrealize_reads_thresholdÚrealize_opcount_thresholdÚrealize_acc_reads_thresholdÚfallback_randomÚimplicit_fallbacksÚaggressive_fusionÚdebug_fusionÚbenchmark_fusionÚenabled_metric_tablesÚloop_ordering_after_fusionÚscore_fusion_memory_thresholdÚbenchmark_epilogue_fusionÚ max_epilogue_benchmarked_choicesÚmax_fusion_sizeÚmax_pointwise_cat_inputsÚforce_pointwise_catÚunroll_reductions_thresholdÚcomment_originÚconv_1x1_as_mmÚsplit_reductionsÚbenchmark_kernelÚconstant_and_index_propagationÚalways_keep_tensor_constantsÚassert_indirect_indexingÚcompute_all_boundsÚcombo_kernelsÚbenchmark_combo_kernelÚcombo_kernels_autotuneÚcombo_kernel_allow_mixed_sizesÚ#combo_kernel_foreach_dynamic_shapesÚjoint_graph_constant_foldingÚdebug_index_assertsÚemulate_precision_castsÚ__version__Úis_nightly_or_sourceÚdeveloper_warningsÚ"optimize_scatter_upon_const_tensorr   Ú_fuse_ddp_communicationÚ_fuse_ddp_bucket_sizer‚   rƒ   r…   r”   r§   r¦   Úlibfb.pyr¨   Ú__package__Úget_dir_pathrA  rC  ÚreplaceÚsepÚglobal_cache_dirÚ
ValueErrorÚImportErrorÚkernel_name_max_opsÚshape_paddingÚcomprehensive_paddingÚpad_channels_lastÚdisable_padding_cpuÚpadding_alignment_bytesÚpadding_stride_thresholdÚpad_outputsÚbw_outputs_user_visibler­   Ú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Ú/profile_bandwidth_with_do_bench_using_profilingÚdisable_cpp_codegenr³   r´   rµ   r¶   r·   r¸   r¹   Úenable_linear_binary_foldingr¼   r¾   rë   r  r1  rH  Úcpu_backendÚcuda_backendrY  re  Ú_save_config_ignoreÚ_cache_config_ignore_prefixr}  ÚTensorr  Útorch.utils._config_typingÚmodulesrˆ   r   r   r   ú<module>r     sS  ðØ 	€	€	€	€	Ø 
€
€
€
Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ Là €€€Ø (Ð (Ð (Ð (Ø (Ð (Ð (Ð (Ð (Ð (Ø NÐ NÐ NÐ NÐ NÐ NÐ NÐ NðC x°¤~ð Cð Cð Cð CðC x°¤~ð Cð Cð Cð CðK¨x¸¬~ð Kð Kð Kð Kð°8¸D´>ð ð ð ð ð „J‡N‚NÐ7¸Ñ=Ô=ÀÒDð ð
 	€ð Ð ð Ð ð „J‡N‚NÐ1¸)¸)¹+¼+Ð3N°3°3È3ÑOÔOÐSVÒVð ð )FÐ(EÑ(GÔ(GÐ �x ”~Ð GÐ GÑ Gð
 .Ð-Ñ/Ô/ð " 8Øô$ð 0ð 0ñ 0ð "Ð �dÐ !Ð !Ñ !ð )FÐ(EÑ(GÔ(GÐ �x ”~Ð GÐ GÑ Gð 1VÐ0UÑ0WÔ0WÐ ˜x¨œ~Ð WÐ WÑ Wð ”z—~’~Ð&JÑKÔKÈsÒRÐ ð )-Ð ˜ œÐ ,Ð ,Ñ ,ð 'AÐ #ð +EÐ 'ð Œj�nŠnÐ8¸#Ñ>Ô>À#ÒE€à”—’Ð >ÀÑDÔD€ð €ð Ð ð Œz�~Š~Ð:¸CÑ@Ô@ÀCÒG€ØŒj�nŠnÐ8Ñ9Ô9¸SÒ@€ð Ð ð €ð Ð ð ”*—.’.Ð!@À#ÑFÔFÈ#ÒM€ð Œj�nŠnÐ8¸/ÑJÔJ€ð Ð ð €ð Ð ð €ð €ð TXÐ ˜5œ?Ô<ÔPÐ WÐ WÑ WØTXÐ ˜EœOÔ=ÔQÐ XÐ XÑ Xð EIÐ �x ¨%¬(¬.Ð)9¸4Ð)?Ô @ÔAÐ HÐ HÑ HØEIÐ ˜ ¨5¬8¬>Ð*:¸DÐ*@Ô!AÔBÐ IÐ IÑ Ið
 JNÐ �h˜x¨¬¬Ô)=Ð(>ÀÐ(DÔEÔFÐ MÐ MÑ Mð 	ð ˜ØØ	Ð;Ô	<Ð=ØÐ:Ô;ð	=ôôð 	ð 	ñ 	ð Ð ð $)Ð  ð €ð €ð €ð( 68Ð ˜˜c 4¨¨S¨¤>Ð1Ô2Ð 7Ð 7Ñ 7ð 79Ð ˜$˜s D¨¨c¨¤NÐ2Ô3Ð 8Ð 8Ñ 8ð Ð ð ”z—~’~Ð&JÈCÑPÔPÐTWÒWÐ ð #Ð ð
 €ð ØØØð	+ð +Ð ˜˜c 3˜hœð ð ñ ð( €ð $)Ð  ð+ð +ð +Ð 'ð Ð ð  Ð ð €ð €ð Œz�~Š~Ð:Ñ;Ô;¸sÒB€ð œŸšÐ(NÑOÔOÐSVÒVÐ ð ”J—N’NÐ#DÑEÔEÈÒLÐ ð "$Ð ð ˆI‰KŒKÐX€D€D˜RœZŸ^š^Ð,PÑQÔQÐUXÒXð ð  œZŸ^š^Ø.Ð0Añô ç‚%�'„'ð ð  œZŸ^š^Ø.°ñô ç‚%�'„'ð ð "$¤§¢Ø2°Iñ"ô "ç‚%�'„'ð ð „J‡N‚NÐ<¸cÑBÔBÀcÒIð ð  Ð ð œ
ŸšÐ'LÑMÔMÐQTÒTÐ àŒJ�NŠNÐ4Ñ5Ô5¸Ò<€	ð ”j—n’nÐ%HÑIÔIÈSÒPÐ ð
 /3Ð +à03Ð -à14Ð .ð œ
ŸšÐ'LÑMÔMÐQTÒTÐ ð „J‡N‚NÐ<Ñ=Ô=ÀÒDð ð „J‡N‚NÐJÑKÔKÈsÒRð (ð $' 3Ø„J‡N‚NÐ<¸cÑBÔBñ$ô $Ð  ð œ
ŸšÐ'LÈbÑQÔQÐ à”J—N’NÐ#DÀjÑQÔQÐ ðB˜Cð B Dð Bð Bð Bð BðK ð K¨ð Kð Kð Kð KðG˜Cð G Dð Gð Gð Gð Gð œŸšØ*¨Iñô Ð ð
 !&¤Ô 1Ð:�S�S°sÐ à„J‡N‚NÐ6Ð8JÑKÔKÈsÒRð ð œJŸNšNÐ+KÈSÑQÔQÐUXÒXÐ ð ”Z—^’^Ð$FÈÑLÔLÐPSÒSÐ ð ”*—.’.Ð!@ÑAÔAÀSÒH€ð
 Ð ØÐ ð  Ð ð €ð Ð ð Ð ð Œz�~Š~Ð:Ñ;Ô;¸sÒB€Ø”:—>’>Ð"BÑCÔCÀsÒJÐ Øœ
ŸšÐ'LÈbÑQÔQÐ à„J‡N‚NÐ=¸sÑCÔCÀsÒJð ð !#Ð ð „J‡N‚NÐ<¸cÑBÔBÀcÒIð ð
 $%Ð  ð €ð Ð ð Ð ð  Ð ð €ð €ð Ð à”:—>’>Ð"BÀCÑHÔHÈCÒOÐ ð "&Ð ð  %Ð ð  Ð ð Ð ð €àÐ ð Ð ð "#Ð à&+Ð #ð  $Ð ð Ð ð  Ð ð  Ô 1Ð1ÐO°U¸eÔ>OÐ5OÐ Ø�Y‘[”[Ð8Ð$8Ð ð „J‡N‚NÐEÀsÑKÔKÈsÒRð #ð
 &*Ð �X˜c”]Ð )Ð )Ñ )ð  Ð ØÐ ð  ØðIÐ   U¨8°IÔ+>ÀÐ+CÔ%DÔ Eð ð ñ ð
 !Ð �DÐ  Ð  Ñ  ð:ð :ð :ð :ð :ñ :ô :ð :ð
6¨Tð 6ð 6ð 6ð 6ð! ð !ð !ð !ð !ðJ *3¨©¬Ð!R  Ð:PÐ:PÑ:RÔ:R€�˜#”Ð RÐ RÑ Rð €9�;„;ð ð
 Ø$Ð$Ð$Ð$Ð$Ð$àð 	@Ø3˜wÔ3Ø”—’˜[×0Ò0°°b´fÑ=Ô=¸zÑJÔJñ ô  ÐÐð  4˜wÔ3°JÑ?Ô?ÐøøØ˜Ð$ð  ð  ð  ØÐÐÐð øøøð Ðð Ð ð ”
—’Ð<¸cÑBÔBÀcÒI€ð „J‡N‚NÐ8¸#Ñ>Ô>À#ÒEð ð Ð ð Ð ð Ð ð(  Ð ð €ð Ð ð €�Ð Ð Ñ ð ”—’Ð >ÀÑDÔDÈÒK€ð #Ð ð
 $Ð ð Ð ð !Ð àŒz�~Š~Ð5°rÑ:Ô:€Ø  BÒ&Ð Ø ,°Ò 3Ð 3˜"˜"¸Ð ð œ:Ÿ>š>Ð*HÈ$ÑOÔOÐ ð „J‡N‚NÐHÑIÔIÈSÒPð 0ð Ð ð ”—’Ð 8¸#Ñ>Ô>À#ÒE€ˆ$Ð EÐ EÑ Eð %*Ð ˜TÐ )Ð )Ñ )ð  %Ð ˜Ð $Ð $Ñ $ð
 $Ð �tÐ #Ð #Ñ #ð 8=Ð .°Ð <Ð <Ñ <ð ,1Ð " DÐ 0Ð 0Ñ 0ð 49Ð *¨DÐ 8Ð 8Ñ 8ð „J‡N‚NÐ?ÀÑEÔEÈÒLð ð œ*Ÿ.š.Ð)JÈCÑPÔPÐTWÒWÐ �4Ð WÐ WÑ Wðf!ð f!ð f!ð f!ð f!ñ f!ô f!ð f!ðTWð Wð Wð Wð Wñ Wô Wð WðtJ)ð J)ð J)ð J)ð J)ñ J)ô J)ð J)ðZF:ð F:ð F:ð F:ð F:ñ F:ô F:ð F:ðR-,ð -,ð -,ð -,ð -,ñ -,ô -,ð -,ðb €ð €ðð ð ð ð ñ ô ð ð0=)ð =)ð =)ð =)ð =)ñ =)ô =)ð =)ð@ð ð Ð ðð ð Ð ð  UW€��h ¤¨e¬l¸E¼LÐIÈ4ÐOÔPÔQÐ VÐ VÑ Vð(ð (ð (ð (ð (ñ (ô (ð (ð ð -Ø,Ð,Ð,Ð,ð Ð �c”k (Ô+Ñ ,Ô ,Ð ,Ð ,Ð ,s   ßA`2 à2	`>à=`>