Ë
    1²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                 úU/var/www/html/ia-enhanced/venv/lib/python3.12/site-packages/triton/profiler/metric.pyÚtensor_metric_kernelr"   
   só   € ð  #€JÜ—G‘GÐ-Ó.€MÜ‡H�HˆZ˜-Ñ'¨Ô3Ø" QÑ&¨$Ñ.€MÜ—‘Ð)¨:Ó6€IÜ�i‰i˜˜:Ó&€GÜ�X‰X�a˜Ó#ò ]ˆØ  J¡Ñ.ˆØÐ.Ñ.ˆÜ—w‘wÐ/°+Ñ=ÀDÔIˆÜ
�‰�˜}¨{Ñ:¸dÑBÑBÀLÐW[Ö\ð	]ô
 ×ÑÔØ"Ð%6Ñ6¸$Ñ>€MÜ‡H�HÐ Õ.ó    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   € ä—G‘GÐ-Ó.€MÜ‡H�HˆZ˜-Ñ'¨Ô3Ø" QÑ&¨$Ñ.€MÜ‡H�HˆZ˜-Ñ'¨Ô6Ø" QÑ&¨$Ñ.€MÜ×ÑÔÜ‡H�HÐ Õ.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Ó5€FÜ× Ñ Ð!8Ð:QÐSYÕ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)   ø€ Ü‰Ñ˜Ÿ™Ó)Ð+<¸e¿k¹k»mÔ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Ø—m‘m“oò (‰
ˆˆUÜ�5˜*Ô%Ø�|‰|× Ñ  EÒ)Ø&+�˜sÒ#äÔ7Ô8à×*Ñ*Ô,Ø!ŸL™L›N�EØ—{‘{“} qÒ(Ü'0×'PÑ'P™ä'0×'IÑ'I™à!ŸJ™J›L�EØ—{‘{“} qÒ(Ü'0×'OÑ'O™ä'0×'HÑ'H˜Ü”Ü&3°E¸<Ó&H�˜sÒ#à"'ˆN˜3Òð-(ð. ˜>Ð)Ð)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ð ‡�ð/¸b¿i¹ið /ÐTV×T]ÑT]ð /Ø,.¯I©Iò/ó ð/ð$ ‡�ð/¸b¿i¹ið /ÐTV×T]ÑT]ð /Ðmo×mvÑmvò /ó ð/òò[ô6�I×*Ñ*ô ð* d¨3°¨8¡nð *¸¸tÀCÈÀH¹~ÈtÐTWÐYb×YoÑYoÐToÑOpÐ?pÑ9qô *r#   