
    sg                        d dl Z d dlZd dlmZ d dlmZmZ d dlmZmZm	Z	m
Z
 dddddZ G d	 d
e      Z G d de      Z	 d dlmZ dZ ee      D  ch c]  } | j"                   c} Zdev Zdev Zer		 	 	 	 d"dZn e j.                  dg dg d      ZdZ G d de      Z G d de      Z G d dej6                        Z G d dej6                        Z G d  d!ej6                        Zyc c} w # e$ r dZY w xY w)#    N)fields)autoEnum)DictListOptionalUnioni   i   i   )XYZRc                       e Zd ZdZdZdZdZy)ReductionHintr            N)__name__
__module____qualname__INNEROUTER
OUTER_TINYDEFAULT     P/var/www/html/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   )AttrsDescriptorTids_of_folded_argsdivisible_by_8Fc                 N    | |d}t         r||d<   t        r||d<   t        di |S )N)divisible_by_16
equal_to_1r!   r"   r   )ids_of_folded_args_availabledivisible_by_8_availabler    )r$   r%   r!   r"   kwargss        r   instance_descriptorr)   -   s?      /$
 (+=F'(#'5F#$ (((r   r)   )r$   r%   r!   r"   )r   r   r   r   )defaults    c                   `    e Zd 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_AUTOTUNEr   r   r   r-   r-   N   s-    6IIJvHFMr   r-   c                   (    e Zd ZdZej
                  Zy)AutotuneHintr   N)r   r   r   ELEMENTS_PER_WARP_32r   __str____repr__r   r   r   r5   r5   W   s     ||Hr   r5   c                       e Zd ZU dZeed<   eed<   eed<   dZee   ed<   dZ	ee   ed<   dZ
ee   ed<   dZee   ed	<   ed
        Zy)DevicePropertieszOCopy device properties into a data structure not requiring torch to be importedtypeindexccNmajorregs_per_multiprocessormax_threads_per_multi_processormulti_processor_countc           	         dd l }ddlm} |j                  j                  |j
                  nd} ||      }|dk(  ra|j                  |      } | ||j                  |j                  |      |j                  |j                  |j                  |j                        S  | ||j                  |j                  |            S )Nr   )get_interface_for_devicehipcuda)r;   r<   r=   r>   r?   r@   rA   )r;   r<   r=   )torchtorch._dynamo.device_interfacerC   versionrD   r;   get_device_propertiesr<   get_compute_capabilityr>   r?   r@   rA   )clsdevicerF   rC   device_typedevice_interfacepropss          r   createzDeviceProperties.createl   s    K%*]]%6%6%>fkkE3F;& $::6BE ll#::6Bkk(-(E(E050U0U&+&A&A  ,,66v>
 	
r   )r   r   r   __doc__str__annotations__intr>   r   r?   r@   rA   classmethodrP   r   r   r   r:   r:   a   sa    Y
IJGE8C=-1Xc]159#Xc]9+/8C=/
 
r   r:   c                       e Zd ZU eed<   eed<   dZeee      ed<   dZeee      ed<   dZ	ee   ed<   dZ
ee   ed<   d Zd	 Zd
 Zd Zy)HalideInputSpecctypenameNshapestrideoffsetalias_ofc                 8    | j                   dv ry| j                   S )N)half*	bfloat16*z	uint16_t*)rX   selfs    r   bindings_typezHalideInputSpec.bindings_type   s    :://zzr   c                     | j                   dk(  ry| j                   dk(  ryd| j                   j                  dd       dS )	Nr_   z$halide_type_t(halide_type_float, 16)r`   z%halide_type_t(halide_type_bfloat, 16)zhalide_type_of<* z>())rX   replacera   s    r   halide_typezHalideInputSpec.halide_type   sA    :: 9::$: !3!3C!< =SAAr   c                     | j                   d u S NrZ   ra   s    r   	is_scalarzHalideInputSpec.is_scalar   s    zzT!!r   c                     | j                   d uS rj   rk   ra   s    r   	is_bufferzHalideInputSpec.is_buffer   s    zz%%r   )r   r   r   rR   rS   rZ   r   r   r[   r\   r]   rc   rh   rl   rn   r   r   r   rW   rW      sc    J
I!%E8DI%"&FHT#Y& FHSM "Hhsm"
B"&r   rW   c                       e Zd ZU ee   ed<   eed<   dZee   ed<   dZ	ee
eeeef   f      ed<   dZee   ed<   d Zd Zy)	
HalideMetaargtypestargetN	schedulerscheduler_flags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.=)rr   rs   appendrt   items)rb   argskvs       r   rz   zHalideMeta.args   s    $++'(>>KK.(89:>>!>,,224 61nQCq456r   c                     | j                   d uS rj   )ru   ra   s    r   is_cudazHalideMeta.is_cuda   s    t++r   )r   r   r   r   rW   rS   rR   rs   r   rt   r   r	   rT   ru   rz   r~   r   r   r   rp   rp      sY    ?##K#Ix}#<@OXd3c3h#789@!%K#%	,r   rp   )NNNN)collectionstypingdataclassesr   enumr   r   r   r   r   r	   TRITON_MAX_BLOCKr   r   triton.compiler.compilerr    attrs_descriptor_availablerY   attr_desc_fieldsr&   r'   ImportErrorr)   
namedtuple_NUM_THREADS_PER_WARPr-   r5   
NamedTupler:   rW   rp   )fs   0r   <module>r      s0       . .
 
				 D t 	'8!%(.(?@1@#7;K#K /3CC
  	). 1+00Q!  D 4 !
v(( !
H&f'' &6,"" ,y A  '!&'s$   C2 C-&C2 -C2 2C<;C<