o
    h                     @   sb   d dl mZmZ d dlmZmZ ddlmZ ddlm	Z	 dZ
G dd dZdddZdddZd
S )   )enter_state
exit_state)enter_scope
exit_scope    )knobs)LazyDict__proton_launch_metadatac                   @   sZ   e Zd Zg dZdd eD dg dg Zededdfd	d
ZededdfddZdS )
TritonHook)          @   c                 C   s   g | ]}d | qS )flops ).0widthr   r   O/var/www/html/scripts/venv/lib/python3.10/site-packages/triton/profiler/hook.py
<listcomp>   s    zTritonHook.<listcomp>bytesr   	lazy_dictreturnNc                    s@   t t |   t   fddtjD }t d d|d d S )Nc                    s   i | ]}| v r| | qS r   r   )r   kmetadatar   r   
<dictcomp>   s    z$TritonHook.enter.<locals>.<dictcomp>nameT)	triton_opmetrics)r   COMPUTE_METADATA_SCOPE_NAMEgetr   r
   r   r   )r   
fn_metricsr   r   r   enter   s
   zTritonHook.enterc                 C   s   t dd d S )NT)r   )r   )r   r   r   r   exit   s   zTritonHook.exit)	__name__
__module____qualname__flops_widthr   staticmethodr   r"   r#   r   r   r   r   r
   	   s    r
   r   Nc                   C   s(   t jjd u rtjt j_tjt j_d S d S N)r   runtimelaunch_enter_hookr
   r"   r#   launch_exit_hookr   r   r   r   register_triton_hook   s   
r-   c                   C   s&   t jjtjkrd t j_d t j_d S d S r)   )r   r*   r+   r
   r"   r,   r   r   r   r   unregister_triton_hook    s   r.   )r   N)stater   r   scoper   r   tritonr   triton.compilerr   r   r
   r-   r.   r   r   r   r   <module>   s    
