U
    d                     @   s^   d dl Z d dlZddlmZmZ dddddd	d
gZdddZdd Zdd Zej	dd Z
dS )    N   )cudartcheck_errorZgpustarttimestampZgpuendtimestampZ
gridsize3dZthreadblocksizeZstreamidzenableonstart 0Zconckerneltrace	key_valuec              	   C   s   t  }t|dstd|d kr$tn|}|dkr:|jj}n|dkrL|jj}ntdtj	dd<}|
dd	d
 |D  |  t||j| | W 5 Q R X d S )NcudaOutputModez-HIP does not support profiler initialization!r   csvz;supported CUDA profiler output modes are: key_value and csvT)delete   
c                 s   s   | ]}| d V  qdS )asciiN)encode).0f r   7/tmp/pip-unpacked-wheel-ua33x9lu/torch/cuda/profiler.py	<genexpr>   s     zinit.<locals>.<genexpr>)r   hasattrAssertionErrorDEFAULT_FLAGSr   ZKeyValuePairZCSVRuntimeErrortempfileNamedTemporaryFilewritejoinflushr   ZcudaProfilerInitializename)Zoutput_fileflagsZoutput_modertZoutput_mode_enumr   r   r   r   init   s    


r   c                   C   s   t t   d S N)r   r   ZcudaProfilerStartr   r   r   r   start"   s    r   c                   C   s   t t   d S r   )r   r   ZcudaProfilerStopr   r   r   r   stop&   s    r    c                   c   s   zt  d V  W 5 t   X d S r   )r    r   r   r   r   r   profile*   s    
r!   )Nr   )r   
contextlib r   r   r   r   r   r    contextmanagerr!   r   r   r   r   <module>   s   
