o
    ^i                  
   @   s\  d dl mZmZ d dlmZ d dlmZ d dlm	Z	 dej
jiZejjejjdZejjejjdZejjejjdZejjejjejjejjejjejjejj ejj!ejj"d		Z#G d
d de	Z$e$j%e$j&e$j'e$j(dZ)eddG dd dZ*eddG dd de*Z+eddG dd de*Z,eddG dd de,Z-eddG dd de,Z.dS )    )	dataclassfield)proton)List)Enumcycle)circularflush)sharedglobal)none	selective)	ctawarpwarp_2warp_4warp_8
warp_groupwarp_group_2warp_group_4warp_group_8c                   @   s$   e Zd ZdZdZdZdZdd ZdS )Optimize
time_shiftsched_storessched_barriersclock32c                 C   s   | j S )N)valueself r   O/var/www/html/RAG/RAG_venv/lib/python3.10/site-packages/triton/profiler/mode.py__str__*   s   zOptimize.__str__N)__name__
__module____qualname__	TIMESHIFTSCHED_STORESSCHED_BARRIERSCLOCK32r!   r   r   r   r    r   $   s    r   )r   r   r   r   T)frozenc                   @   s   e Zd ZU eed< dS )BaseModenameN)r"   r#   r$   str__annotations__r   r   r   r    r*   6   s   
 r*   c                   @   s>   e Zd ZU edddZeed< dZeed< dd Z	d	d
 Z
dS )
PCSampling
pcsamplingFdefaultinitr+   i  intervalc                 C   s   | j dkr	tdd S )Nr   z$Interval must be a positive integer.)r3   
ValueErrorr   r   r   r    __post_init__@   s   
zPCSampling.__post_init__c                 C   s   | j  d| j S )Nz
:interval=)r+   r3   r   r   r   r    r!   D   s   zPCSampling.__str__N)r"   r#   r$   r   r+   r,   r-   r3   intr5   r!   r   r   r   r    r.   ;   s
   
 r.   c                   @   s   e Zd ZU dZejjZejed< ej	j
Zej	ed< dZeed< ejjZejed< ejjZejed< ejjZejed< d	Zeed
< eedZee ed< dd Zdd ZdS )InstrumentationModezFCommon base class for instrumentation modes with shared configuration.metric_typesampling_strategy sampling_optionsgranularitybuffer_strategybuffer_typer   buffer_size)default_factoryoptimizationsc                 C   s   dt fdtfdtfdtfdtfg}|D ]%\}}t| |}t|tr8||vr/td| d| t	
| |||  qt| d}t|trst|d	krSd
d |dD ng }|D ]}|tvrdtd| qWt	
| ddd |D  d S d S )Nr8   r9   r<   r=   r>   zUnknown z: rA   r   c                 S   s   g | ]}|  qS r   )strip.0r   r   r   r    
<listcomp>f       z5InstrumentationMode.__post_init__.<locals>.<listcomp>,zUnknown optimization: c                 S   s   g | ]}t | qS r   )rA   rC   r   r   r    rE   j   rF   )metric_typessampling_strategiesgranularitiesbuffer_strategiesbuffer_typesgetattr
isinstancer,   r4   object__setattr__lensplitrA   )r   mappings
field_namelookupr   
values_strvaluesr   r   r    r5   T   s,   



$z!InstrumentationMode.__post_init__c                 C   s^   d dd | jD }| j d| j d| j d| j d| j d| j d	| j d
| j	 d| S )NrG   c                 S   s   g | ]}t |qS r   )r,   )rD   optr   r   r    rE   m   rF   z/InstrumentationMode.__str__.<locals>.<listcomp>z:metric_type=z:sampling_strategy=z:sampling_options=z:granularity=z:buffer_strategy=z:buffer_type=z:buffer_size=z:optimizations=)
joinrA   r+   r8   r9   r;   r<   r=   r>   r?   )r   optimizations_strr   r   r    r!   l   s   zInstrumentationMode.__str__N) r"   r#   r$   __doc__triton_protonMETRIC_TYPECYCLEr8   r-   SAMPLING_STRATEGYNONEr9   r;   r,   GRANULARITYWARPr<   BUFFER_STRATEGYCIRCULARr=   BUFFER_TYPESHAREDr>   r?   r6   r   listrA   r   r   r5   r!   r   r   r   r    r7   H   s   
 r7   c                   @   "   e Zd ZU edddZeed< dS )Defaultr1   Fr0   r+   Nr"   r#   r$   r   r+   r,   r-   r   r   r   r    ri   t      
 ri   c                   @   rh   )MMAmmaFr0   r+   Nrj   r   r   r   r    rl   y   rk   rl   N)/dataclassesr   r   triton._C.libtritonr   r\   typingr   enumr   r]   r^   rH   rc   rd   FLUSHrK   re   rf   GLOBALrL   r_   r`   	SELECTIVErI   ra   CTArb   WARP_2WARP_4WARP_8
WARP_GROUPWARP_GROUP_2WARP_GROUP_4WARP_GROUP_8rJ   r   r%   r&   r'   r(   rA   r*   r.   r7   ri   rl   r   r   r   r    <module>   sP    +