+
    –°³jK6  ã            
      óP  € ^ RI Ht ^ RIt^ RIt^ RIt^ RIHtHt ^ RIt^ RI	H
t
 R]P                  P                  '       d   RMRRR	R
R	RR1RR2/t^@tR3t^tR^€R^R^R^/t^t^tR4R R lltR R lt ! R R]4      t ! R R]4      t]
! 4       '       dq   ^ RIt^ RIt^ RIt]! ]P8                  P:                  R4      '       d   ^ RIHt R5R ltMN]! ]P:                  P:                  R4      '       d   ^ RIHt R5R ltMR5R ltM]P@                  ! R. R6O. R7OR7      t ! R R ]4      t! ! R! R"]4      t" ! R# R$]PF                  4      t$R% R& lt% ! R' R(]PL                  R)R*7      t' ! R+ R,]PL                  R)R*7      t( ! R- R.]PF                  4      t) ! R/ R0]PF                  4      t*R# )8é    )ÚannotationsN)ÚautoÚEnum)Úhas_triton_packageÚXi    i   ÚYé   ÚZÚR0_ÚR1_ÚXBLOCKÚYBLOCKÚZBLOCKÚR0_BLOCKc               ó$   € V ^8„  d   QhRRRRRR/# )é   Úkwargsztyping.Mapping[str, int]Úr0_blockú
int | NoneÚreturnÚint© )Úformats   "Ú^/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_inductor/runtime/hints.pyÚ__annotate__r   #   s$   € ÷ ñ Ø$ðØ0:ðàñó    c                óÈ   € V P                  R ^4      V P                  R^4      ,          V P                  R^4      ,          Vf   V P                  R^4      ,          # T,          # )r   r   r   r   )Úget)r   r   s   &&r   Únative_matmul_block_numelr   #   si   € ð 	�
‰
�8˜QÓØ
�*‰*�X˜qÓ
!õ	"à
�*‰*�X˜qÓ
!õ	"ð )1Ò(8ˆ6�:‰:�j !Ó$õ	Hðð ?Gõ	Hðr   c               ó    € V ^8„  d   QhRRRR/# )r   r   r   r   r   )r   s   "r   r   r   .   s   € ÷ /ñ /¨cð /°cñ /r   c                ó"   € \        V \        4      # ©N)ÚmaxÚTRITON_DOT_MIN_BLOCK)r   s   &r   Únative_matmul_persistent_rblockr%   .   s   € ÜˆxÔ-Ó.Ð.r   c                  ó&   € ] tR t^2t^ t^t^t^tRtR# )ÚReductionHintr   N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚINNERÚOUTERÚ
OUTER_TINYÚDEFAULTÚ__static_attributes__r   r   r   r'   r'   2   s   † Ø€EØ€EØ€JØ„Gr   r'   c                  ó   € ] tR t^9t^ t^tRtR# )ÚTileHintr   N)r(   r)   r*   r+   ÚSQUAREr/   r0   r   r   r   r2   r2   9   s   † Ø€FØ„Gr   r2   ÚAttrsDescriptor©r4   c                ó>  € R V RV/p\         P                  ! RVR\         P                  /4      pVP                  R ,          ^8w  d    \	        RVP                  R ,           24      hVP                  R,          ^8w  d    \	        RVP                  R,           24      hV# )útt.divisibilityztt.equal_toÚarg_propertiesÚclsz$Expected tt.divisibility == 16, got zExpected tt.equal_to == 1, got )r4   Ú	from_dictr(   Úproperty_valuesÚAssertionError)Údivisible_by_16Ú
equal_to_1Úpointer_range_32r   Úress   &&&  r   ÚAttrsDescriptorWrapperrA   H   s²   € ð " ?Ø˜zðˆFô "×+Ò+Ø! 6¨5´/×2JÑ2JÐKóˆCð ×"Ñ"Ð#4Õ5¸Ô;Ü$Ø:¸3×;NÑ;NÐO`Õ;aÐ:bÐcóð ð ×"Ñ" =Õ1°QÔ6Ü$Ø5°c×6IÑ6IÈ-Õ6XÐ5YÐZóð ð ˆJr   c                ó$   € R V RV/p\        R/ VB # )r=   r>   r   r5   )r=   r>   r?   r   s   &&& r   rA   rA   e   s%   € ð " ?Ø˜jðˆFô #Ñ, VÑ,Ð,r   c                óÊ   € T ;'       g    R Uu/ uF	  q33R ^..bK  	  ppT;'       g    R F.  pV3pWT9   d   WE,          P                  R^ .4       K'  R^ ..WE&   K0  	  V# u upi )r7   ztt.pointer_ranger   )Úappend)r=   r>   r?   ÚxÚresultÚkeys   &&&   r   rA   rA   y   s‰   € ð AP×@UÐ@UÐSUÐ@UÓWÑ@U¸!�dÐ/°Ð4Ð5Ò5Ñ@UˆFÐWØ%×+Ð+¨Ò+�Ø�d�Ø”=Ø•K×&Ñ&Ð(:¸BÐ'?Ö@à$6¸Ð#;Ð"<�F“Kñ ,ð ˆMùò Xs   �A )Údefaultsc                  óx   € ] tR t^”t]! 4       t]! 4       t]! 4       t]! 4       t]! 4       t	]! 4       t
]! 4       tRtR# )ÚHeuristicTyper   N)r(   r)   r*   r+   r   ÚPERSISTENT_REDUCTIONÚ	POINTWISEÚ	REDUCTIONÚ
SPLIT_SCANÚTEMPLATEÚUSER_AUTOTUNEÚFIXEDr0   r   r   r   rJ   rJ   ”   s4   † Ù›6ÐÙ“€IÙ“€IÙ“€JÙ‹v€HÙ“F€MÙ‹F„Er   rJ   c                  ó2   € ] tR t^žt^ t]P                  tRtR# )ÚAutotuneHintr   N)	r(   r)   r*   r+   ÚONE_ELEMENT_PER_THREADr   Ú__str__Ú__repr__r0   r   r   r   rS   rS   ž   s   † ØÐð �|‰|„Hr   rS   c                  óÔ   € ] tR t^¨t$ RtR]R&   R]R&   R]R&   R]R&   RtR	]R
&   RtR	]R&   RtR	]R&   Rt	R	]R&   Rt
R	]R&   ]R R l4       t]]P                  R R l4       4       tRtR# )ÚDevicePropertieszOCopy device properties into a data structure not requiring torch to be importedÚstrÚtyper   ÚindexÚmulti_processor_countÚccNr   ÚmajorÚregs_per_multiprocessorÚmax_threads_per_multi_processorÚmax_threads_per_blockÚ	warp_sizec               ó   € V ^8„  d   QhRR/# ©r   r   r   r   )r   s   "r   r   ÚDeviceProperties.__annotate__¶   s   € ÷ ñ  cñ r   c                	óŒ   € V P                   e   V P                   # V P                  R9   d   \        V P                   R24      h^ # )Nz( device properties must report warp_size)ÚcudaÚhip)rb   rZ   ÚRuntimeError©Úselfs   &r   Úwarp_size_or_defaultÚ%DeviceProperties.warp_size_or_defaultµ   s<   € à�>‰>Ò%Ø—>‘>Ð!Ø�9‰9˜Ô'Ü $§)¡) Ð,TÐUÓVÐVÙr   c               ó   € V ^8„  d   QhRR/# )r   r   rX   r   )r   s   "r   r   re   ¿   s   € ÷  
ñ  
Ð/ñ  
r   c                	óæ  € ^ RI p^ RIHp VP                  pVP                  P
                  '       d
   VR8X  d   RpV! V4      pVP                  V4      p VP                  pT ! TTP                  TTP                  T4      \        TRR4      \        TRR4      \        TR	R4      \        TR
