o
    i                     @   s&   d dl Z d dlmZ G dd dZdS )    N)cudartc                   @   s.   e Zd Zdd ZdddZdd Zdd	 Zd
S )
NvtxHelperc                 C   sD   || _ i | _|D ]}dD ]}t d | j|d | < qqi | _d S )N)startstop   -)stageseventsr   ZcudaEventCreatemarkers)selfr   stagemarker r   j/home/kim/smarthome/.venv/lib/python3.10/site-packages/onnxruntime/transformers/models/sam2/nvtx_helper.py__init__
   s   
zNvtxHelper.__init__bluec                 C   s@   t j||d| j|< |d }|| jv rt| j| d d S d S )N)messagecolor-startr   )nvtxZstart_ranger
   r	   r   cudaEventRecord)r   r   r   
event_namer   r   r   start_profile   s
   
zNvtxHelper.start_profilec                 C   s8   |d }|| j v rt| j | d t| j|  d S )N-stopr   )r	   r   r   r   Z	end_ranger
   )r   r   r   r   r   r   stop_profile   s   
zNvtxHelper.stop_profilec                 C   sN   | j D ]!}t| j| d | j| d d }t| d|dd qd S )Nr   r   r   z: z.2fz ms)r   r   ZcudaEventElapsedTimer	   print)r   r   Zlatencyr   r   r   print_latency   s   
(zNvtxHelper.print_latencyN)r   )__name__
__module____qualname__r   r   r   r   r   r   r   r   r   	   s
    
r   )r   cudar   r   r   r   r   r   <module>   s   