§
    OŠtjà  ã                   óˆ  — 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dS )é    )Ú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 ]I}
|	|
|z  z   }||k     }t          j        ||z   |¬¦  «        }t          j        | ||z   |z  z   ||¬¦  «         ŒJt          j        ¦   «          ||z   |z  }t          j        ||¦  «         d S )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                 úT/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/triton/profiler/metric.pyÚtensor_metric_kernelr"   
   s  € ð  #€JÝ”GÐ-Ñ.Ô.€MÝ„HˆZ˜-Ñ'¨Ñ3Ô3Ð3Ø" QÑ&¨$Ñ.€MÝ”Ð)¨:Ñ6Ô6€IÝŒi˜˜:Ñ&Ô&€GÝŒX�a˜Ñ#Ô#ð ]ð ]ˆØ  J¡Ñ.ˆØÐ.Ò.ˆÝ”wÐ/°+Ñ=ÀDÐIÑIÔIˆÝ
Œ�˜}¨{Ñ:¸dÑBÑBÀLÐW[Ð\Ñ\Ô\Ð\Ð\ÝÔÑÔÐØ"Ð%6Ñ6¸$Ñ>€MÝ„HÐ Ñ.Ô.Ð.Ð.Ð.ó    r    c                 óþ   — t          j        |¦  «        }t          j        | |z   |¦  «         |dz   |z  }t          j        | |z   |¦  «         |dz   |z  }t          j        ¦   «          t          j        ||¦  «         d S )Nr   )r   r   r   r   )r   r   r
   r   r    r   s         r!   Úscalar_metric_kernelr%      s†   € å”GÐ-Ñ.Ô.€MÝ„HˆZ˜-Ñ'¨Ñ3Ô3Ð3Ø" QÑ&¨$Ñ.€MÝ„HˆZ˜-Ñ'¨Ñ6Ô6Ð6Ø" QÑ&¨$Ñ.€MÝÔÑÔÐÝ„HÐ Ñ.Ô.Ð.Ð.Ð.r#   c                 óT   —  | j         |dddœŽ}|                     ¦   «          |j        S )N)r   r   )ÚgridÚ	num_warps)ÚwarmupÚ_init_handlesÚfunction)Ú	kernel_fnÚargsÚkernels      r!   Ú_get_kernelr/   (   s5   € ØˆYÔ˜t¨%¸1Ð=Ð=Ð=€FØ
×ÒÑÔÐØŒ?Ðr#   c            	      óP  — t          t          j        ¦  «        } d}d}d}t          t          | | ||| |¦  «        }t          t
          | | |||¦  «        }t          j                             ¦   «         }t          j         	                    |¦  «        }t          j        |||¦  «         d S )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Ô5€FÝÔ Ð!8Ð:QÐSYÑZÔZÐZÐZÐZr#   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )Ú_TensorMetricc                 ó¤   •— t          ¦   «                              |                     ¦   «         ||                     ¦   «         ¦  «         || _        d S )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¼mÑLÔLÐLàˆŒˆˆr#   )Ú__name__Ú
__module__Ú__qualname__rD   Ú__classcell__)rK   s   @r!   rA   rA   I   s8   ø€ € € € € ðð ð ð ð ð ð ð ð r#   rA   ÚmetricsÚreturnc                 óL  — i }i }|                       ¦   «         D �]\  }}t          |d¦  «        rì|j        j        dk    r|||<   Œ,t	          t
          ¦  «         |                     ¦   «         rF|                     ¦   «         }|                     ¦   «         dk    rt          j
        }nRt          j        }nE|                     ¦   «         }|                     ¦   «         dk    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”oð (ñ (‰
ˆˆUÝ�5˜*Ñ%Ô%ð 	(ØŒ|Ô  EÒ)Ð)Ø&+�˜sÑ#Ð#åÕ7Ñ8Ô8Ð8à×*Ò*Ñ,Ô,ð IØ!ŸLšL™NœN�EØ—{’{‘}”} qÒ(Ð(Ý'0Ô'P˜˜å'0Ô'I˜˜à!ŸJšJ™LœL�EØ—{’{‘}”} qÒ(Ð(Ý'0Ô'O˜˜å'0Ô'H˜Ý‘”�Ý&3°E¸<Ñ&HÔ&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Ð 3Ð 3Ð 3Ð 3Ð 3Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ Gð „ð/¸b¼ið /ÐTVÔT]ð /Ø,.¬Ið/ð /ð /ñ „ð/ð$ „ð/¸b¼ið /ÐTVÔT]ð /ÐmoÔmvð /ð /ð /ñ „ð/ðð ð ð[ð [ð [ð6ð ð ð ð �IÔ*ñ ô ð ð* d¨3°¨8¤nð *¸¸tÀCÈÀH¼~ÈtÐTWÐYbÔYoÐToÔOpÐ?pÔ9qð *ð *ð *ð *ð *ð *r#   