R4      \        TRR4      R7	      #   \         d#    TR8X  d   TP                  p L�TR8X  d   ^@p LŒh i ; i)r   N)Úget_interface_for_devicerg   rh   ÚxpuÚmtiar^   r_   r`   ra   r	   rb   )	rZ   r[   r\   r]   r^   r_   r`   ra   rb   )ÚtorchÚtorch._dynamo.device_interfacerp   rZ   Úversionrh   Úget_device_propertiesr\   ÚAttributeErrorÚgpu_subslice_countr[   Úget_compute_capabilityÚgetattr)r9   Údevicers   rp   Údevice_typeÚdevice_interfaceÚpropsr\   s   &&      r   ÚcreateÚDeviceProperties.create½   sÿ   € ó 	ÝKà—k‘kˆà�=‰=××Ð °Ô!6ØˆKá3°FÓ;ÐØ ×6Ñ6°vÓ>ˆð	Ø$)×$?Ñ$?Ð!ñ ØØ—,‘,Ø"7Ø×6Ñ6°vÓ>Ü˜% ¨$Ó/Ü$+¨EÐ3LÈdÓ$SÜ,3ØÐ8¸$ó-ô #*¨%Ð1HÈ$Ó"OÜ˜e [°$Ó7ô
ð 	
øô ô 	Ø˜eÔ#Ø(-×(@Ñ(@Ò%Ø Ô&Ø(*Ò%àð	ús   ÁC ÃC0Ã#	C0Ã.C0r   )r(   r)   r*   r+   Ú__doc__Ú__annotations__r^   r_   r`   ra   rb   Úpropertyrl   ÚclassmethodÚ	functoolsÚcacher   r0   r   r   r   rX   rX   ¨   s�   ‡ ÙYà
ƒIØƒJØÓØƒGØ€Eˆ:ÓØ*.Ð˜ZÓ.Ø26Ð# ZÓ6Ø(,Ð˜:Ó,Ø €IˆzÓ àôó ðð Ø‡_�_ô 
ó ó ô 
r   rX   c               ó   € V ^8„  d   QhRR/# rd   r   )r   s   "r   r   r   â   s   € ÷ @ñ @˜Sñ @r   c                ó@   € \         P                  V 4      P                  # )aU  Return the wave/warp size in threads for the given device.

