Ë
    g^(hw  ã                  óP  — d dl mZ d dlZd dlZd dlZd dlmZmZ d dlmZm	Z	 d dl
mZ ddddd	d
œZdZ G d„ de«      Z G d„ de«      Z e«       rgd dlZd dlZd dlZ eej(                  j*                  d«      rd dlmZ 	 	 d$d„ZnJ eej*                  j*                  d«      rd dlmZ 	 	 d$d„Zn 	 	 d$d„Zn ej0                  dddgddg¬«      ZdZ G d„ de«      Z G d„ de«      Z G d„ dej8                  «      Z G d „ d!ej8                  «      Z G d"„ d#ej8                  «      Zy)%é    )ÚannotationsN)ÚautoÚEnum)ÚOptionalÚUnion)Úhas_triton_packagei   i   i   i €  )ÚXÚYÚZÚR0_ÚR1_é@   c                  ó   — e Zd ZdZdZdZdZy)ÚReductionHintr   é   é   é   N)Ú__name__Ú
__module__Ú__qualname__ÚINNERÚOUTERÚ
OUTER_TINYÚDEFAULT© ó    ú[/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/_inductor/runtime/hints.pyr   r      s   „ Ø€EØ€EØ€JØ�Gr   r   c                  ó   — e Zd ZdZdZy)ÚTileHintr   r   N)r   r   r   ÚSQUAREr   r   r   r   r   r       s   „ Ø€FØ�Gr   r   ÚAttrsDescriptor©r!   c                ó¬   — | |dœ}t        j                  |t         j                  dœ«      }|j                  d   dk(  sJ ‚|j                  d   dk(  sJ ‚|S )N)útt.divisibilityútt.equal_to)Úarg_propertiesÚclsr$   é   r%   r   )r!   Ú	from_dictr   Úproperty_values)Údivisible_by_16Ú
equal_to_1ÚkwargsÚress       r   ÚAttrsDescriptorWrapperr/   /   sk   € ð $3Ø)ñˆFô "×+Ñ+Ø#)´/×2JÑ2JÑKóˆCð ×&Ñ&Ð'8Ñ9¸RÒ?Ð?Ð?Ø×&Ñ& }Ñ5¸Ò:Ð:Ð:ØˆJr   c                ó"   — | |dœ}t        di |¤ŽS )N)r+   r,   r   r"   )r+   r,   r-   s      r   r/   r/   E   s!   € ð $3Ø(ñˆFô #Ñ, VÑ,Ð,r   c                ó6   — | D �ci c]	  }|fddgg“Œ c}S c c}w )Nr$   r(   r   )r+   r,   Úxs      r   r/   r/   X   s)   € ð >MÖM¸�Q�DÐ-¨rÐ2Ð3Ñ3ÒMÐMùÒMs   …r+   r,   r   )Údefaultsé    c                  ón   — e Zd Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z	 e«       Z
y)ÚHeuristicTypeN)r   r   r   r   ÚPERSISTENT_REDUCTIONÚ	POINTWISEÚ	REDUCTIONÚ
SPLIT_SCANÚTEMPLATEÚUSER_AUTOTUNEÚFIXEDr   r   r   r6   r6   j   s4   „ Ù›6ÐÙ“€IÙ“€IÙ“€JÙ‹v€HÙ“F€MÙ‹F�Er   r6   c                  ó(   — e Zd ZdZej
                  Zy)ÚAutotuneHintr   N)r   r   r   ÚONE_ELEMENT_PER_THREADr   Ú__str__Ú__repr__r   r   r   r?   r?   t   s   „ ØÐð �|‰|�Hr   r?   c                  ó®   — e Zd ZU dZded<   ded<   ded<   ded<   dZd	ed
<   dZd	ed<   dZd	ed<   dZd	ed<   e	 e
j                  d«      dd„«       «       Zy)ÚDevicePropertieszOCopy device properties into a data structure not requiring torch to be importedÚstrÚtypeÚintÚindexÚmulti_processor_countÚccNúOptional[int]ÚmajorÚregs_per_multiprocessorÚmax_threads_per_multi_processorÚ	warp_sizec                óÒ  — dd l }ddlm} |j                  }|j                  j
                  r|dk(  rd} ||«      }|j                  |«      }	 |j                  } | ||j                  ||j                  |«      t        |dd «      t        |d	d «      t        |d
