Ë
    L²j« ã                   óê%  — U d dl Z d dlZd dlmZ d dl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mZmZ erd dlmZ d dlmZ e j,                  j/                  dd	«      d	k(  Zd
Zdedz  fd„Zdedz  fd„Zdedz  fd„Zdedz  fd„Zdedz  fd„Zdedz  fd„Z defd„Z!defd„Z"e j,                  j/                  dd	«      d	k(  Z#d
Z$dZ%d
Z& e«       rdndZ' e(e j,                  j/                  dd«      «      Z)e(e*d<    edddd¬«      Z+ee*d<   d
Z,ee*d<    e«       Z-edz  e*d <    e«       Z.edz  e*d!<    ed"d#d¬$«      Z/ee*d%<   dZ0ee*d&<    e«       Z1edz  e*d'<    e«       Z2edz  e*d(<    ed)¬*«      Z3ee*d+<   d
Z4ee*d,<   i Z5e6e7e7f   e*d-<   dZ8e(dz  e*d.<   d/Z9ed0   e*d1<   e j,                  j/                  d2d3«      d	k(  Z:ee*d4<   e j,                  j/                  d5d3«      d	k(  Z;ee*d6<   e j,                  j/                  d7d3«      d	k(  Z<ee*d8<   e j,                  j/                  d9 e«       rd3nd	«      d	k(  Z=ee*d:<   e j,                  j/                  d;d	«      d	k(  Z>e j,                  j/                  d<d	«      d	k(  Z?d
Z@dZAe j,                  j/                  d=d	«      d	k(  ZBe j,                  j/                  d>«      d	k(  ZCe j,                  j/                  d?«      d	k(  ZDe j,                  j/                  d@d	«      d	k(  ZEe j,                  j/                  dA e«       rd3nd	«      d	k(  ZFdZGdZHdZIe j,                  j/                  dBd3«      d	k(  ZJe j,                  j/                  dC«      d	k(  ZKe j,                  j/                  dDdE«      ZLedF   e*dG<   dZMdZN e"«       ZOd
ZPd
ZQdZRd
ZSdZTe	jª                  j¬                  j®                  e*dH<   dZXe	jª                  j¬                  j®                  e*dI<   dZYe	jª                  j¬                  j´                  e*dJ<   dZ[e	jª                  j¬                  j®                  e*dK<   dZ\e	jª                  j¬                  j®                  e*dL<   dZ]e	jª                  j¬                  j®                  e*dM<   dZ^ee_dN   ge_dN   f   dz  e*dO<   dZ`ee_dN   ge_dN   f   dz  e*dP<   dZad
Zbd
Zcd
ZddZei Zfe6e7e6e7ef   f   e*dQ<   i Zge6e7e6e7ef   f   e*dR<   dZhe j,                  j/                  dSd	«      d	k(  Zid
ZjdZkdZld
dTdUddVœZme6e7ef   e*dW<   dXZnedY   e*dZ<   d
Zog Zpe_e7ee_dN   ge_dN   f   z     e*d[<   dZqe(dz  e*d\<   dZrd
Zsd Zte(e*d]<   d^Zued_   e*d`<   dZvee(ge(f   dz  e*da<   dbZwedc   e*dd<   d^Zxede   e*df<   dZyee(ge(f   dz  e*dg<   dbZzedc   e*dh<   d^Z{ede   e*di<   dZ|ee(ge(f   dz  e*dj<   dbZ}d
Z~ee*dk<   dZdlZ€dmZ� eddndo¬p«      Z‚ee*dq<   e j,                  j/                  dr«      d	k(  Zƒe j,                  j/                  ds«      d	k(  Z„e j,                  j/                  dt«      d	k(  Z…e j,                  j/                  du«      d	k(  Z†e j,                  j/                  dv«      d	k(  Z‡ e( e �j                  dwdl«      «      Z‰ e( e �j                  dxdy«      «      ZŠde(dz  fdz„Z‹ e‹«       ZŒe(dz  e*d{<   e j,                  j/                  d|d	«      d	k(  Z�e j,                  j/                  d}d3«      d	k(  ZŽe j,                  j/                  d~d3«      d	k(  Z�e j,                  j/                  d e«       sd	nd3«      d	k(  Z�ee*d€<   dZ‘d�e*d‚<   g Z’e_e7   e*dƒ<   g Z“e_e7   e*d„<   d
Z”ee*d…<    ed†d‡d
¬$«      Z•ee*dˆ<   g Z–e_e(   e*d‰<   e j,                  j/                  dŠd‹«      �j/                  «       Z˜de(dz  fdŒ„Z™ e™«       Zše(dz  e*d�<   e j,                  j/                  dŽd�«      �j/                  «       Z›e j,                  j/                  d�d‘«      �j/                  «       Zœed’   e*d“<   e j,                  j/                  d”d‘«      �j/                  «       Z�ed’   e*d•<   d
Zžee*d–<   d
ZŸee*d—<   dZ ee*d˜<   dZ¡ee*d™<   dbZ¢edš   e*d›<   dZ£ee*dœ<   dZ¤ee*d�<   e j,                  j/                  džd3«      d	k(  Z¥ee*dŸ<   d
Z¦d Z§d
Z¨e j,                  j/                  d¡«      d	k(  Z©e j,                  j/                  d¢«      d	k(  Zªd£Z«d¤Z¬d¤Z­e j,                  j/                  d¥«      d	k(  Z® e(e j,                  j/                  d¦d§«      «      Z¯ e°e j,                  j/                  d¨d©«      «      Z±e j,                  j/                  dª«      d	k(  Z²e j,                  j/                  d««      d	k(  Z³ e(e j,                  j/                  d¬d	«      «      Z´d­„ Zµd®„ Z¶ G d¯„ d°«      Z· G d±„ d²«      Z¸e j,                  j/                  d³d3«      d	k(  Z¹d´e7defdµ„Zºd´e7defd¶„Z»d´e7defd·„Z¼e j,                  j/                  d¸d‘«      Z½e	�j|                  �j~                  sd	nd3ZÀe j,                  j/                  d¹eÀ«      d	k(  ZÁe j,                  j/                  dºd3«      d	k(  ZÂe j,                  j/                  d»d3«      d	k(  ZÃe j,                  j/                  d¼d	«      d	k(  ZÄe j,                  j/                  d½«      d	k(  ZÅd¾ZÆd¿ZÇdÀZÈdZÉe(dz  e*dÁ<    edÂd¬Ã«      ZÊee*dÄ<   d
ZËd
ZÌd
ZÍdZÎe j,                  j/                  dÅ«      d	k(  ZÏdZÐeg dÆf   dz  e*dÇ<   d
ZÑe j,                  j/                  dÈ«      d	k(  ZÒee*dÉ<   e j,                  j/                  dÊ«      d	k(  ZÓee*dË<   e j,                  j/                  dÌdÍ«      ZÔe j,                  j/                  dÎ e«       rd3nd	«      d	k(  ZÕee*dÏ<   dZÖee*dÐ<   dÑZ×e j,                  j/                  dÒd	«      d	k(  ZØdUZÙdÓZÚdÔZÛdÓZÜdZÝe(dz  e*dÕ<   dÀZÞd
ZßdÀZàd
Zád
Zâ e �j                  dÖd	«      d	k(  Zã e �j                  d×«      d	k(  Zä e(e j,                  j/                  dØd «      «      Zåe j,                  j/                  dÙd3«      d	k(  ZædZçd
ZèdZéd
Zêd
Zëd
Zìd
ZídUZîdUZïdZðdÚZñd
Zòd
ZódZôd
ZõdÛe	�jì                  v xs dÜe	�jì                  v Z÷ e«       xs e÷Zøe j,                  j/                  dÝd	«      d	k(  ZùdZúe7dz  e*dÞ<   dZûe7dz  e*dß<    edàdÍ¬Ã«      Züe7e*dá<   de7fdâ„Zý eý«       Zþe7e*dã<   däZÿe(e*då<    edædçd¬$«      �Z ee*dè<    edéd
¬Ã«      �Zee*dê<   d
�Zdl�Zdëdìg�Ze_edí   e7z     e*dî<   d
�Zee*dï<   e j,                  j/                  dðd3«      d	k(  �Zdñ�Ze(e*dò<   dó�Ze(e*dô<   dõ�Z	e°e*dö<    G d÷„ dø«      �Z
 G dù„ dú«      �Zdefdû„�Zde(fdü„�Z e«       rdn �e«       �Ze(dz  e*dý<    edþdÿd¬$«      �Zee*�d <    e�d�¬«      �Ze(e*�d<    e!«       �Zee*�d<    e�d¬*«      �Zee*�d<    e�d�dd
¬$«      �Zee*�d	<   e j,                  j/                  �d
d3«      d	k(  �Zee*�d<    e�d¬*«      �Zee*�d<   e7dz  e*�d<    e«       rv	 d �d�l�m�Z �erQ �e�j2                  e �j4                  �j7                  �e�j9                  �de �j:                  «      �d«      «      �Zn �e�j2                  �d«      �Znd�ZdÑ�Z!e j,                  j/                  �dd	«      d	k(  �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+d
�Z,ee*�d<   e j,                  j/                  �dd3«      d	k(  �Z-d
�Z.d
�Z/d
�Z0d
�Z1 e«        �Z2ee*�d<   e j,                  j/                  �ddÍ«      �Z3�e3dÍk7  �Z4�e3d	k(  rdÍn�e3�Z5e j,                  j/                  �dd«      �Z6e7dz  e*�d<   e j,                  j/                  �d«      d	k(  �Z7d
�Z8e j,                  j/                  �dd3«      d	k(  �Z9e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#<   d
�Z@ee*�d$<   d
�ZAee*�d%<   e j,                  j/                  �d&d3«      d	k(  �ZBe j,                  j/                  �d'd3«      d	k(  �ZCee*�d(<   d�ZDee*�d)<   i �ZEe6e7e6e7ef   f   e*�d*<    e(e j,                  j/                  �d+�d,«      «      �ZFe(e*�d-<   d
�ZGee*�d.<   de7dz  f�d/„�ZH e�d0dÍ¬Ã«      �ZIe7e*�d1<    G �d2„ �d3«      �ZJ G �d4„ �d5«      �ZK G �d6„ �d7«      �ZL G �d8„ �d9«      �ZM G �d:„ �d;«      �ZN G �d<„ �d=«      �ZO e�eO«       G �d>„ �d?�eO«      «       �ZP e�eO«       G �d@„ �dA�eO«      «       �ZQ G �dB„ �dC«      �ZR�d5�ZSe�dD   e*�dE<   �d7�ZTe�dF   e*�dG<   �dH�ZUe�dH   e*�dI<   �d7�ZVe�d7   e*�dJ<    G �dK„ �dL«      �ZW G �dM„ �dN«      �ZX G �dO„ �dP«      �ZYg �dQ¢�ZZe_e7   e*�dR<   g �dS¢�Z[e_e7   e*�dT<   dÇg�Z\e_e7   e*�dU<   g �Z]e_ee	�j¼                  e	�j¼                  e	�j¼                  gdf      e*�dV<    e �j                  �dWd	«      d	k(  �Z_ G �dX„ �dY«      �Z` G �dZ„ �d[«      �Zaerd �d\�lb­  G �d]„ �d^«      �Zce j,                  j/                  �d_d3«      d	k(  �Zdee*�d`<    ee�jÊ                  �ef   «       y# �e�e f$ r d�ZY �Œ)w xY w(a  é    N)ÚCallable)ÚAnyÚcastÚLiteralÚTYPE_CHECKING)Ú	is_fbcode)ÚConfigÚget_tristate_envÚinherit_fields_fromÚinstall_config_module)ÚInductorChoices)ÚCUDAGraphPolicyÚTORCHINDUCTOR_INPLACE_PADDINGÚ1FÚreturnc                  ó   — t        d«      S )NÚ#TORCHINDUCTOR_FX_GRAPH_REMOTE_CACHE©r
   © ó    úU/var/www/html/ia-enhanced/venv/lib/python3.12/site-packages/torch/_inductor/config.pyÚfx_graph_remote_cache_defaultr      ó   € ÜÐAÓBÐBr   c                  ó�   — t         j                  j                  d«      dk(  ryt         j                  j                  d«      dk(  ryy )NÚTORCHINDUCTOR_VEC_ISA_OKr   TÚ0F)ÚosÚenvironÚgetr   r   r   Úvec_isa_ok_defaultr       s7   € Ü	‡z�z‡~�~Ð0Ó1°SÒ8ØÜ	‡z�z‡~�~Ð0Ó1°SÒ8ØØr   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ÐJr   c                  ó:   — t        dt        «       sd«      S 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ˆóð à%)óð r   c                  ó   — t        d«      S )NÚ&TORCHINDUCTOR_AUTOTUNE_AT_COMPILE_TIMEr   r   r   r   Ú autotune_at_compile_time_defaultr,   4   s   € ÜÐDÓEÐEr   c                  óÌ   — d} dt         j                  v r"t         j                  j                  d«      dk(  S t        «       r$t        j
                  j                  d«      }|| k  S y)Né   Ú&TORCHINDUCTOR_USE_STATIC_CUDA_LAUNCHERr   z-pytorch/inductor:static_cuda_launcher_versionT©r   r   r   r   ÚtorchÚ_utils_internalÚjustknobs_getval_int)ÚSTATIC_CUDA_LAUNCHER_VERSIONÚversions     r   Ústatic_cuda_launcher_defaultr6   8   s^   € Ø#$Ð à/´2·:±:Ñ=Ü�z‰z�~‰~ÐFÓGÈ3ÑNÐNÜ	ŒÜ×'Ñ'×<Ñ<Ø;ó
ˆð Ð6Ñ6Ð6ð r   c                  óÐ   — d} dt         j                  v r"t         j                  j                  d«      dk(  S t        «       r&d}t        j
                  j                  |«      }|| k  S y)Nr   ÚTORCHINDUCTOR_PROLOGUE_FUSIONr   z(pytorch/inductor:prologue_fusion_versionTr0   )ÚENABLE_PROLOGUE_FUSION_VERSIONÚjk_namer5   s      r   Úprologue_fusion_enabledr;   G   s\   € Ø%&Ð"à&¬"¯*©*Ñ4Ü�z‰z�~‰~Ð=Ó>À#ÑEÐEÜ	ŒØ<ˆÜ×'Ñ'×<Ñ<¸WÓEˆØÐ8Ñ8Ð8àr   Ú"TORCHDYNAMO_AUTO_FUNCTIONALIZED_V2Tú-/logs/dedicated_log_torch_compile_worker_rankÚ,TORCHINDUCTOR_PRECOMPILATION_TIMEOUT_SECONDSi,  Úprecompilation_timeout_secondsz0pytorch/remote_cache:enable_local_fx_graph_cacheÚ$TORCHINDUCTOR_FX_GRAPH_CACHE_DEFAULTÚTORCHINDUCTOR_FX_GRAPH_CACHE)ÚjustknobÚenv_name_defaultÚenv_name_forceÚdefaultÚfx_graph_cacheÚremote_gemm_autotune_cacheÚfx_graph_remote_cacheÚ!bundle_triton_into_fx_graph_cachez>pytorch/remote_cache:enable_non_blocking_remote_cache_write_v2Ú-TORCHINDUCTOR_NON_BLOCKING_REMOTE_CACHE_WRITE)rB   rD   rE   Únon_blocking_remote_cache_writeÚautotune_local_cacheÚautotune_remote_cacheÚbundled_autotune_remote_cachez*torch.compiler.config.force_disable_caches)ÚaliasÚforce_disable_cachesÚ&unsafe_skip_cache_dynamic_shape_guardsÚ!unsafe_marked_cacheable_functionsÚsleep_sec_TESTING_ONLYÚneeds_fixed_stride_order)rT   Úflexible_layoutÚ'triton_kernel_default_layout_constraintÚTORCHINDUCTOR_CPP_WRAPPERr   Úcpp_wrapperÚ(TORCHINDUCTOR_CPP_WRAPPER_BUILD_SEPARATEÚcpp_wrapper_build_separateÚTORCHINDUCTOR_FX_WRAPPERÚ
fx_wrapperÚ*TORCHINDUCTOR_CPP_CACHE_PRECOMPILE_HEADERSÚcpp_cache_precompile_headersÚTORCHINDUCTOR_ONLINE_SOFTMAXÚ$TORCHINDUCTOR_APPLY_GUMBEL_MAX_TRICKÚTORCHINDUCTOR_SIZE_ASSERTSÚTORCHINDUCTOR_NAN_ASSERTSÚ(TORCHINDUCTOR_RUNTIME_TRITON_NAN_ASSERTSÚTORCHINDUCTOR_SCALAR_ASSERTSÚTORCHINDUCTOR_ALIGNMENT_ASSERTSÚTORCHINDUCTOR_MEMORY_PLANNINGÚTORCHINDUCTOR_USE_FAST_MATHÚTORCHINDUCTOR_MEMORY_POOLÚintermediates)Únoneri   ÚoutputsÚcombinedÚmemory_poolÚpost_grad_custom_pre_passÚpost_grad_custom_post_passÚcustom_partitioner_fnÚjoint_custom_pre_passÚjoint_custom_post_passÚpre_grad_custom_passz+torch._inductor.scheduler.BaseSchedulerNodeÚ_pre_fusion_custom_passÚ_post_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)rE   ÚtritonÚatenr   Úmixed_mm_choiceÚ'reorder_for_compute_comm_overlap_passesÚreorder_prefetch_limitÚ&size_threshold_for_succ_based_strategyrj   )rj   ÚallÚ	only_fsdpÚbucket_all_gathers_fxÚ.bucket_all_gathers_fx_bucket_size_determinatorrE   )rE   Ú
custom_opsÚcustom_ops_multidtypeÚbucket_all_gathers_bucket_mode©rj   r†   Úbucket_reduce_scatters_fxÚ2bucket_reduce_scatters_fx_bucket_size_determinatorÚ"bucket_reduce_scatters_bucket_modeÚbucket_all_reduces_fxÚ.bucket_all_reduces_fx_bucket_size_determinatorÚ!runtime_estimations_mms_benchmarké   g      I@Ú*TORCHINDUCTOR_USE_EXPERIMENTAL_BENCHMARKERz-pytorch/inductor:use_experimental_benchmarker)rE   rD   rB   Úuse_experimental_benchmarkerÚ+TORCHINDUCTOR_DISTRIBUTED_MAX_AUTOTUNE_GEMMÚ&TORCHINDUCTOR_PIPELINE_GEMM_AUTOTUNINGÚTORCHINDUCTOR_MAX_AUTOTUNEÚ$TORCHINDUCTOR_MAX_AUTOTUNE_POINTWISEÚTORCHINDUCTOR_MAX_AUTOTUNE_GEMMÚ%TORCHINDUCTOR_DEFAULT_AUTOTUNE_WARMUPÚ"TORCHINDUCTOR_DEFAULT_AUTOTUNE_REPéd   c                  ó‚   — t         j                  j                  d«      } | €y| j                  «       dv ry t	        | «      S )NÚ,TORCHINDUCTOR_AUTOTUNE_NUM_CHOICES_DISPLAYEDé
   r�   ©r   r   r   ÚlowerÚint©Úenv_vals    r   Ú'_autotune_num_choices_displayed_defaultr§     s8   € Ü�j‰j�n‰nÐKÓL€GØ€ØØ‡}�}ƒ˜/Ñ)ØÜˆw‹<Ðr   Úautotune_num_choices_displayedÚ/TORCHINDUCTOR_MAX_AUTOTUNE_REPORT_CHOICES_STATSÚ<TORCHINDUCTOR_MAX_AUTOTUNE_PRUNE_CHOICES_BASED_ON_SHARED_MEMÚ-TORCHINDUCTOR_TRITON_DISABLE_DEVICE_DETECTIONÚTORCHINDUCTOR_GRAPH_PARTITIONÚgraph_partitionzCUDAGraphPolicy | NoneÚcudagraph_policyÚcustom_should_partition_opsÚcudagraph_unsafe_unbacked_opsÚ#max_autotune_allow_flexible_layoutsz%pytorch/compiler:force_same_precisionÚ"TORCHINDUCTOR_FORCE_SAME_PRECISIONÚforce_same_precisionÚmulti_kernel_hintsÚ(TORCHINDUCTOR_MAX_AUTOTUNE_GEMM_BACKENDSzATEN,TRITON,CPPc                  ó~   — t         j                  j                  dd«      } | j                  «       dv ry t	        | «      S )NÚ*TORCHINDUCTOR_NVGEMM_MAX_PROFILING_CONFIGSÚ5r�   r¢   r¥   s    r   Ú%_nvgemm_max_profiling_configs_defaultr¹   n  s2   € Ü�j‰j�n‰nÐIÈ3ÓO€GØ‡}�}ƒ˜/Ñ)ØÜˆw‹<Ðr   Únvgemm_max_profiling_configsÚ(TORCHINDUCTOR_MAX_AUTOTUNE_CONV_BACKENDSzATEN,TRITONÚ,TORCHINDUCTOR_MAX_AUTOTUNE_GEMM_SEARCH_SPACEÚDEFAULT)r½   Ú
EXHAUSTIVEÚmax_autotune_gemm_search_spaceÚ,TORCHINDUCTOR_MAX_AUTOTUNE_FLEX_SEARCH_SPACEÚmax_autotune_flex_search_spaceÚfallback_by_defaultÚselective_decomposeÚuse_dceÚuse_pre_grad_passes)ÚearlyÚlaterE   Úpre_grad_pass_timingÚuse_joint_graph_passesÚuse_post_grad_passesÚCUTEDSL_ENABLE_AUTOTUNINGÚcutedsl_enable_autotuningi    ÚTORCHINDUCTOR_SAVE_ARGSÚ!TORCHINDUCTOR_AUTOTUNE_IN_SUBPROCg      N@g        Ú#TORCHINDUCTOR_AUTOTUNE_MULTI_DEVICEÚ(TORCHINDUCTOR_COLLECTIVE_BENCHMARK_NRUNSÚ50Ú*TORCHINDUCTOR_COLLECTIVE_BENCHMARK_TIMEOUTÚ30Ú'TORCHINDUCTOR_COORDINATE_DESCENT_TUNINGÚ5TORCHINDUCTOR_COORDINATE_DESCENT_CHECK_ALL_DIRECTIONSÚ'TORCHINDUCTOR_COORDINATE_DESCENT_RADIUSc                  ód   — t         j                  j                  dd«      j                  d«      } | S )NÚ#TORCHINDUCTOR_AUTOHEURISTIC_COLLECTÚ ú,©r   r   r   Úsplit)Úcollect_envs    r   Ú _parse_autoheuristic_collect_envrÞ   ê  s)   € Ü—*‘*—.‘.Ð!FÈÓK×QÑQÐRUÓV€KØÐr   c                  ód   — t         j                  j                  dd«      j                  d«      } | S )NÚTORCHINDUCTOR_AUTOHEURISTIC_USEÚmixed_mmrÚ   rÛ   )Úuse_envs    r   Ú_parse_autoheuristic_use_envrã   ï  s(   € Ü�j‰j�n‰nÐ>À
ÓK×QÑQÐRUÓV€GØ€Nr   c                   ó4   — e Zd ZdZd e«       v Zd e«       v Zy)Úautoheuristic_collectzT
    Config for which autoheuristic optimizations should collect training data.
    Úpad_mmrá   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rÞ   ræ   rá   r   r   r   rå   rå   ô  s%   „ ñð Ñ9Ó;Ð;€FØÑ=Ó?Ð?�Hr   rå   c                   ó4   — e Zd ZdZd e«       v Zd e«       v Zy)Úautoheuristic_usezU
    Config for which autoheuristic optimizations should use learned heuristics.
    ræ   rá   N)rç   rè   ré   rê   rã   ræ   rÞ   rá   r   r   r   rì   rì   ý  s%   „ ñð Ñ5Ó7Ð7€FØÑ=Ó?Ð?�Hr   rì   Ú'TORCHINDUCTOR_RUN_JIT_POST_COMPILE_HOOKÚnamec                 ó2   — t        | «      xs t        | «      S ©N)Úcollect_autoheuristicÚuse_autoheuristic©rî   s    r   Úrun_autoheuristicrô     s   € Ü  Ó&ÒAÔ*;¸DÓ*AÐAr   c                 ón   — | dk(  rt         j                  S | dk(  rt         j                  S | t        «       v S ©Nræ   rá   )rå   ræ   rá   rÞ   ró   s    r   rñ   rñ     s;   € ØˆxÒÜ$×+Ñ+Ð+Ø	�Ò	Ü$×-Ñ-Ð-ð Ô7Ó9Ð9Ð9r   c                 ón   — | dk(  rt         j                  S | dk(  rt         j                  S | t        «       v S rö   )rì   ræ   rá   rã   ró   s    r   rò   rò     s;   € ØˆxÒÜ ×'Ñ'Ð'Ø	�Ò	Ü ×)Ñ)Ð)ð Ô3Ó5Ð5Ð5r   Ú$TORCHINDUCTOR_AUTOHEURISTIC_LOG_PATHÚ!TORCHINDUCTOR_LAYOUT_OPTIMIZATIONÚTORCHINDUCTOR_FORCE_LAYOUT_OPTÚ#TORCHINDUCTOR_CACHE_SDPA_CONSTRAINTÚ TORCHINDUCTOR_KEEP_OUTPUT_STRIDEÚTORCHINDUCTOR_WARN_MIX_LAYOUTé   é   é   Ú realize_acc_reads_size_thresholdÚ)TORCHINDUCTOR_DELAY_REALIZE_CHEAP_OUTPUTS©rD   rE   Údelay_realize_cheap_outputsÚ.TORCHINDUCTOR_ASSUME_UNALIGNED_FALLBACK_OUTPUTr   Úinductor_choices_classÚTORCHINDUCTOR_DEBUG_FUSIONÚdebug_fusionÚTORCHINDUCTOR_BENCHMARK_FUSIONÚbenchmark_fusionÚ#TORCHINDUCTOR_ENABLED_METRIC_TABLESrÙ   Ú(TORCHINDUCTOR_LOOP_ORDERING_AFTER_FUSIONÚloop_ordering_after_fusionÚloop_index_inversion_in_fusionr¡   Ú'TORCHINDUCTOR_BENCHMARK_EPILOGUE_FUSIONé@   gš™™™™™ñ?Úmax_fusion_unique_io_buffersÚTORCHINDUCTOR_SPLIT_REDUCTIONSÚTORCHINDUCTOR_DETERMINISTICÚTORCHINDUCTOR_MIN_NUM_SPLITÚTORCHINDUCTOR_BENCHMARK_KERNELéú   ÚdevÚgitÚ0TORCHINDUCTOR_OPTIMIZE_SCATTER_UPON_CONST_TENSORÚadd_pre_grad_passesÚremove_pre_grad_passesÚTORCHINDUCTOR_DISABLED_PASSESÚdisabled_passesc                  ór   — dt         j                  v rt         j                  d   } nd} | dv s
J d| › �«       ‚| S )NÚTORCHINDUCTOR_WORKER_STARTÚ
subprocess)r   ÚforkÚspawnzInvalid start method: )r   r   )Ústart_methods    r   Údecide_worker_start_methodr$    sR   € Ø#¤r§z¡zÑ1Ü—z‘zÐ">Ñ?‰à#ˆØð ñ ð /ð 
  ˜~Ð.ó	/ð ð
 Ðr   Úworker_start_methodi   Úsmall_memory_access_thresholdz(pytorch/compiler:worker_suppress_loggingÚ%TORCHINDUCTOR_WORKER_SUPPRESS_LOGGINGÚworker_suppress_loggingÚLOG_TLPARSEÚlog_tlparseÚfuse_ddp_with_concat_opÚschedule_comm_wait).NÚ_fuse_ddp_communication_passesÚ_micro_pipeline_tpÚ)TORCHINDUCTOR_PARTITIONED_SCATTER_ENABLEDr.   Ú"partitioned_scatter_min_partitionsé€   Ú"partitioned_scatter_max_partitionsgš™™™™™¹?Ú!partitioned_scatter_memory_budgetc                   ó*   — e Zd ZU dZeed<   dZeed<   y)Ú_collectiveFÚauto_selecti   Ú#one_shot_all_reduce_threshold_bytesN)rç   rè   ré   r6  ÚboolÚ__annotations__r7  r¤   r   r   r   r5  r5  f  s   … Ø€K�ÓØ/9Ð'¨Ô9r   r5  c                   óÒ  — e Zd ZU dZdZeed<   dZedz  ed<   dZedz  ed<   dZ	e
dz  ed<   dZedz  ed<   dZeej                   j"                  gedz  f   dz  ed	<   d
Zed   ed<   dZed   ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZe
dz  ed<   dZeed<   dZedz  ed<   dZeed<   dZedz  ed<   dZed   dz  ed<   dZeed<   dZeed<   dZ ed   ed<   dZ!eed<   y) Úaten_distributed_optimizationszDConfiguration for distributed optimization passes on ATen FX graphs.FÚenable_overlap_schedulingNÚcollective_bucketingÚinsert_overlap_depsÚmax_compute_pre_fetchÚcompute_overlap_multiplerÚcustom_runtime_estimationÚ
analytical)rB  Ú	benchmarkÚcollective_estimatorrC  Úcompute_estimatorÚmax_memory_increase_gbÚmax_memory_increase_ratioÚmax_in_flight_gbÚmax_coll_distanceÚ!log_final_collectives_estimationsÚbucket_exposed_firstÚbucket_only_internode_commsÚenable_fusion_regions)rE   rŠ   r‹   Ú	coalescedÚbucket_modeTÚ&prioritize_bucketing_during_schedulingÚ
spmd_checkÚwarn)rR  ÚerrorÚspmd_mismatchÚ!overlap_scheduling_autofix_cycles)"rç   rè   ré   rê   r<  r8  r9  r=  r>  r?  r¤   r@  ÚfloatrA  r   r1   ÚfxÚNoderD  r   rE  rF  rG  rH  rI  rJ  rK  rL  rM  rO  rP  rQ  rT  rU  r   r   r   r;  r;  k  sz  … ÙNð ',Ð˜tÓ+ð )-Ð˜$ ™+Ó,ð (,Ð˜ ™Ó+ð )-Ð˜3 ™:Ó,à.2Ð˜u t™|Ó2ð QUÐ˜x¨¯©¯©¨¸À¹Ð(EÑFÈÑMÓTð @LÐ˜'Ð";Ñ<ÓKð =HÐ�wÐ8Ñ9ÓGð ,0Ð˜E D™LÓ/Ø.2Ð˜u t™|Ó2ð &*Ð�e˜d‘lÓ)ð %)Ð�s˜T‘zÓ(Ø.3Ð% tÓ3ð )-Ð˜$ ™+Ó,ð ).Ð Ó-ð
 *.Ð˜4 $™;Ó-ð 	ð ØÐMÑNÐQUÑUóð
 48Ð*¨DÓ7ð
 €J�Óð
 /5€M�7˜?Ñ+Ó4ð
 /4Ð% tÔ3r   r;  c                  óR   — d} d}t         j                  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.
    ry   z0pytorch/inductor:enable_parallel_compile_version)r1   r2   r3   )ÚENABLE_PARALLEL_COMPILE_VERSIONr:   r5   s      r   Ú#parallel_compile_enabled_internallyr[  Æ  s0   € ð '(Ð#à@€GÜ×#Ñ#×8Ñ8¸ÓA€GØ*¨gÑ5Ð5r   c                  óÞ  — ddl } | j                  t        «      }dt        j                  v r0t        t        j                  d   «      }|j                  d|«       |S t        j                  dk(  rd}|j                  d«       |S t        «       rt        «       sd}|j                  d«       |S t        j                  j                  «       }|sJ ‚t        d	|«      }|j                  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Úwin32ry   z"compile_threads set to 1 for win32z"compile_threads set to 1 in fbcodeé    zcompile_threads set to %d)ÚloggingÚ	getLoggerrç   r   r   r¤   ÚinfoÚsysÚplatformr   r[  r1   Ú_utilsÚ	cpu_countÚmin)r`  ÚlogÚcompile_threadsrf  s       r   Údecide_compile_threadsrj  Ô  sÜ   € ó ð ×
Ñ
œHÓ
%€Cà&¬"¯*©*Ñ4ÜœbŸj™jÐ)HÑIÓJˆØ�‰Ð4°oÔFð Ðô 
�‰˜Ò	 ØˆØ�‰Ð5Ô6ð Ðô 
ŒÔ@ÔBØˆØ�‰Ð5Ô6ð Ðô —L‘L×*Ñ*Ó,ˆ	ÙÐˆyÜ˜b )Ó,ˆØ�‰Ð,¨oÔ>àÐr   ri  z+pytorch/inductor:quiesce_async_compile_poolÚ(TORCHINDUCTOR_QUIESCE_ASYNC_COMPILE_POOLÚquiesce_async_compile_poolé<   )rE   Úquiesce_async_compile_timeÚuse_static_cuda_launcherz/torch._inductor.config.use_static_cuda_launcherÚuse_static_triton_launcherz:pytorch/inductor:static_launch_user_defined_triton_kernelsÚ7TORCHINDUCTOR_STATIC_LAUNCH_USER_DEFINED_TRITON_KERNELSÚ)static_launch_user_defined_triton_kernelsÚ)TORCHINDUCTOR_STRICT_STATIC_CUDA_LAUNCHERÚstrict_static_cuda_launcherz2torch._inductor.config.strict_static_cuda_launcherÚstrict_static_triton_launcherÚglobal_cache_dir)Úparutilú.zfb/cacheÚTORCHINDUCTOR_SHAPE_PADDINGÚ#TORCHINDUCTOR_COMPREHENSIVE_PADDINGé   Úforce_shape_padÚTORCHINDUCTOR_PERMUTE_FUSIONÚ_use_fp64_for_unbacked_floatsÚTORCHINDUCTOR_PROFILEÚTORCHINDUCTOR_PROFILE_OUTPUTÚprofile_bandwidth_outputÚ3TORCHINDUCTOR_PROFILE_WITH_DO_BENCH_USING_PROFILINGÚTORCHINDUCTOR_FREEZINGÚfreezingÚfreezing_discard_parametersÚdecompose_mem_bound_mmÚwrap_inductor_compiled_regionsÚassume_aligned_inputsÚassume_32bit_indexingÚ.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_trainingÚ)enable_caching_generated_triton_templatesÚautotune_lookup_tableÚTORCHINDUCTOR_FILE_LOCK_TIMEOUTÚ600Úfile_lock_timeoutÚenable_autograd_for_aotc                  ó¬   — d } t        «       rGt        j                  j                  dd «      }t        j                  j                  dd«      }|�d|› �} | S )NÚMAST_HPC_JOB_NAMEÚ	ROLE_RANKr   r=   )r   r   r   r   )Úlog_locÚmast_job_nameÚglobal_ranks      r   Úget_worker_log_pathrœ  Ð  sL   € Ø€GÜ„{ÜŸ
™
Ÿ™Ð':¸DÓAˆÜ—j‘j—n‘n [°#Ó6ˆàÐ$ØEÀkÀ]ÐSˆGà€Nr   ÚTORCHINDUCTOR_WORKER_LOGPATHÚtorchinductor_worker_logpathc                   óü   — e Zd ZU ej                  j                  d«      dk(  Zeed<   dZ	e
ed<   dZe
ed<   ej                  j                  d«      �! e
ej                  j                  d«      «      nd	Ze
d	z  ed
<   y	)Úauto_chunkerÚTORCHINDUCTOR_AUTO_CHUNKERr   Úenablei   Úoutput_size_thresholdr   Úamplify_ratio_thresholdÚ TORCHINDUCTOR_CHUNKER_NUM_CHUNKSNÚ	num_chunk)rç   rè   ré   r   r   r   r¢  r8  r9  r£  r¤   r¤  r¦  r   r   r   r   r   â  sz   … Ø—:‘:—>‘>Ð">Ó?À3ÑF€FˆDÓFð "-Ð˜3Ó,ð $%Ð˜SÓ$ð �:‰:�>‰>Ð<Ó=ÐIñ 	ˆB�J‰J�N‰NÐ=Ó>Ô?àð ˆs�T‰zô r   r   c                   óì  — e Zd ZU dZdZej                  j                  dd«      dk(  Zej                  j                  dd«      dk(  Z	dZ
edz  ed<    eej                  j                  d	d
«      «      Zdej                  j                  dej                  dk(  rdnd«      fZedef   ed<   ej                  j                  dd«      dk(  Zej                  j                  dd«      dk(  ZdZedz  ed<   dZedz  ed<    ed«      Zedz  ed<   dZed   ed<    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«      Zej                  j                  dd«      dk(  Z d Z! eej                  j                  d!d«      «      Z"ej                  j                  d"d«      Z#ej                  j                  d#d«      Z$d$Z%d Z&ej                  j                  d%d«      dk(  Z'd Z(ej                  j                  d&d«      dk(  Z)ej                  j                  d'd«      dk(  Z*d(Z+y))Úcppzu
    Settings for cpp backend.
    This class provides a centralized location for managing cpp backend settings.
    éÿÿÿÿÚ$TORCHINDUCTOR_CPP_NO_REDUNDANT_LOOPSr   Ú!TORCHINDUCTOR_CPP_DYNAMIC_THREADSr   NÚsimdlenÚ TORCHINDUCTOR_CPP_MIN_CHUNK_SIZEÚ512ÚCXXÚdarwinzclang++zg++ÚcxxÚ'TORCHINDUCTOR_CPP_ENABLE_KERNEL_PROFILEÚ TORCHINDUCTOR_CPP_WEIGHT_PREPACKÚinject_relu_bug_TESTING_ONLYÚinject_log1p_bug_TESTING_ONLYr   Ú
vec_isa_okÚoriginal_aten©r1   r·  Úinductor_nodeÚdescriptive_namesÚ,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ÚoffÚ)TORCHINDUCTOR_CPP_ENABLE_TILING_HEURISTICFÚ#TORCHINDUCTOR_CPP_GEMM_MAX_K_SLICESÚ%TORCHINDUCTOR_CPP_GEMM_CACHE_BLOCKINGÚ%TORCHINDUCTOR_CPP_GEMM_THREAD_FACTORSTÚ$TORCHINDUCTOR_CPP_USE_DECOMPOSE_TANHÚ%TORCHINDUCTOR_CPP_FORCE_INLINE_KERNELÚ-TORCHINDUCTOR_CPP_USE_CONSTEXPR_FOR_INT_ARRAYr{  ),rç   rè   ré   rê   Úthreadsr   r   r   Úno_redundant_loopsÚdynamic_threadsr¬  r¤   r9  Úmin_chunk_sizerc  rd  r±  ÚtupleÚstrÚenable_kernel_profileÚweight_prepackr´  rµ  r
   r¶  r8  rº  r   Úmax_horizontal_fusion_sizeÚfallback_scatter_reduce_sumÚenable_unsafe_math_opt_flagÚ#enable_floating_point_contract_flagÚenable_tiling_heuristicsÚenable_grouped_gemm_templateÚgemm_max_k_slicesÚgemm_cache_blockingÚgemm_thread_factorsÚenable_loop_tail_vecÚenable_concat_linearÚuse_decompose_tanhÚuse_small_dequant_bufferÚforce_inline_kernelÚuse_constexpr_for_int_arrayÚuse_two_step_variance_thresholdr   r   r   r¨  r¨  ó  s¥  … ñð €Gð
 	�
‰
�‰Ð=¸sÓCÀsÑJð ð —j‘j—n‘nÐ%HÈ#ÓNÐRUÑU€Oà€GˆS�4‰ZÓÙ˜Ÿ™Ÿ™Ð(JÈEÓRÓS€Nð 	Ø
�
‰
�‰�u¨3¯<©<¸8Ò+C™iÈÓOð€Cˆˆt�SˆyÑ	ó ð 	�
‰
�‰Ð@À#ÓFÈ#ÑMð ð
 —Z‘Z—^‘^Ð$FÈÓLÐPSÑS€Nð
 04Ð  #¨¡*Ó3Ø04Ð! 3¨¡:Ó4ñ /Ð/IÓJ€J��t‘ÓJð 	ð �wÐHÑIó ñ
 "%Ø
�
‰
�‰ÐEÀtÓLó"Ðð 	�
‰
�‰ÐFÈÓLÐPSÑSð  ð 	�
‰
�‰ÐFÈÓLÐPSÑSð  ð +-¯*©*¯.©.Ø?Àó+Ð'ð 	�
‰
�‰ÐBÀCÓHÈCÑOð ð
 $)Ð ñ ˜BŸJ™JŸN™NÐ+PÐRUÓVÓWÐð Ÿ*™*Ÿ.™.Ð)PÐRVÓWÐð Ÿ*™*Ÿ.™.Ð)PÐRVÓWÐð  Ðð !Ðð
 	�
‰
�‰Ð=¸sÓCÀsÑJð ð
  %Ðð 	�
‰
�‰Ð>ÀÓDÈÑKð ð 	�
‰
�‰ÐFÈÓLÐPSÑSð  ð
 '+Ñ#r   r¨  c                   ól  — e Zd ZU dZej
                  j                  d«      dk(  ZdZdZ	dZ
eeeedf   z     dz  ed<   d	ZdZdZdZ e«        Zd
ZdZedz  ed<   dZdZ edd¬«      Zeed<   dZeed<   dZdZdZdZdZ ej
                  j                  d e«       sdnd«      dk(  Z!eed<   dZ"edz  ed<   dZ#eed<   dZ$dZ% e&«       Z'edz  ed<   dZ(eed<   dZ)eed<    ejT                  dd«      dk(  Z+eed<   dZ,dZ-ej
                  j                  dd«      dk(  Z.ej
                  j                  dd«      dk(  Z/dZ0e1d   ed<   ej
                  j                  d d«      dk(  Z2ej
                  j                  d!d«      dk(  Z3eed"<   ej
                  j                  d#d«      dk(  Z4dZ5 eej
                  j                  d$d«      «      Z6e1d%   ed&<   ej
                  j                  d'd«      dk(  Z7d(Z8dZ9e:jv                  jx                  rd)nd*Z=eed+<   dZ>dZ?dZ@dZAeBdz  ed,<   dZCej
                  j                  d-d«      dk(  ZDej
                  j                  d.d«      dk(  ZEej
                  j                  d/d«      dk(  ZFdZG eej
                  j                  d0e:jv                  jx                  rdnd1«      «      ZH eej
                  j                  d2d3«      «      ZIej
                  j                  d4d«      dk(  ZJej
                  j                  d5 e«       rdnd«      dk(  ZKd6ZLdZMedz  ed7<   ej
                  j                  d8d«      dk(  ZNdZOej
                  j                  d9«      dk(  ZPi ZQeReBef   ed:<   d;ZSej
                  j                  d<d«      dk(  ZTeed=<   ej
                  j                  d>«      ZUeBdz  ed?<   ej
                  j                  d@d«      dk(  ZVeedA<   ej
                  j                  dBd«      dk(  ZWeedC<   ej
                  j                  dDd«      dk(  ZXeedE<   y)Fr€   z.
    Config specific to codegen/triton.py
    ÚTORCHINDUCTOR_CUDAGRAPHSr   TFN.Úcudagraph_capture_sizesr   r1  r   Ú"cudagraph_dynamic_shape_warn_limitÚ TORCHINDUCTOR_CUDAGRAPH_OR_ERRORr  Úcudagraph_or_errorÚ%reorder_for_reducing_graph_partitionsÚ&TORCHINDUCTOR_COALESCE_TILING_ANALYSISr   Úcoalesce_tiling_analysisÚ	max_tilesÚprefer_nd_tilingÚautotune_at_compile_timeÚautotune_with_sample_inputsÚtile_reductionsÚTORCHINDUCTOR_NATIVE_MATMULÚnative_matmulÚ!TORCHINDUCTOR_UNIQUE_KERNEL_NAMESÚ&TORCHINDUCTOR_UNIQUE_USER_KERNEL_NAMESr·  r¸  rº  Ú#TORCHINDUCTOR_PERSISTENT_REDUCTIONSÚ TORCHINDUCTOR_DECOMPOSE_SORT_OPSÚdecompose_sort_opsÚ$TORCHINDUCTOR_COOPERATIVE_REDUCTIONSÚTORCHINDUCTOR_MULTI_KERNEL)r   ry   r.   é   Úmulti_kernelÚTORCHINDUCTOR_DIVISIBLE_BY_16é   r_  é   Úspill_thresholdr´  ÚENABLE_PERSISTENT_TMA_MATMULÚENABLE_TEMPLATE_TMA_STOREÚTORCHINDUCTOR_SKIP_L1Ú$TORCHINDUCTOR_NUM_DECOMPOSE_K_SPLITSÚ10Ú#TORCHINDUCTOR_DECOMPOSE_K_THRESHOLDÚ32ÚTORCHINDUCTOR_ENABLE_PDLÚ!TORCHINDUCTOR_MIX_ORDER_REDUCTIONry   Úmix_order_reduction_split_sizeÚ5TORCHINDUCTOR_MIX_ORDER_REDUCTION_AUTOTUNE_SPLIT_SIZEÚ4TORCHINDUCTOR_MIX_ORDER_REDUCTION_ALLOW_MULTI_STAGESÚdebug_dump_kernel_inputsr÷  Ú%TORCHINDUCTOR_TRITON_PROTON_PROFILINGÚproton_profilingÚ&TORCHINDUCTOR_TRITON_PROTON_OUTPUT_DIRÚproton_output_dirÚ'TORCHINDUCTOR_TRITON_PROTON_GROUP_BY_SMÚproton_group_by_smÚ-TORCHINDUCTOR_TRITON_PROTON_SPLIT_INVOCATIONSÚproton_split_invocationsÚ-TORCHINDUCTOR_TRITON_PROTON_PER_CTA_OCCUPANCYÚproton_per_cta_occupancy)Yrç   rè   ré   rê   r   r   r   Ú
cudagraphsÚcudagraph_treesÚcudagraph_skip_dynamic_graphsrâ  rÌ  r¤   r9  Úcudagraph_min_partition_sizeÚslow_path_cudagraph_assertsÚ!cudagraph_trees_history_recordingÚcudagraph_trees_objgraphr   Ú cudagraph_support_input_mutationÚ#cudagraph_unexpected_rerecord_limitrã  Úforce_cudagraph_syncÚforce_cudagraphs_warmupr	   rå  r8  ræ  Úfast_path_cudagraph_assertsÚskip_cudagraph_warmupÚdebug_sync_graphÚdebug_sync_kernelÚdense_indexingrè  ré  rê  Úautotune_pointwiseÚautotune_cublasLtr,   rë  rì  rí  Úgetenvrï  Ú tiling_prevents_pointwise_fusionÚ tiling_prevents_reduction_fusionÚunique_kernel_namesÚunique_user_kernel_namesrº  r   Úpersistent_reductionsrô  Úcooperative_reductionsÚforce_cooperative_reductionsrø  Údivisible_by_16Úmin_split_scan_rblockÚstore_cubinr1   r5   Úhiprü  Úuse_block_ptrÚuse_tensor_descriptorÚ)transpose_discontiguous_tensor_descriptorr´  rÍ  Úcodegen_upcast_to_fp32Úenable_persistent_tma_matmulÚenable_template_tma_storeÚskip_l1_cacheÚ.disallow_failing_autotune_kernels_TESTING_ONLYÚnum_decompose_k_splitsÚdecompose_k_thresholdÚ
enable_pdlÚmix_order_reductionÚ"mix_order_reduction_initial_xblockr  Ú'mix_order_reduction_autotune_split_sizeÚ#mix_order_reduction_non_strict_modeÚ&mix_order_reduction_allow_multi_stagesr	  ÚdictÚmax_kernel_dump_occurrencesr  r  r  r  r  r   r   r   r€   r€   y  sC  … ñð
 —‘—‘Ð :Ó;¸sÑB€Jð €Oð %*Ð!ð DHÐ˜U 3¨¨s°C¨x©Ñ#8Ñ9¸DÑ@ÓGð $%Ð ð #'Ðð ).Ð%ð  %Ðñ ,5«; Ð$ð +.Ð'ð 67Ð&¨¨d©
Ó6ð !Ðð $Ðñ  &Ø9Øô Ð˜ó ð 37Ð)¨4Ó6ð #(Ðð "Ðð Ðð Ðð €Nð 	�
‰
�‰Ø4ÁÄ±cÐRUó	
ð ñ	ð ˜dó ð !€Iˆs�T‰zÓ ð #Ð�dÓ"ð Ðð Ðñ -MÓ,NÐ˜d T™kÓNð
 ).Ð Ó-ð "€O�TÓ!ð$ $˜"Ÿ)™)Ð$AÀ3ÓGÈ3ÑN€M�4ÓNð (,Ð$Ø'+Ð$ð 	�
‰
�‰Ð:¸CÓ@ÀCÑGð ð 	�
‰
�‰Ð?ÀÓEÈÑLð ð 	ð �wÐHÑIó ð 	�
‰
�‰Ð<¸cÓBÀcÑIð ð 	�
‰
�‰Ð9¸3Ó?À3ÑFð ˜ó ð 	�
‰
�‰Ð=¸sÓCÀsÑJð ð
 $)Ð ñ ),Ø
�
‰
�‰Ð3°SÓ9ó)€L�'˜*Ñ%ó ð
 —j‘j—n‘nÐ%DÀcÓJÈcÑQ€Oð  Ðð €Kð "'§¡×!2Ò!2™2¸€O�SÓ:ð €Mð "Ðð
 15Ð-ð
 04Ð  #¨¡*Ó3ð "Ðð 	�
‰
�‰Ð5°sÓ;¸sÑBð !ð
 !#§
¡
§¡Ð/JÈCÓ PÐTWÑ WÐà—J‘J—N‘NÐ#:¸CÓ@ÀCÑG€Mð 6;Ð2ñ !Ø
�
‰
�‰Ø2¸5¿=¹=×;LÒ;L±CÐRVó	
óÐñ  Ø
�
‰
�‰Ð<¸dÓCóÐð —‘—‘Ð :¸CÓ@ÀCÑG€Jð 	�
‰
�‰Ð:Á9Ä;¹CÐTWÓXØñ	ð ð *+Ð&à15Ð" C¨$¡JÓ5à
�
‰
�‰ÐNÐPSÓTØñ	ð ,ð +0Ð'ð 	�
‰
�‰ÐMÓNÐRUÑUð +ð 02Ð˜d 3¨ 8™nÓ1ð
 #$Ðð 	�
‰
�‰Ð>ÀÓDÈÑKð �dó ð %'§J¡J§N¡NØ0ó%Ð�s˜T‘zó ð
 	�
‰
�‰Ð@À#ÓFÈ#ÑMð ˜ó ð
 	�
‰
�‰ÐFÈÓLÐPSÑSð ˜dó ð 	�
‰
�‰ÐFÈÓLÐPSÑSð ˜dô r   r€   c                   óÌ  — e Zd ZU 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«      dk(  Z
ej                  j                  dd	«      Zej                  j                  d
d«      Zed   ed<   ej                  j                  dd«      ZdZdZdZeed<   dZeed<   dZdZeed<   dZedz  ed<   dZeed<   i Zeeef   ed<   ej                  j                  dd«      dk(  Zeed<   dZeed<   ej                  j                  dd«      dk(  Zeed<    eej                  j                  dd«      «      Z eed<   i Z!eee"f   ed<   dZ#eed <   dZ$eed!<   ej                  j                  d"d«      dk(  Z%eed#<   dZ&eed$<   dZ'edz  ed%<    e(«        Z)eed&<   dZ*edz  ed'<   dZ+edz  ed(<   dZ,edz  ed)<   i Z-ee.j^                  j`                  e1e   f   ed*<   dZ2e1e   dz  ed+<   ej                  j                  d,d«      dk(  Z3dZ4eed-<   dZ5edz  ed.<   dZ6ee1e   z  dz  ed/<   dZ7edz  ed0<   y)1Úaot_inductorz9
    Settings for Ahead-Of-Time Inductor Compilation
    rÙ   ÚAOT_INDUCTOR_DEBUG_COMPILEr   r   ÚAOT_INDUCTOR_DEBUG_SYMBOLSÚ!AOT_INDUCTOR_ENABLE_FRAME_POINTERÚ&AOT_INDUCTOR_COMPILE_WRAPPER_OPT_LEVELÚO1Ú-AOT_INDUCTOR_DEBUG_INTERMEDIATE_VALUE_PRINTER)r   r   Ú2Ú3Ú debug_intermediate_value_printerÚ&AOT_INDUCTOR_FILTERED_KERNELS_TO_PRINTNFÚuse_runtime_constant_foldingÚforce_mmap_weightsTÚpackageÚpackage_cpp_onlyÚdynamic_linkageÚmetadataÚ/AOTINDUCTOR_RAISE_ERROR_ON_IGNORED_OPTIMIZATIONÚ#raise_error_on_ignored_optimizationÚcheck_lowerboundÚDUMP_AOTI_MINIFIERÚdump_aoti_minifierÚAOTINDUCTOR_REPRO_LEVELr.   Úrepro_levelÚpresetsÚallow_stack_allocationÚuse_minimal_arrayref_interfaceÚ)AOT_INDUCTOR_WEIGHT_USE_CACHING_ALLOCATORÚweight_use_caching_allocatorÚpackage_constants_in_soÚ package_constants_on_disk_formatÚprecompile_headersÚembed_kernel_binaryÚemit_multi_arch_kernelÚmodel_name_for_generated_filesÚcustom_ops_to_c_shimsÚcustom_op_libsÚAOT_INDUCTOR_ENABLE_LTOÚlink_libtorchÚcross_target_platformÚaoti_shim_libraryÚaoti_shim_library_path)8rç   rè   ré   rê   Úoutput_pathr   r   r   Údebug_compileÚdebug_symbolsÚenable_frame_pointerÚcompile_wrapper_opt_levelrN  r   r9  Úfiltered_kernel_namesÚserialized_in_specÚserialized_out_specrP  r8  rQ  Úuse_consts_asm_buildrR  rS  rT  rU  rB  rÍ  rW  rX  rZ  r¤   r\  r]  r   r^  r_  ra  rb  rc  r   rd  re  rf  rg  rh  r1   Ú_opsÚ
OpOverloadÚlistri  Ú
enable_ltork  rl  rm  rn  r   r   r   rE  rE  Ñ  só  … ñð €Kà—J‘J—N‘NÐ#?ÀÓEÈÑL€MØ—J‘J—N‘NÐ#?ÀÓEÈÑL€Mð 	�
‰
�‰Ð:¸CÓ@ÀCÑGð ð !#§
¡
§¡Ø0°$ó!Ðð EGÇJÁJÇNÁNØ7¸óEÐ$ gÐ.@Ñ&Aó ð
 ŸJ™JŸN™NØ0°$óÐð Ðð Ðð */Ð  $Ó.ð  %Ð˜Ó$ð  Ðà€GˆTÓØ$(Ð�d˜T‘kÓ(ð !€O�TÓ ð  "€Hˆd�3˜�8‰nÓ!ð 	�
‰
�‰ÐHÈ#ÓNÐRUÑUð (¨ó ð "Ð�dÓ!ð  "Ÿz™zŸ~™~Ð.BÀCÓHÈCÑOÐ˜ÓOñ ˜2Ÿ:™:Ÿ>™>Ð*CÀQÓGÓH€K�ÓHð !€GˆT�#�s�(‰^Ó ð $)Ð˜DÓ(ð ,1Ð" DÓ0ð 	�
‰
�‰ÐBÀCÓHÈCÑOð ! $ó ð %)Ð˜TÓ(ð 48Ð$ c¨D¡jÓ7ñ $-£;˜Ð˜Ó.ð (,Ð˜ ™Ó+ð +/Ð˜D 4™KÓ.ð 26Ð" C¨$¡JÓ5ð EGÐ˜4 §
¡
× 5Ñ 5°t¸C±yÐ @ÑAÓFà'+€N�D˜‘I Ñ$Ó+ð —‘—‘Ð 9¸3Ó?À3ÑF€Jð €M�4Óð )-Ð˜3 ™:Ó,ð 15Ð�s˜T #™Y‘¨Ñ-Ó4Ø)-Ð˜C $™JÔ-r   rE  c                   ó   — e Zd ZU dZeed<   y)Úaot_inductor_modeFÚcompile_standaloneN)rç   rè   ré   r~  r8  r9  r   r   r   r}  r}  ‹  s   … ð  %Ð˜Ô$r   r}  c                   ó  — e Zd ZU dZdZed   ed<   dZdZe	j                  j                  e	j                  j                  de	j                  j                  e	j                  j                  ej"                  «      d«      «      «      ZdZedz  ed	<   g d
¢Zee   ed<    eeeeef    ed„ e	j                  j                  dd«      j3                  d«      D «       «      «      Zeeeef   ed<    eeeeef    ed„ e	j                  j                  ddj                  d„ eD «       «      «      j3                  d«      D «       «      «      Zeeeef   ed<   e	j                  j                  dd«      dk(  ZdZdZeed<   e	j                  j                  dd«      dk(  Ze ed<   e	j                  j                  d«      Z!e"dz  ed<   e	j                  j                  d«      Z#e"dz  ed<   e	j                  j                  d d«      Z$e"ed!<   e	j                  j                  d"d«      dk(  Z%e ed#<   e	j                  j                  d$d«      dk(  Z&e ed%<   e	j                  j                  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-<   y).Úcutlassz-
    Config specific to cutlass backend.
    ú-O1)ú-O0r�  ú-O2ú-O3z-OSÚcompile_opt_levelFÚTORCHINDUCTOR_CUTLASS_DIRz../third_party/cutlass/NÚcutlass_max_profiling_configs)ry   r.   rþ   r   Ú%cutlass_max_profiling_swizzle_optionsc              #   ó2   K  — | ]  }t        |«      –— Œ y ­wrð   ©r¤   ©Ú.0Úxs     r   ú	<genexpr>zcutlass.<genexpr>·  s   è ø€ ò 
àô ��Fñ
ùó   ‚Ú+TORCHINDUCTOR_CUTLASS_DYNAMIC_CLUSTER_SHAPEz2,1,1rÚ   Úcutlass_dynamic_cluster_shapec              #   ó2   K  — | ]  }t        |«      –— Œ y ­wrð   rŠ  r‹  s     r   rŽ  zcutlass.<genexpr>À  s   è ø€ ò 
àô ��Fñ
ùr�  Ú.TORCHINDUCTOR_CUTLASS_DYNAMIC_CLUSTER_FALLBACKc              #   ó2   K  — | ]  }t        |«      –— Œ y ­wrð   )rÍ  )rŒ  Úvs     r   rŽ  zcutlass.<genexpr>Ä  s   è ø€ ÒG Aœ˜QŸÑGùr�  Ú cutlass_dynamic_cluster_fallbackÚCUTLASS_EPILOGUE_FUSIONr   r   ry   Úcutlass_backend_min_gemm_sizeÚ/INDUCTOR_CUDA_BACKEND_GENERATE_TEST_RUNNER_CODEÚgenerate_test_runnerÚTORCHINDUCTOR_CUTLASS_ALLOWLISTÚcutlass_op_allowlist_regexÚTORCHINDUCTOR_CUTLASS_DENYLISTÚcutlass_op_denylist_regexÚ)TORCHINDUCTOR_CUTLASS_INSTANTIATION_LEVELÚcutlass_instantiation_levelÚ+TORCHINDUCTOR_CUTLASS_HASH_WITH_COMPILE_CMDÚcutlass_hash_with_compile_cmdÚ"TORCHINDUCTOR_CUTLASS_PRESCREENINGÚcutlass_prescreeningÚ!TORCHINDUCTOR_CUTLASS_ENABLED_OPSr†   Úcutlass_enabled_opsTÚuse_binary_remote_cacheÚupload_to_binary_remote_cacheÚbinary_remote_cache_force_writeÚenable_caching_codegen),rç   rè   ré   rê   r…  r   r9  Úenable_debug_infoÚuse_fast_mathr   ÚpathÚrealpathr   r   ÚjoinÚdirnamer1   Ú__file__Úcutlass_dirr‡  r¤   rˆ  rz  r   rÌ  rÜ   r‘  r–  Úcutlass_epilogue_fusion_enabledÚcutlass_tma_onlyr˜  rš  r8  rœ  rÍ  rž  r   r¢  r¤  r¦  r§  r¨  r©  rª  r   r   r   r€  r€  ”  sÍ  … ñð EJÐ�wÐ@ÑAÓIð Ðð €Mð —'‘'×"Ñ"Ø
�
‰
�‰Ø'Ø�G‰G�L‰LØ—‘—‘ §¡Ó/Ø)óó	
ó€Kð 15Ð! 3¨¡:Ó4ò 8DÐ)¨4°©9ÓCá:>Øˆc�3˜ˆmÑÙñ 
à—Z‘Z—^‘^Ø=¸wóç‰e�C‹jô	
ó 	
ó;Ð! 5¨¨c°3¨Ñ#7ó ñ >BØˆc�3˜ˆmÑÙñ 
à—Z‘Z—^‘^Ø@Ø—‘ÑGÐ)FÔGÓGó÷ ‰e�C‹jô
ó 	
ó	>Ð$ e¨C°°c¨MÑ&:ó 	ð 	�
‰
�‰Ð0°#Ó6¸#Ñ=ð $ð
 Ðð *+Ð! 3Ó*ð
 	�
‰
�‰ÐHÈ#ÓNÐRUÑUð ˜$ó ð .0¯Z©Z¯^©^Ø)ó.Ð  d¡
ó ð -/¯J©J¯N©NØ(ó-Ð˜s T™zó ð (*§z¡z§~¡~Ø3°Só(Ð ó ð 	�
‰
�‰ÐDÀcÓJÈcÑQð " 4ó ð 	�
‰
�‰Ð;¸SÓAÀSÑHð ˜$ó ð  "Ÿz™zŸ~™~Ø+¨Uó Ð˜ó ð
 %)Ð˜TÓ(ð +0Ð! 4Ó/ð -2Ð# TÓ1ð $(Ð˜DÔ'r   r€  c                   óf   — e Zd ZU dZedz  ed<   dZedz  ed<   dZedz  ed<   dZdZ	dZ
edz  ed<   y)ÚcudaNÚarchr5   Úcuda_cxxFé   rº   )rç   rè   ré   r·  rÍ  r9  r5   r¸  Úenable_cuda_ltoÚenable_ptxas_inforº   r¤   r   r   r   r¶  r¶  	  sR   … ð
 €Dˆ#�‰*Óð
 €GˆS�4‰ZÓð  €Hˆc�D‰jÓð €Oð Ðð 01Ð  #¨¡*Ô0r   r¶  c                   ó´   — e Zd ZU dZedz  ed<   dZedz  ed<   dZedz  ed<   ej                  j                  ej                  j                  dd«      «      Zy)ÚxpuNr·  r5   Úoneapi_rootr†  rÙ   )rç   rè   ré   r·  rÍ  r9  r5   r¾  r   r­  r®  r   r   r²  r   r   r   r½  r½  5	  sV   … ð €Dˆ#�‰*Óð €GˆS�4‰ZÓð #€K��t‘Ó"à—'‘'×"Ñ" 2§:¡:§>¡>Ð2MÈrÓ#RÓS�Kr   r½  c                   óz  — e Zd ZU g Zee   ed<   g d¢Zeed      ed<   dZ	ed   ed<   dZ
dZdZdZdZd	Zed	z  ed
<   ej"                  j%                  d«      Zej"                  j%                  dd«      dk(  Zeed<   d	Zed	z  ed<   d	Zed	z  ed<   d	Zed	z  ed<   dZeed<   d	Zee   d	z  ed<   dZeed<   dZeed<   y	)Úrocmr·  )Úgfx90aÚgfx942Úgfx950Úck_supported_archrƒ  )	r‚  r�  rƒ  r„  z-Osz-Ozz-Ominz-Ofastz-Omaxr…  FTNÚ	rocm_homeÚTORCHINDUCTOR_CK_DIRÚ-INDUCTOR_CK_BACKEND_GENERATE_TEST_RUNNER_CODEr   r   rš  Ún_max_profiling_configsÚck_max_profiling_configsÚck_tile_max_profiling_configsÚuse_preselected_instancesÚkBatch_sweeprû  Úsplit_k_thresholdÚcontiguous_threshold)rç   rè   ré   r·  rz  rÍ  r9  rÄ  r   r…  Úis_debugÚ
save_tempsr¬  Úflush_denormalsÚprint_kernel_resource_usagerÅ  r   r   r   Úck_dirrš  r8  rÈ  r¤   rÉ  rÊ  rË  rÌ  rÍ  rÎ  r   r   r   rÀ  rÀ  D	  s%  … ð €Dˆ$ˆs‰)ÓòFÐ�t˜GÐ$@ÑAÑBó ð 	ð �wØLñó ð
 €Hð €Jð €Mð €Oð #(Ðð !€Iˆs�T‰zÓ ð �Z‰Z�^‰^Ð2Ó3€Fð 	�
‰
�‰ÐFÈÓLÐPSÑSð ˜$ó ð
 +/Ð˜S 4™ZÓ.ð ,0Ð˜c D™jÓ/ð 15Ð! 3¨¡:Ó4ð ',Ð˜tÓ+ð &*€L�$�s‘)˜dÑ"Ó)ð  Ð�sÓð !#Ð˜#Ô"r   rÀ  )r¨  r€   ÚhalideÚpallasÚcpu_backend)r€   rÔ  rÕ  Úcuda_backendrÕ  Útpu_backendÚxpu_backendc                   ó   — e Zd ZdZy)ÚmtiaFN)rç   rè   ré   Údisable_welford_reductionr   r   r   rÛ  rÛ  ›	  s   „ à %Ñr   rÛ  c                   óJ   — e Zd ZU dZdZdZed   ed<   dZed   ed<   dZ	dZ
dZy	)
rÔ  Úhostz	host-cudaÚAnderson2021)rß  ÚLi2018Ú	Adams2019ÚMullapudi2016Úscheduler_cudará  Úscheduler_cpuFN)rç   rè   ré   Ú
cpu_targetÚ
gpu_targetrã  r   r9  rä  ÚassertsÚdebugÚscan_kernelsr   r   r   rÔ  rÔ   	  sQ   … à€Jð €Jð
 	ð �GÐRÑSó ð 	ð �7ÐQÑRó ð
 €Gð €Eð �Lr   rÔ  c            	       óŠ  — e Zd ZU ej                  j                  dd«      dk(  Zej                  j                  dd«      dk(  ZdZe	dz  e
d<   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ej                  j                  dd«      ZdZdZee	gdf   dz  e
d<   ej                  j                  dd«      dk(  Z eej                  j                  dej                  j                  dd«      «      «      Zee
d<   y)Ú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_AUTOTUNE_RESULTSÚINDUCTOR_PROVENANCEÚprovenance_tracking_level)rç   rè   ré   r   r   r   ÚenabledÚsave_real_tensorsrî  rÍ  r9  Ú	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_profileró  r   Úlog_autotuning_resultsr¤   rö  r   r   r   rë  rë  ¼	  s\  … à�j‰j�n‰nÐ2°CÓ8¸CÑ?€Gð Ÿ
™
Ÿ™Ð'FÈÓLÐPSÑSÐð !€Iˆs�T‰zÓ ð €Ið €Hð €Hð  Ðð €Mð €Nð €Kð —J‘J—N‘NÐ#=¸sÓCÀsÑJ€Mð Ÿ™Ÿ™Ð(>ÀÓDÈÑKÐð —j‘j—n‘nÐ%CÀTÓJ€Oð !Ÿj™jŸn™nÐ-OÐQUÓVÐð €Oð 04€J�˜#˜ ˜Ñ%¨Ñ,Ó3àŸZ™ZŸ^™^Ð,BÀCÓHÈCÑOÐñ &)Ø
�
‰
�‰Ø! 2§:¡:§>¡>Ð2GÈÓ#Mó	
ó&Ð˜sô r   rë  )ztrace.upload_tarrq   rr   rs   zaot_inductor.repro_levelzaot_inductor.dump_aoti_minifierrn   ro   r-  rt   r®   Ú_save_config_ignore)rë  zcuda.cutlass_dirzcutlass.cutlass_dirzxpu.cutlass_dirr%  ri  ro   rn   rq   rr   rs   r-  rt   r®   rŒ  rÈ   rF   rH   rL   rM   Ú_cache_config_ignore_prefixÚ_cache_config_factory_keysÚexternal_matmulÚ8TORCHINDUCTOR_WRITE_ARE_DETERMINISTIC_ALGORITHMS_ENABLEDc                   óJ   — e Zd ZU dZeeeeeef      f   dz  ed<   dZ	e
ed<   y)Úlookup_tableNÚtableTÚcheck_src_hash)rç   rè   ré   r  rB  rÍ  rz  r   r9  r  r8  r   r   r   r  r  H
  s4   … à48€Eˆ4��T˜$˜s C˜x™.Ñ)Ð)Ñ*¨TÑ1Ó8ð  €N�DÔr   r  c                   ór  — e Zd ZU dZeed<   dZedz  ed<   dZeed<   dZe	dz  ed<   dZ
dZdZej                  j                  d«      Zedz  ed<   ej                  j                  d	«      Zedz  ed
<   dZdZed   dz  ed<   dZdZeed<    ej0                  d«      dk(  Z ej0                  dd«      ZdZdZy)Útest_configsFÚ%force_extern_kernel_in_multi_templateNÚforce_custom_op_decompositionÚforce_no_impl_groupingÚmax_mm_configsÚ(TORCHINDUCTOR_AUTOTUNE_CHOICE_NAME_REGEXÚautotune_choice_name_regexÚ(TORCHINDUCTOR_AUTOTUNE_CHOICE_DESC_REGEXÚautotune_choice_desc_regex)Úassertrh  Útrack_memory_lifecycleTÚ assume_bucketing_reduces_latencyÚ,TORCHINDUCTOR_FORCE_FILTER_REDUCTION_CONFIGSr   Ú)TORCHINDUCTOR_DISTORT_BENCHMARKING_RESULTrÙ   )rç   rè   ré   r  r8  r9  r  r  r  r¤   Úruntime_triton_dtype_assertÚruntime_triton_shape_assertÚstatic_cpp_dtype_assertr   r   r   r  rÍ  r  Ú*graphsafe_rng_func_ignores_fallback_randomr  r   Úuse_libtorchr  r&  Úforce_filter_reduction_configsÚdistort_benchmarking_resultÚbisect_pre_grad_graphÚ'bisect_keep_custom_backend_for_inductorr   r   r   r  r  S
  s  … Ø27Ð)¨4Ó7ð 26Ð! 4¨$¡;Ó5ð $)Ð˜DÓ(à!%€N�C˜$‘JÓ%à"'ÐØ"'ÐØ#Ðð .0¯Z©Z¯^©^Ø2ó.Ð  d¡
ó ð .0¯Z©Z¯^©^Ø2ó.Ð  d¡
ó ð 27Ð.à>BÐ˜G OÑ4°tÑ;ÓBð €Lð .2Ð$ dÓ1ð 	ˆ�	‰	Ð@ÓAÀSÑHð #ð #, "§)¡)Ø3°Ró#Ðð "ÐØ.3Ñ+r   r  )Ú*c                   ór   — e Zd ZU ej                  j                  dd«      dk(  Zeed<   dZ	eed<   dZ
eed<   y)	Úeager_numericsÚ'TORCHINDUCTOR_EMULATE_DIVISION_ROUNDINGr   r   Údivision_roundingFÚdisable_ftzÚuse_pytorch_libdeviceN)rç   rè   ré   r   r   r   r+  r8  r9  r,  r-  r   r   r   r)  r)  ’
  sA   … ð
 	�
‰
�‰Ð@À#ÓFÈ#ÑMð �tó ð €K�Óð
 #(Ð˜4Ô'r   r)  Ú%TORCHINDUCTOR_EMULATE_PRECISION_CASTSÚemulate_precision_casts(g  r   rc  Úcollections.abcr   Útypingr   r   r   r   r1   Ú!torch._inductor.custom_graph_passÚtorch._environmentr   Útorch.utils._config_moduler	   r
   r   r   Útorch._inductor.choicesr   Útorch._inductor.cudagraph_utilsr   r   r   Úinplace_paddingÚcan_inplace_pad_graph_inputr8  r   r    r#   r&   r)   r,   r6   r;   Úenable_auto_functionalized_v2rè  Údisable_progressÚverbose_progressÚworker_log_pathr¤   r?   r9  rF   rG   rH   rI   rK   rL   rM   rN   rP   rQ   rR   rB  rÍ  rS   rV   rX   rZ   r\   r^   Úonline_softmaxÚapply_gumbel_max_trickÚdceÚstatic_weight_shapesÚsize_assertsÚnan_assertsÚruntime_triton_nan_assertsÚscalar_assertsÚalignment_assertsÚpick_loop_ordersÚinplace_buffersÚallow_buffer_reuseÚmemory_planningr¬  rm   Úbenchmark_harnessÚepilogue_fusionÚprologue_fusionÚepilogue_fusion_firstÚ*epilogue_fusion_user_defined_triton_kernelÚpattern_matcherÚb2b_gemm_passrn   Ú	_inductorÚcustom_graph_passÚCustomGraphPassTypero   rp   ÚCustomPartitionerFnTyperq   rr   rs   rt   rz  ru   Úsplit_cat_fx_passesÚ efficient_conv_bn_eval_fx_passesÚis_predispatchÚgroup_fusionÚbatch_fusionrv   rw   Úreorder_for_localityÚdynamic_scale_rblockÚforce_fuse_int_mm_with_mulÚ keep_addmm_fused_for_half_dtypesÚuse_mixed_mmr~   r‚   Ú reorder_for_compute_comm_overlaprƒ   r„   Úreorder_for_peak_memoryÚreorder_for_peak_memory_debugr…   rˆ   r‰   rŒ   rŽ   r�   r�   r‘   r’   Úestimate_op_runtimer“   Úintra_node_bwÚinter_node_bwÚ
cpu_gpu_bwr–   Údistributed_max_autotune_gemmÚpipeline_max_autotune_gemmÚmax_autotuneÚmax_autotune_pointwiseÚmax_autotune_gemmr&  Ú inductor_default_autotune_warmupÚinductor_default_autotune_repr§   r¨   Ú!max_autotune_report_choices_statsÚ.max_autotune_prune_choices_based_on_shared_memÚtriton_disable_device_detectionr­   r®   r¯   r°   r±   r³   r´   ÚupperÚmax_autotune_gemm_backendsr¹   rº   Úmax_autotune_conv_backendsr¿   rÁ   rÂ   rÃ   rÄ   rÅ   rÈ   rÉ   rÊ   rÌ   Ú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Úcollective_benchmark_nrunsrV  Úcollective_benchmark_timeoutÚcoordinate_descent_tuningÚ'coordinate_descent_check_all_directionsÚ coordinate_descent_search_radiusrÞ   rã   rå   rì   Úrun_jit_post_compile_hookrô   rñ   rò   Úautoheuristic_log_pathr5   r1  Úlayout_opt_defaultÚlayout_optimizationÚforce_layout_optimizationÚcache_sdpa_constraintÚkeep_output_strideÚwarn_mix_layoutÚrealize_reads_thresholdÚrealize_opcount_thresholdÚrealize_acc_reads_thresholdr  r  Úfallback_randomÚalign_random_eagerÚ"fallback_embedding_bag_byte_unpackÚimplicit_fallbacksÚ assume_unaligned_fallback_outputr  Úaggressive_fusionr  r
  Úenabled_metric_tablesr  r  Úscore_fusion_memory_thresholdÚbenchmark_epilogue_fusionÚ max_epilogue_benchmarked_choicesÚmax_fusion_sizeÚmin_overlap_ratioÚ)max_fusion_buffer_group_pairwise_attemptsr  Úmax_pointwise_cat_inputsÚforce_pointwise_catÚunroll_reductions_thresholdÚcomment_originÚconv_1x1_as_mmÚsplit_reductionsÚdeterministicÚmin_num_splitÚbenchmark_kernelÚconstant_and_index_propagationÚalways_keep_tensor_constantsÚassert_indirect_indexingÚdo_not_emit_runtime_assertionsÚcompute_all_boundsÚcombo_kernelsÚbenchmark_combo_kernelÚcombo_kernels_autotuneÚcombo_kernel_allow_mixed_sizesÚ#combo_kernel_foreach_dynamic_shapesÚcombo_kernel_max_num_argsÚ!combo_kernel_per_subkernel_blocksÚcombo_kernels_pointwise_onlyÚjoint_graph_constant_foldingÚdebug_index_assertsÚ__version__Úis_nightly_or_sourceÚdeveloper_warningsÚ"optimize_scatter_upon_const_tensorr  r  r  r$  r%  r&  r(  r*  Ú_fuse_ddp_communicationÚ_fuse_ddp_bucket_sizer-  r.  Úpartitioned_scatter_enabledr0  r2  r3  r5  r;  r[  rj  ri  rl  rn  ro  rp  rr  rt  ru  Úlibfb.pyrw  Ú__package__Úget_dir_pathr­  r¯  ÚreplaceÚseprv  Ú
ValueErrorÚImportErrorÚkernel_name_max_opsÚshape_paddingÚcomprehensive_paddingÚpad_channels_lastÚpad_dynamic_shapesÚdisable_padding_cpuÚ$expand_dimension_for_pointwise_nodesÚ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_testingr~  Ú_profile_varÚprofile_bandwidthÚprofile_bandwidth_regexr�  Ú/profile_bandwidth_with_do_bench_using_profilingÚdisable_cpp_codegenr„  r…  r†  r‡  rˆ  r‰  rŠ  r‹  rŒ  Úenable_linear_binary_foldingr�  r�  r‘  r”  r•  rœ  rž  r   r¨  r€   rE  r}  r€  r¶  r½  rÀ  rÖ  r×  rØ  rÙ  rÛ  rÔ  rë  r  r  r  r	  ÚTensorÚ*write_are_deterministic_algorithms_enabledr  r  Útorch.utils._config_typingr)  r/  Úmodulesrç   r   r   r   ú<module>rÙ     s�  ðÜ 	Û 
Ý $ß 4Ó 4ã Û (Ý (÷ó ñ Ý7Ý?à—*‘*—.‘.Ð!@À#ÓFÈ#ÑM€Ø#Ð ðC t¨d¡{ó Cð˜D 4™Kó ðC t¨d¡{ó CðK¨t°d©{ó Kð°4¸$±;ó ðF¨$°©+ó Fð dó ð
 ó 
ð ‡J�J‡N�NÐ7¸Ó=ÀÑDð ð
 	€ð Ð ð Ð ñ 8A´{Ñ3Èð ñ
 '*Ø‡J�J‡N�NÐAÀ6ÓJó'Ð  ó ñ
 Ø?Ø;Ø1Øô	€�ó ð $)Ð ˜DÓ (ñ &CÓ%DÐ �t˜d‘{Ó Dñ .Ó/ð " 4¨$¡;ó ñ )/ØMØBØô)Ð  ó ð "Ð �dÓ !ñ &CÓ%DÐ �t˜d‘{Ó Dñ .SÓ-TÐ ˜t d™{Ó Tñ $Ð*VÔWÐ �dÓ Wð 05Ð &¨Ó 4ð 57Ð ! 4¨¨S¨¡>Ó 6ð &*Ð ˜˜d™
Ó )ð ð (¨Ø1ñ*ó ð —J‘J—N‘NÐ#>ÀÓDÈÑK€ˆTÓ Kð ‡J�J‡N�NÐ=¸sÓCÀsÑJð ˜Dó ð —:‘:—>‘>Ð"<¸cÓBÀcÑI€
ˆDÓ Ið ‡J�J‡N�NØ4¹Y¼[±cÈcóð ñð ˜dó ð —‘—‘Ð >ÀÓDÈÑK€ð ‡J�J‡N�NÐ9¸3Ó?À3ÑFð ð
 €ð Ð ð �z‰z�~‰~Ð:¸CÓ@ÀCÑG€Ø�j‰j�n‰nÐ8Ó9¸SÑ@€à‡J�J‡N�NÐ=Ó>À#ÑEð ð —‘—‘Ð >ÀÓDÈÑK€ð ‡J�J‡N�NÐ4¹Y¼[±cÈcÓRØ
ñð ð Ð ð €ð Ð ð —*‘*—.‘.Ð!@À#ÓFÈ#ÑM€ð —
‘
—‘Ð<Ó=ÀÑD€ð HJÇzÁzÇ~Á~Ø óH€ˆWÐCÑDó ð
 Ð ð €ñ *Ó+€ð Ð ð .3Ð *ð €ð €ð TXÐ ˜5Ÿ?™?×<Ñ<×PÑPÓ WØTXÐ ˜EŸO™O×=Ñ=×QÑQÓ Xð TXÐ �u—‘×8Ñ8×PÑPÓ Wð PTÐ �u—‘×8Ñ8×LÑLÓ SØPTÐ ˜Ÿ™×9Ñ9×MÑMÓ Tð
 OSÐ �e—o‘o×7Ñ7×KÑKÓ Rð 	ð ØØ	Ð;Ñ	<Ð=ØÐ:Ñ;ð	=ñð ñ	ó	ð" 	ð ØØ	Ð;Ñ	<Ð=ØÐ:Ñ;ð	=ñð ñ	ó	ð Ð ð $)Ð  ð €ð €ð €ð( 68Ð ˜˜c 4¨¨S¨¡>Ð1Ñ2Ó 7ð 79Ð ˜$˜s D¨¨c¨¡NÐ2Ñ3Ó 8ð Ð ð —z‘z—~‘~Ð&JÈCÓPÐTWÑWÐ ð #Ð ð
 $(Ð  ð €ð ØØØñ	+Ð ˜˜c 3˜h™ó ð FQ€�ÐAÑBÓ Pð $)Ð  ð* ð (¨ØØØ	Ð;Ñ	<Ð=ØÐ:Ñ;ð	=ñññ*ó ð &*Ð ˜˜d™
Ó )ð Ð Ø %Ð ð /0Ð &¨Ó /ð >DÐ �wÐ9Ñ:Ó CàNRÐ .°¸#¸À¸Ñ0DÀtÑ0KÓ Rð ð  Ø4ñ!ó ð 5;Ð ˜7 =Ñ1Ó :àRVÐ 2°H¸c¸UÀC¸ZÑ4HÈ4Ñ4OÓ Vð ð # GØ4ñ%ó ð
 17Ð �w˜}Ñ-Ó 6àNRÐ .°¸#¸À¸Ñ0DÀtÑ0KÓ Rð  Ð à*/Ð ! 4Ó /ð €ð €ð €
ñ &,ØØ?Ø<ô&Ð ˜dó ð ‡J�J‡N�NÐ@ÓAÀSÑHð ð ‡J�J‡N�NÐ;Ó<ÀÑCð ð
 �z‰z�~‰~Ð:Ó;¸sÑB€ð Ÿ™Ÿ™Ð(NÓOÐSVÑVÐ ð —J‘J—N‘NÐ#DÓEÈÑLÐ á#&Ø€B‡I‚IÐ5°rÓ:ó$Ð  ñ !$Ø€B‡I‚IÐ2°CÓ8ó!Ð ð°°t±ó ñ .UÓ-VÐ   d¡
Ó Vð ‡J�J‡N�NÐDÀcÓJÈcÑQð "ð ‡J�J‡N�NÐQÐSVÓWØ
ñð /ð ‡J�J‡N�NÐBÀCÓHÈCÑOð  ð ‡J�J‡N�NÐ2¹y¼{±CÐPSÓTØ
ñð �ó ð .2Ð Ð*Ó 1ð
 *,Ð ˜T #™YÓ +ð ,.Ð ˜t C™yÓ -ð -2Ð # TÓ 1ñ $Ø4Ø7ØôÐ �dó ð !#Ð �D˜‘IÓ "ð  ŸZ™ZŸ^™^Ø.Ð0Aóç‚%ƒ'ð ð¨s°T©zó ñ ,QÓ+RÐ ˜c D™jÓ Rð  ŸZ™ZŸ^™^Ø.°óç‚%ƒ'ð ð DFÇ:Á:Ç>Á>Ø2°IóDç‚%ƒ'ð  Ð(?Ñ @ó 
ð DFÇ:Á:Ç>Á>Ø2°IóDç‚%ƒ'ð  Ð(?Ñ @ó 
ð "Ð �TÓ !ð "Ð �TÓ !ð €ˆÓ ð !Ð �TÓ  ð =FÐ �gÐ8Ñ9Ó Eð  $Ð ˜Ó #Ø!Ð �dÓ !ð ‡J�J‡N�NÐ.°Ó4¸Ñ;ð ˜4ó ð
 "Ð ð  Ð ð Ð à�J‰J�N‰NÐ4Ó5¸Ñ<€	ð —j‘j—n‘nÐ%HÓIÈSÑPÐ ð
 /3Ð +à03Ð -à14Ð .ð Ÿ
™
Ÿ™Ð'LÓMÐQTÑTÐ ñ !Ø‡J�J‡N�NÐ=¸tÓDóÐ ñ
  %Ø‡J�J‡N�NÐ?ÀÓFó Ð ð
 ‡J�J‡N�NÐ<Ó=ÀÑDð ð ‡J�J‡N�NÐJÓKÈsÑRð (ñ $'Ø‡J�J‡N�NÐ<¸cÓBó$Ð  òò
÷
@ñ @÷@ñ @ð ‡J�J‡N�NÐ<¸cÓBÀcÑIð ð
B˜Cð B Dó Bð: ð :¨ó :ð6˜Cð 6 Dó 6ð Ÿ™Ÿ™Ø*¨IóÐ ð
 !&§¢× 1Ó 1‘S°sÐ à‡J�J‡N�NÐ6Ð8JÓKÈsÑRð ð ŸJ™JŸN™NÐ+KÈSÓQÐUXÑXÐ ð ‡J�J‡N�NÐ8¸#Ó>À#ÑEð ð —Z‘Z—^‘^Ð$FÈÓLÐPSÑSÐ ð —*‘*—.‘.Ð!@ÓAÀSÑH€ð
 Ð ØÐ ð  Ð àð ! #¨¡*ó ñ %+Ø>Øô%Ð ˜Tó ð €ð Ð ð &+Ð "ð Ð à‡J�J‡N�NÐCÓDÈÑKð !ð BFÐ ˜ Ð%6Ð!6Ñ7¸$Ñ>Ó Eð Ð ð —Z‘Z—^‘^Ð$@ÓAÀSÑH€ˆdÓ HØŸ™Ÿ™Ð(HÓIÈSÑPÐ �$Ó PØŸ
™
Ÿ™Ð'LÈbÓQÐ à‡J�J‡N�NØ2¹9¼;±CÈCóð ñð ˜Dó ð  (,Ð  Ó +ð !#Ð ð ‡J�J‡N�NÐ<¸cÓBÀcÑIð ð
 $%Ð  ð €ð Ð ð -/Ð )ð ,0Ð ˜c D™jÓ /ð Ð ð Ð ð  Ð ð €ð €ð �2—9’9Ð=¸sÓCÀsÑJÐ ð �—	’	Ð7Ó8¸CÑ?€ñ �B—J‘J—N‘NÐ#@À!ÓDÓE€à—:‘:—>‘>Ð"BÀCÓHÈCÑOÐ ð "&Ð ð  %Ð ð  Ð ð "'Ð ð Ð ð €àÐ ð Ð ð "#Ð à&*Ð #àÐ ð %*Ð !à$Ð ð  $Ð ð Ð ð  × 1Ò 1Ð1ÒO°U¸e×>OÒ>OÐ5OÐ Ù“[Ò8Ð$8Ð ð ‡J�J‡N�NÐEÀsÓKÈsÑRð #ð
 #'Ð �S˜4‘ZÓ &Ø%)Ð ˜˜d™
Ó )ñ Ø2Øô€�ó ð
 Có 
ñ 6Ó7Ð �SÓ 7ð &.Ð ˜sÓ -ñ !'Ø7Ø:Øô!Ñ ˜ó ñ Ø Øô�ˆTó ð  Ñ ØÑ ð  ØðCÑ   X¨iÑ%8¸3Ñ%>Ñ ?ó ð
 !Ñ �DÓ  ð ‡J�J‡N�NÐ>ÀÓDÈÑKñ ð
 +,Ñ " CÓ +ð +.Ñ " CÓ -ð ,0Ñ ! 5Ó /÷:ò :÷
X4ò X4ðv6¨Tô 6ð ô ñB '0¤k™dÒ7MÓ7O���t‘Ó Oñ $*Ø:Ø=Øô$Ñ ˜Dô ñ #)Ùõ#Ñ ˜Cô ñ ">Ó!?Ñ ˜$Ô ?ñ $*Ù
;ô$Ñ ˜Dô ñ 39ÙIÙLØô3Ñ )¨4ô ð ‡J�J‡N�NÑ>ÀÓDÈÑKñ ˜Tô ñ
 '-Ù
>ô'Ñ ˜tô ð
 ˜‘*Ô Ù„;ð
 ß$Ñ$âØ3™w×3Ò3Ø—’—’™[×0Ò0±°b·f²fÓ=¹zÓJó Òð  4™w×3Ò3±JÓ?Ñøð
 Ñð Ñ ð —
‘
—‘Ñ<¸cÓBÀcÑI�ð ‡J�J‡N�NÑ8¸#Ó>À#ÑEñ ð Ñ ð Ñ ð Ñ ð (-Ñ $ð Ñ ñ(  Ñ ð �ð Ñ ð ��Ô ð —‘—‘Ñ >ÀÓDÈÑK�ð #Ñ ð
 $Ñ ð Ñ ð !Ñ ñ +4«+ oÑ ˜tÔ 5à�z‰z�~‰~Ñ5°rÓ:�Ù  BÑ&Ñ Ù ,°Ò 3™"¹Ñ ð (*§z¡z§~¡~Ù" Dó(Ñ ˜# ™*ô ð
 ‡J�J‡N�NÑHÓIÈSÑPñ 0ð Ñ ð —‘—‘Ñ 8¸#Ó>À#ÑE�ˆ$Ô Eð %*Ñ ˜TÔ )ð  %Ñ ˜Ô $ð (-Ñ  Ô ,ð
 $Ñ �tÔ #ð $Ñ �tÔ #ð 8=Ñ .°Ô <ð ,1Ñ " DÔ 0ð 49Ñ *¨DÔ 8ð ‡J�J‡N�NÑ?ÀÓEÈÑLñ ð Ÿ*™*Ÿ.™.Ñ)JÈCÓPÐTWÑWÑ �4Ô Wð 37Ñ )¨4Ô 6ð 46Ñ �t˜C  c¨3 h¡Ð/Ñ0Ô 5á˜RŸZ™ZŸ^™^Ñ,MÉuÓUÓVÑ �3Ô Và %Ñ ˜Ô %ð	˜S 4™Zõ 	ñ %+Ù1Øô%Ñ ˜cô ÷ô ÷"C+ô C+÷LUô U÷p
t.ô t.÷t%ô %÷(ô (ñD ‘WÓö1‰7ó 1ó ñ1ñ< ‘WÓöT‰'ó Tó ñT÷F#ô F#ñT =B�ˆWÑ8Ñ9Ô Añ 7?�ˆgÑ2Ñ3Ô >ñ "*�ˆW‘XÑÔ )ñ "*�ˆW‘XÑÔ )÷&ô &÷
ô ÷8Kô Kó\"Ñ �T˜#‘Yô ó"*Ñ ˜T #™Yô ðD ð)Ñ ˜D ™Iô ð
 UW���h §¢¨e¯lªl¸E¿LºLÐIÈ4ÐOÑPÑQÔ Vð €B‡I‚IÑHÈ#ÓNÐRUÑUñ +÷
 ô  ÷84ô 84ñv Þ,÷(ô (ð2 ‡J�J‡N�NÑ:¸CÓ@ÀCÑGñ ˜ô ñ
 �c—k’k¡(Ñ+Õ ,øñK, ™Ð$ò  ØÔð ús   ùA4AK" ÁK"AK2ÁK1AK2