Reads from torch.cuda.get_device_properties(device).warp_size via the cached
DeviceProperties.create(). Correct on both AMD (64 for CDNA/gfx9, 32 for
RDNA/gfx10+) and NVIDIA (always 32). Missing cuda/hip warp_size metadata is
treated as an error rather than silently falling back.
)rX   r   rl   )r{   s   &r   Úget_warp_sizer‰   â   s   € ô ×"Ñ" 6Ó*×?Ñ?Ð?r   c                  ó¼   € ] tR t^ít$ RtR]R&   R]R&   R]R&   R]R&   R	]R
&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   RtR# )Ú
TritonMetaa*  Metadata bag threaded from Triton codegen into the runtime launcher.

total=False because the key set is populated incrementally across codegen
(signature/device/constants/configs first, then backend/ROCm/tlx extras)
and the whole bag is forwarded verbatim to external Triton APIs, which
tolerate and ignore keys they do not recognize. `device` is typed as the
codegen-time DeviceProperties; CachingAutotuner rewrites it to the integer
device index before reaching Triton, and the runtime read sites that expect
that int narrow it with an explicit cast.
údict[str, typing.Any]Ú	signaturerX   r{   rY   r|   Ú	constantszlist[typing.Any]ÚconfigsÚboolÚnative_matmulÚlaunch_cooperative_gridÚenable_fp_fusionÚ
launch_pdlÚdisable_ftzr   Úmatrix_instr_nonkdimÚwaves_per_euÚkpackztuple[str, ...]Úrestore_valueÚreset_to_zeroÚbackend_optionsr   N©r(   r)   r*   r+   r�   r‚   r0   r   r   r   r‹   r‹   í   sh   ‡ ñ	ð %Ó$ØÓØÓØ$Ó$ØÓØÓØ!Ó!ØÓØÓØÓØÓØÓØƒJØ"Ó"Ø"Ó"Ø*×*r   r‹   F)Útotalc                  óÄ  € ] tR tRt$ RtR]R&   R]R&   R]R&   R]R&   R	]R
&   R	]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R	]R&   R]R&   R]R&   R]R&   R]R &   R]R!&   R]R"&   R]R#&   R]R$&   R]R%&   R]R&&   R]R'&   R]R(&   R]R)&   R*]R+&   R]R,&   R]R-&   R.]R/&   R]R0&   R]R1&   R2]R3&   R*]R4&   R]R5&   R]R6&   R]R7&   R]R8&   R]R9&   R]R:&   R]R;&   R<]R=&   R]R>&   R]R?&   R]R@&   R*]RA&   R]RB&   RC]RD&   RC]RE&   R*]RF&   RG]RH&   R*]RI&   RJ]RK&   R.]RL&   R*]RM&   R*]RN&   R*]RO&   R*]RP&   R*]RQ&   R]RR&   RStRT# )UÚInductorMetai  a  The inductor kernel-config / heuristics metadata bag.

