
    g                     ,    d dl Z d dlmZ  G d d      Zy)    N)cudartc                   &    e Zd Zd ZddZd Zd Zy)
NvtxHelperc                     || _         i | _        |D ]3  }dD ],  }t        j                         d   | j                  |dz   |z   <   . 5 i | _        y )N)startstop   -)stageseventsr   cudaEventCreatemarkers)selfr   stagemarkers       e/var/www/openai/venv/lib/python3.12/site-packages/onnxruntime/transformers/models/sam2/nvtx_helper.py__init__zNvtxHelper.__init__
   sR    E+4:4J4J4LQ4OECK&01 ,      c                     t        j                  ||      | j                  |<   |dz   }|| j                  v r$t	        j
                  | j                  |   d       y y )N)messagecolor-startr   )nvtxstart_ranger   r   r   cudaEventRecord)r   r   r   
event_names       r   start_profilezNvtxHelper.start_profile   sQ    "..uEJUX%
$""4;;z#:A> %r   c                     |dz   }|| j                   v r#t        j                  | j                   |   d       t        j                  | j
                  |          y )N-stopr   )r   r   r   r   	end_ranger   )r   r   r   s      r   stop_profilezNvtxHelper.stop_profile   sE    W_
$""4;;z#:A>t||E*+r   c                     | j                   D ]M  }t        j                  | j                  | d   | j                  | d         d   }t	        | d|dd       O y )Nr   r   r	   z: z.2fz ms)r   r   cudaEventElapsedTimer   print)r   r   latencys      r   print_latencyzNvtxHelper.print_latency   se    [[E11$++v>N2OQUQ\Q\`e_ffk]lQmnopqGUG2gc]#./ !r   N)blue)__name__
__module____qualname__r   r   r!   r&    r   r   r   r   	   s    ?,0r   r   )r   cudar   r   r+   r   r   <module>r-      s   
  0 0r   