d «      t        |d|dk7  rd«      ¬«      S d «      ¬«      S # t        $ r |dk(  r|j                  }n	|dk(  rd}n‚ Y Œ‹w xY w)Nr   )Úget_interface_for_deviceÚcudaÚhipÚxpuÚmpsé   rL   rM   rN   rO   Úcpur4   )rF   rH   rI   rJ   rL   rM   rN   rO   )ÚtorchÚtorch._dynamo.device_interfacerQ   rF   ÚversionrS   Úget_device_propertiesrI   ÚAttributeErrorÚgpu_subslice_countrH   Úget_compute_capabilityÚgetattr)r'   ÚdevicerX   rQ   Údevice_typeÚdevice_interfaceÚpropsrI   s           r   ÚcreatezDeviceProperties.createŠ   s  € ó 	ÝKà—k‘kˆà�=‰=×Ò °Ò!6ØˆKá3°FÓ;ÐØ ×6Ñ6°vÓ>ˆð		Ø$)×$?Ñ$?Ð!ñ ØØ—,‘,Ø"7Ø×6Ñ6°vÓ>Ü˜% ¨$Ó/Ü$+¨EÐ3LÈdÓ$SÜ,3ØÐ8¸$ó-ô ˜e [¸ÀuÒ8L°"ÓWô
ð 	
ð SWÓWô
ð 	
øô ò 	Ø˜eÒ#Ø(-×(@Ñ(@Ñ%Ø Ò%à()Ñ%àùð	ús   ÁB? Â?$C&Ã%C&)ÚreturnrD   )r   r   r   Ú__doc__Ú__annotations__rL   rM   rN   rO   ÚclassmethodÚ	functoolsÚ	lru_cacherd   r   r   r   rD   rD   ~   sk   … ÙYà
ƒIØƒJØÓØƒGØ€Eˆ=ÓØ-1Ð˜]Ó1Ø59Ð# ]Ó9Ø#€Iˆ}Ó#àØ€Y×Ñ˜Óò 
ó ó ñ 
r   rD   c                  óz   — e Zd ZU ded<   ded<   dZded<   dZded<   dZded	<   dZded
<   dd„Zdd„Z	dd„Z
dd„Zy)ÚHalideInputSpecrE   ÚctypeÚnameNzOptional[list[str]]ÚshapeÚstrideúOptional[str]ÚoffsetÚalias_ofc                ó8   — | j                   dv ry| j                   S )N)úhalf*ú	bfloat16*z	uint16_t*)rm   ©Úselfs    r   Úbindings_typezHalideInputSpec.bindings_type·   s   € Ø�:‰:Ð/Ñ/ØØ�z‰zÐr   c                ó‚   — | j                   dk(  ry| j                   dk(  ryd| j                   j                  dd«      › d�S )	Nru   z$halide_type_t(halide_type_float, 16)rv   z%halide_type_t(halide_type_bfloat, 16)zhalide_type_of<Ú*Ú z>())rm   Úreplacerw   s    r   Úhalide_typezHalideInputSpec.halide_type¼   sA   € Ø�:‰:˜Ò Ø9Ø�:‰:˜Ò$Ø:Ø  §¡×!3Ñ!3°C¸Ó!<Ð =¸SÐAÐAr   c                ó   — | j                   d u S ©N©ro   rw   s    r   Ú	is_scalarzHalideInputSpec.is_scalarÃ   s   € Ø�z‰z˜TÐ!Ð!r   c                ó   — | j                   d uS r€   r�   rw   s    r   Ú	is_bufferzHalideInputSpec.is_bufferÆ   s   € Ø�z‰z Ð%Ð%r   )re   rE   ©re   Úbool)r   r   r   rg   ro   rp   rr   rs   ry   r~   r‚   r„   r   r   r   rl   rl   ¯   sK   … ØƒJØ
ƒIØ!%€EÐÓ%Ø"&€FÐÓ&Ø €FˆMÓ Ø"€HˆmÓ"óó
Bó"ô&r   rl   c                  ó\   — e Zd ZU ded<   ded<   dZded<   dZded	<   dZd
ed<   dd„Zdd„Zy)Ú
HalideMetazlist[HalideInputSpec]ÚargtypesrE   ÚtargetNrq   Ú	schedulerz$Optional[dict[str, Union[int, str]]]Úscheduler_flagsrK   Úcuda_devicec                ó   — d| j                   › �g}| j                  r|j                  d| j                  › �«       | j                  rG| j                  sJ ‚| j                  j	                  «       D ]  \  }}|j                  d|› d|› �«       Œ |S )z-Command line args to pass to halide generatorztarget=zautoscheduler=zautoscheduler.ú=)rŠ   r‹   ÚappendrŒ   Úitems)rx   ÚargsÚkÚvs       r   r’   zHalideMeta.argsÑ   s‰   € à˜$Ÿ+™+˜Ð'Ð(ˆØ�>Š>Ø�K‰K˜.¨¯©Ð(8Ð9Ô:Ø×ÒØ—>’>Ð!�>Ø×,Ñ,×2Ñ2Ó4ò 6‘��1Ø—‘˜n¨Q¨C¨q°°Ð4Õ5ð6àˆr   c                ó   — | j                   d uS r€   )r�   rw   s    r   Úis_cudazHalideMeta.is_cudaÜ   s   € Ø×Ñ tÐ+Ð+r   )re   z	list[str]r…   )	r   r   r   rg   r‹   rŒ   r�   r’   r–   r   r   r   rˆ   rˆ   Ê   s6   … Ø#Ó#ØƒKØ#€Iˆ}Ó#Ø<@€OÐ9Ó@Ø!%€K�Ó%ó	ô,r   rˆ   )NN) Ú
__future__r   Úcollectionsri   ÚtypingÚenumr   r   r   r   Útorch.utils._tritonr   ÚTRITON_MAX_BLOCKÚTRITON_MAX_RSPLITr   r   ÚtritonÚtriton.backends.compilerÚtriton.compiler.compilerÚhasattrÚbackendsÚcompilerr!   r/   Ú
namedtupleÚ_NUM_THREADS_PER_WARPr6   r?   Ú
NamedTuplerD   rl   rˆ   r   r   r   ú<module>r§      s<  ðå "ã Û Û ß ß "å 2ð 
Ø	Ø	ØØñÐ ð Ð ô�Dô ôˆtô ñ ÔÛÛ#Û#áˆv�‰×'Ñ'Ð):Ô;å<ð !Øô	ñ$ 
�—‘×)Ñ)Ð+<Ô	=å<ð !Øô	-ð( !Øô	Nð 4˜[×3Ñ3ØØ	˜LÐ)Ø�b�ôÐð Ð ô�Dô ô�4ô ô.
�v×(Ñ(ô .
ôb&�f×'Ñ'ô &ô6,�×"Ñ"õ ,r   