Produced on the codegen side (TritonKernel.inductor_meta_common /
inductor_meta_per_kernel plus the codegen_kernel literal) and consumed by
the runtime autotuning machinery in triton_heuristics.py,
coordinate_descent_tuner.py, and autotune_cache.py. Every key is optional
(total=False): consumers read via .get(...) with defaults, and several keys
are injected only on specific paths (reductions, combo kernels, fixed grids).
Dynamically keyed nested bags (e.g. combo_grid_meta) stay typed dict[str,
Any] because their keys are computed at runtime. The codegen-side producers
still build this bag as a plain dict[str, Any], so the write side is not yet
checked against this TypedDict; typing the producers is left as a follow-up.
ú
str | NoneÚbackend_hashr�   Úassert_indirect_indexingÚautotune_local_cacheÚautotune_pointwisezbool | NoneÚautotune_remote_cacheÚbundled_autotune_remote_cacheÚforce_disable_cachesÚdynamic_scale_rblockÚincremental_autotuneÚmax_autotuneÚmax_autotune_pointwiser   Úmin_split_scan_rblockÚspill_thresholdÚstore_cubinÚdeterministicÚbatch_invariantÚforce_filter_reduction_configsÚ&mix_order_reduction_allow_multi_stagesÚdynamic_disable_pipeliningÚ$are_deterministic_algorithms_enabledÚis_hipÚ	is_fbcodeÚprofile_bandwidthrY   Úprofile_bandwidth_regexÚprofile_bandwidth_outputÚ/profile_bandwidth_with_do_bench_using_profilingÚcoordinate_descent_tuningÚ coordinate_descent_search_radiusÚ'coordinate_descent_check_all_directionsÚno_x_dimÚatomic_add_foundÚnum_loadÚ	num_storeÚnum_reductionz
typing.AnyÚautotune_hintsÚRSPLIT_SIZEÚ"has_loadstore_with_contiguous_rdimzdict[str, int]Útma_min_block_sizesÚuses_tmaÚuses_device_tmaz dict[str, dict[str, typing.Any]]Úhost_tma_descriptor_argsÚtiling_scoresÚ
min_xblockÚ
min_rblockÚpersistent_reductionr%   Úadd_persistent_rblockÚmax_persistent_rblockÚstrict_sum_rblockÚfloatÚkernel_num_gbÚkernel_flopÚ	grid_typeÚkernel_nameÚmutated_arg_namesÚoptimize_memr   rb   ra   Úreduction_hintrŒ   Úcombo_grid_metaÚcombo_tuning_groupsú	list[str]Úcombo_coordesc_field_orderÚcombo_coordesc_field_limitsÚcombo_warp_stage_candidatesÚextra_launcher_argsÚ
fixed_gridÚprecomputed_gridsÚconfig_argsÚuse_fast_triton_launcherr   Nrœ   r   r   r   rŸ   rŸ     sŸ  ‡ ñð ÓØ"Ó"ØÓØÓØ&Ó&Ø#.Ó.ØÓØÓØÓØÓØ Ó ØÓØÓØÓØÓØÓØ$(Ó(Ø,0Ó0Ø $Ó$Ø*.Ó.ØÓØƒOØÓØ Ó Ø!Ó!Ø59Ó9Ø#Ó#Ø&)Ó)Ø-1Ó1ð ƒNØÓØƒMØƒNØÓØÓØÓØ(,Ó,Ø'Ó'ØƒNØÓØ>Ó>ØÓØƒOØƒOØÓØ%(Ó(ØÓØÓØÓØÓØÓð ƒNØÓØ!Ó!ØÓð ÓØ%Ó%ØÓØ*Ó*Ø#Ó#Ø )Ó)Ø!/Ó/Ø!+Ó+Ø#Ó#ØÓØ!Ó!ØÓØ"×"r   rŸ   c                  ó”   € ] tR tRt$ R]R&   R]R&   RtR]R&   RtR]R&   RtR	]R
&   RtR	]R&   R R lt	R R lt
R R ltR R ltRtR# )ÚHalideInputSpecig  rY   ÚctypeÚnameNzlist[str] | NoneÚshapeÚstrider    ÚoffsetÚalias_ofc               ó   € V ^8„  d   QhRR/# ©r   r   rY   r   )r   s   "r   r   ÚHalideInputSpec.__annotate__o  s   € ÷ ñ ˜sñ r   c                	ó@   € V P                   R9   d   R# V P                   # )ú	at::Half*z	uint16_t*)rð   úat::BFloat16*)ræ   rj   s   &r   Úbindings_typeÚHalideInputSpec.bindings_typeo  s   € Ø�:‰:Ð7Ô7ÙØ�z‰zÐr   c               ó   € V ^8„  d   QhRR/# rí   r   )r   s   "r   r   rî   t  s   € ÷ Bñ B˜Sñ Br   c                	óŽ   € V P                   R 8X  d   R# V P                   R8X  d   R# RV P                   P                  RR4       R2# )rð   z$halide_type_t(halide_type_float, 16)rñ   z%halide_type_t(halide_type_bfloat, 16)zhalide_type_of<Ú*Ú z>())ræ   Úreplacerj   s   &r   Úhalide_typeÚHalideInputSpec.halide_typet  sA   € Ø�:‰:˜Ô$Ù9Ø�:‰:˜Ô(Ù:Ø  §¡×!3Ñ!3°C¸Ó!<Ð =¸SÐAÐAr   c               ó   € V ^8„  d   QhRR/# ©r   r   r�   r   )r   s   "r   r   rî   {  s   € ÷ "ñ "˜4ñ "r   c                	ó   € V P                   R J # r"   ©rè   rj   s   &r   Ú	is_scalarÚHalideInputSpec.is_scalar{  s   € Ø�z‰z˜TÐ!Ð!r   c               ó   € V ^8„  d   QhRR/# rü   r   )r   s   "r   r   rî   ~  s   € ÷ &ñ &˜4ñ &r   c                	ó   € V P                   R J# r"   rþ   rj   s   &r   Ú	is_bufferÚHalideInputSpec.is_buffer~  s   € Ø�z‰z Ð%Ð%r   r   )r(   r)   r*   r+   r‚   rè   ré   rê   rë   rò   rù   rÿ   r  r0   r   r   r   rå   rå   g  sP   ‡ ØƒJØ
ƒIØ"€EÐÓ"Ø#€FÐÓ#Ø€FˆJÓØ€HˆjÓõõ
Bõ"÷&ñ &r   rå   c                  ón   € ] tR tRt$ R]R&   R]R&   RtR]R&   RtR	]R
&   RtR]R&   R R ltR R lt	Rt
R# )Ú
HalideMetai‚  zlist[HalideInputSpec]ÚargtypesrY   ÚtargetNr    Ú	schedulerzdict[str, int | str] | NoneÚscheduler_flagsr   Úcuda_devicec               ó   € V ^8„  d   QhRR/# )r   r   rÛ   r   )r   s   "r   r   ÚHalideMeta.__annotate__‰  s   € ÷ 
ñ 
�iñ 
r   c                óX  € RV P                    2.pV P                  '       d   VP                  RV P                   24       V P                  '       dX   V P                  '       g   \	        R4      hV P                  P                  4        F  w  r#VP                  RV RV 24       K  	  V# )z-Command line args to pass to halide generatorztarget=zautoscheduler=z,scheduler_flags requires scheduler to be setzautoscheduler.Ú=)r  r	  rD   r
  r<   Úitems)rk   ÚargsÚkÚvs   &   r   r  ÚHalideMeta.args‰  s�   € à˜$Ÿ+™+˜Ð'Ð(ˆØ�>�>ˆ>Ø�K‰K˜.¨¯©Ð(8Ð9Ô:Ø××ÐØ—>—>�>Ü$Ð%SÓTÐTØ×,Ñ,×2Ñ2Ö4‘�Ø—‘˜n¨Q¨C¨q°°Ð4Ö5ñ 5àˆr   c               ó   € V ^8„  d   QhRR/# rü   r   )r   s   "r   r   r  •  s   € ÷ ,ñ ,˜ñ ,r   c                	ó   € V P                   R J# r"   )r  rj   s   &r   Úis_cudaÚHalideMeta.is_cuda•  s   € Ø×Ñ tÐ+Ð+r   r   )r(   r)   r*   r+   r‚   r	  r
  r  r  r  r0   r   r   r   r  r  ‚  s;   ‡ Ø#Ó#ØƒKØ €IˆzÓ Ø37€OÐ0Ó7Ø"€K�Ó"õ
