o
    ^i                     @   sp   d dl mZmZ ddlmZ ddlmZ ddlmZ	 ddl
mZ dZed	d
dZedd
dZG dd deZd
S )   )enter_state
exit_state    )LazyDict   )Hook)proton)
ContextVar__proton_launch_metadataop_nameN)defaultidc                       s   e Zd ZdZdZg dZdd eD dg dg Zdd	 Z fd
dZde	de
de	ddfddZdd Zdd ZdeddfddZdeddfddZ  ZS )
LaunchHookd   N)          @   c                 C   s   g | ]}d | qS )flops ).0widthr   r   W/var/www/html/RAG/RAG_venv/lib/python3.10/site-packages/triton/profiler/hooks/launch.py
<listcomp>   s    zLaunchHook.<listcomp>bytesr   c                 C      d S Nr   selfr   r   r   __init__      zLaunchHook.__init__c                    s"   | j d u rtt| | | _ | j S r   )	_instancesuperr   __new__)cls	__class__r   r   r#      s   
zLaunchHook.__new__namemetadata_grouphashreturnc                 C   r   r   r   )r   modulefunctionr'   r(   r)   r   r   r   init_handle   r    zLaunchHook.init_handlec                 C   r   r   r   r   r   r   r   activate    r    zLaunchHook.activatec                 C   r   r   r   r   r   r   r   
deactivate#   r    zLaunchHook.deactivatemetadatac                    sn   t t |  t   fddtjD }t d  tt	
  t	t  d  t	t | d S )Nc                    s   i | ]}| v r| | qS r   r   )r   klazy_metadatar   r   
<dictcomp>*   s    z$LaunchHook.enter.<locals>.<dictcomp>r'   )r   COMPUTE_METADATA_SCOPE_NAMEgetr   r   metricsr   setr   	libprotonrecord_scopeenter_opadd_metrics)r   r0   
fn_metricsr   r2   r   enter&   s   zLaunchHook.enterc                 C   s   t t t  d S r   )r9   exit_opr   r6   r   )r   r0   r   r   r   exit0   s   zLaunchHook.exit)__name__
__module____qualname__priorityr!   flops_widthr7   r   r#   strdictr-   r.   r/   r   r>   r@   __classcell__r   r   r%   r   r      s    
r   )stater   r   triton.compilerr   hookr   triton._C.libprotonr   r9   contextvarsr	   r5   r   r   r   r   r   r   r   <module>   s    