
    ^j                        d dl mZ d dlmZ d dlmc mZ d dlm	Z
 d dlZd dlmZ ddlmZmZmZ ej"                  de
j$                  de
j$                  d	e
j$                  fd
       Zej"                  de
j$                  de
j$                  de
j$                  fd       Zd Zd Z G d dej.                        Zdeeef   deeeef   eeej.                  f   f   fdZy)    )Any)protonN)
MockTensor   )
exit_stateenter_stateCOMPUTE_METADATA_SCOPE_NAMEsize	metric_idmetric_value_sizec                    d}t        j                  |      }t        j                  | |z   |       |dz   |z  }t        j                  ||      }t        j                  d|      }	t        j
                  d|      D ]J  }
|	|
|z  z   }||k  }t        j                  ||z   |      }t        j                  | ||z   |z  z   ||       L t        j                          ||z   |z  }t        j                  ||       y )N   r   r   )mask)tlloadstorecdivarangerangedebug_barrier)
device_ptrdevice_offset_ptrr
   r   metric_value_ptrr   
BLOCK_SIZEdevice_offset	num_itersoffsetsicur_offsetsr   metric_values                 a/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/triton/profiler/metric.pytensor_metric_kernelr"   
   s      #JGG-.MHHZ-'3"Q&$.M):6Iii:&GXXa# ]J...ww/+=DI
}{:dBBLW[\	]
 "%66$>MHH.    r    c                    t        j                  |      }t        j                  | |z   |       |dz   |z  }t        j                  | |z   |       |dz   |z  }t        j                          t        j                  ||       y )Nr   )r   r   r   r   )r   r   r
   r   r    r   s         r!   scalar_metric_kernelr%      sp    GG-.MHHZ-'3"Q&$.MHHZ-'6"Q&$.MHH.r#   c                 `     | j                   |ddd}|j                          |j                  S )N)r   r   )grid	num_warps)warmup_init_handlesfunction)	kernel_fnargskernels      r!   _get_kernelr/   (   s.    Yt%1=F
??r#   c            	      <   t        t        j                        } d}d}d}t        t        | | ||| |      }t        t
        | | |||      }t        j                  j                         }t        j                  j                  |      }t        j                  |||       y )Nr   r   )r   r   uint64r/   r"   r%   driveractiveget_current_deviceget_current_stream	libprotonset_metric_kernels)mock_ptrmock_metric_id	mock_sizemock_metric_value_sizetensor_metric_kernel_fnscalar_metric_kernel_fndevicestreams           r!   r7   r7   .   s    "))$HNI) * ]]--/F]]--f5F  !8:QSYZr#   c                        e Zd Z fdZ xZS )_TensorMetricc                 n    t         |   |j                         ||j                                || _        y )N)super__init__data_ptrnumel_value)selfvaluemetric_type_index	__class__s      r!   rD   z_TensorMetric.__init__K   s)    )+<ekkmLr#   )__name__
__module____qualname__rD   __classcell__)rK   s   @r!   rA   rA   I   s     r#   rA   metricsreturnc                 &   i }i }| j                         D ]  \  }}t        |d      r|j                  j                  dk(  r|||<   1t	        t
               |j                         rE|j                         }|j                         dkD  rt        j                  }nUt        j                  }nD|j                         }|j                         dkD  rt        j                  }nt        j                  }t                t!        ||      ||<   |||<    ||fS )NrE   cpur   )itemshasattrr>   typer   r	   is_floating_pointdoublerF   r6   metric_type_vector_double_indexmetric_type_double_indexlongmetric_type_vector_int64_indexmetric_type_int64_indexr   rA   )rP   tensor_metricsscalar_metricskeyrI   metric_indexs         r!   transform_tensor_metricsrb   Q   s    N%'Nmmo (
U5*%||  E)&+s#78**,!LLNE{{}q('0'P'P'0'I'I!JJLE{{}q('0'O'O'0'H'H&3E<&Hs#"'N3-(. >))r#   )typingr   triton._C.libprotonr   r6   triton.runtime.driverruntimer2   triton.languagelanguager   tritonr   stater   r   r	   jitr1   r"   r%   r/   r7   TensorMetricrA   dictstrtuplerb    r#   r!   <module>rq      s     3 & &    G G /bii /TVT]T] /,.II/ /$ /bii /TVT]T] /momvmv / /[6I** *d38n *tCH~tTWYbYoYoToOp?p9q *r#   