÷,ñ ,r   r  i   i €  i   r"   )NNN)r=   r>   r?   )r   r   r   )+Ú
__future__r   Úcollectionsr…   ÚtypingÚenumr   r   rs   Útorch.utils._tritonr   ru   rh   ÚTRITON_MAX_BLOCKÚTRITON_MAX_RSPLITÚTRITON_MAX_TENSOR_NUMELr$   ÚTRITON_DEFAULT_BLOCK_SIZESÚTRITON_DEFAULT_RSPLITÚTRITON_DEFAULT_RSPLIT_SIZEr   r%   r'   r2   ÚtritonÚtriton.backends.compilerÚtriton.compiler.compilerÚhasattrÚbackendsÚcompilerr4   rA   Ú
namedtuplerJ   rS   Ú
NamedTuplerX   r‰   Ú	TypedDictr‹   rŸ   rå   r  r   r   r   Ú<module>r-     s¥  ðå "ã Û Û ß ã Ý 2ð �—‘×"×"Ð"‰¨ØˆØˆØ	ˆ9Ø	ˆ9ðÐ ð Ð Ø!Ð ØÐ àˆcØˆaØˆaØ�ð	Ð ð Ð ØÐ ÷õ/ô�Dô ôˆtô ñ ×ÒÛÛ#Û#áˆv�‰×'Ñ'Ð):×;Ò;å<õ	ñ2 
�—‘×)Ñ)Ð+<×	=Ò	=å<õ	-õ(	ð& )×3Ò3àÚ=Úô	Ðô�Dô ô�4ô ô7
�v×(Ñ(ô 7
õt@ô+�×!Ñ!¨õ +ô<Y#�6×#Ñ#¨5õ Y#ôx&�f×'Ñ'ô &ô6,�×"Ñ"ö ,r   