o
    }oiU                     @   s   U d dl Z d dlmZ d dlZd dlmZ e jdddefddZg Z	e
e ed< d	eddfd
dZdd	ee ddfddZdS )    N)Optional)AppState)maxsizereturnc                   C   s   t  jS )z(Check if NVTX range profiling is enabled)r   _nvtx_ranges r   r   C/home/ubuntu/.local/lib/python3.10/site-packages/nemo/utils/nvtx.py_nvtx_enabled   s   r	   _nvtx_range_messagesmsgc                 C   s&   t  sd S t|  tjj|  d S N)r	   r
   appendtorchcudanvtx
range_push)r   r   r   r   nvtx_range_push#   s   
r   c                 C   sR   t  sd S tstdt }| d ur!| |kr!td|  d| tjj  d S )Nz,Attempted to pop NVTX range from empty stackz0Attempted to pop NVTX range from stack with msg=z, but last range has msg=)	r	   r
   RuntimeErrorpop
ValueErrorr   r   r   	range_pop)r   last_msgr   r   r   nvtx_range_pop-   s   r   r   )	functoolstypingr   r   nemo.utils.app_stater   	lru_cacheboolr	   r
   liststr__annotations__r   r   r   r   r   r   <module>   s   


