§
    ÕóÉ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 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Zi deej        ej        fi¥d„ eD ¦   «         ¥Zi e¥deej        ej        fi¥Zdededefd„Zde dedefd„Z!de dede"eef         fd„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ÚsizeÚseq_idÚmetric_value_sizec                 óš  — d}|dz   }t          j        ||d¬¦  «        |z  }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   ||¬¦  «         ŒJd S )Né€   é   Úrelaxed©Úsemr   )Úmask)ÚtlÚ
atomic_addÚstoreÚcdivÚarangeÚrangeÚload)Ú
device_ptrÚdevice_offset_ptrr   r   Úmetric_value_ptrr   Ú
BLOCK_SIZEÚrecord_sizeÚdevice_offsetÚ	num_itersÚoffsetsÚiÚcur_offsetsr   Úmetric_values                  ú{/home/lighthouse/badge-speaker-benchmark/.benchmark-venv-community/lib64/python3.11/site-packages/triton/profiler/metric.pyÚtensor_metric_kernelr#   	   s  € ð  #€JØ# aÑ'€Kõ ”MÐ"3°[ÀiÐPÑPÔPÐSWÑW€MÝ„HˆZ˜-Ñ'¨Ñ0Ô0Ð0Ø" QÑ&¨$Ñ.€MÝ”Ð)¨:Ñ6Ô6€IÝŒi˜˜:Ñ&Ô&€GÝŒX�a˜Ñ#Ô#ð ]ð ]ˆØ  J¡Ñ.ˆØÐ.Ò.ˆÝ”wÐ/°+Ñ=ÀDÐIÑIÔIˆÝ
Œ�˜}¨{Ñ:¸dÑBÑBÀLÐW[Ð\Ñ\Ô\Ð\Ð\ð	]ð ]ó    r!   c                 óª   — t          j        |dd¬¦  «        |z  }t          j        | |z   |¦  «         |dz   |z  }t          j        | |z   |¦  «         d S )Né   r   r   r   )r   r   r   )r   r   r   r   r!   r   s         r"   Úscalar_metric_kernelr'      sc   € õ ”MÐ"3°Q¸IÐFÑFÔFÈÑM€MÝ„HˆZ˜-Ñ'¨Ñ0Ô0Ð0Ø" QÑ&¨$Ñ.€MÝ„HˆZ˜-Ñ'¨Ñ6Ô6Ð6Ð6Ð6r$   c                 ó$  —  | j         |dddœŽ}|                     ¦   «          t          |j        dd ¦  «        }t          |dd ¦  «        }|€#t          j                             ¦   «         j        }|j        j        |z  }|j	        ||j        j
        fS )N)r   r   )ÚgridÚ	num_warpsÚtargetÚ	warp_size)ÚwarmupÚ_init_handlesÚgetattrÚmetadataÚdriverÚactiveÚget_current_targetr,   r*   ÚfunctionÚshared)Ú	kernel_fnÚargsÚkernelr+   r,   Únum_threadss         r"   Ú_get_kernelr:   &   s�   € ØˆYÔ˜t¨%¸1Ð=Ð=Ð=€FØ
×ÒÑÔÐÝ�V”_ h°Ñ5Ô5€FÝ˜ ¨TÑ2Ô2€IØÐÝ”M×4Ò4Ñ6Ô6Ô@ˆ	Ø”/Ô+¨iÑ7€KØŒ?˜K¨¬Ô)?Ð?Ð?r$   c            	      óh  — 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'   r1   r2   Úget_current_deviceÚget_current_streamÚ	libprotonÚset_metric_kernels)Úmock_ptrÚmock_seq_idÚ	mock_sizeÚmock_metric_value_sizeÚtensor_metric_kernel_fnÚ tensor_metric_kernel_num_threadsÚtensor_metric_kernel_sharedÚscalar_metric_kernel_fnÚ scalar_metric_kernel_num_threadsÚscalar_metric_kernel_sharedÚdeviceÚstreams               r"   r@   r@   1   sà   € Ý�"œ)Ñ$Ô$€HØ€KØ€IØÐÝ]hÝØØØØØØñ^ô ^ÑZÐÐ=Ð?Zõ ^iÝØØØØØñ^ô ^ÑZÐÐ=Ð?Zõ Œ]×-Ò-Ñ/Ô/€FÝŒ]×-Ò-¨fÑ5Ô5€FÝÔ ØØØØ(Ø#Ø(Ø#ñô ð ð ð r$   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"   rR   z_TensorMetric.__init__V   s=   ø€ Ý‰Œ×Ò˜ŸšÑ)Ô)Ð+<¸e¿kºk¹m¼mÑLÔLÐLàˆŒˆˆr$   )Ú__name__Ú
__module__Ú__qualname__rR   Ú__classcell__)rY   s   @r"   rN   rN   T   s8   ø€ € € € € ðð ð ð ð ð ð ð ð r$   rN   )é   é   é    é@   Úflopsc                 óR   — i | ]$}d |› �t           t          j        t          j        f“Œ%S )rb   )Úfloatr?   Úmetric_type_double_indexÚmetric_type_vector_double_index)Ú.0Úwidths     r"   ú
<dictcomp>ri   _   s=   € ð ð ð àð 	�ˆˆ�%¥Ô!CÅYÔEnÐoðð ð r$   ÚbytesrW   ÚconvertÚreturnc                 ó  ‡— t          | d¦  «        r@|                      ¦   «         dk    r|                      ¦   «         n|                      ¦   «         } t	          | t
          t          f¦  «        rˆfd„| D ¦   «         S  ‰| ¦  «        S )NrS   r   c                 ó&   •— g | ]} ‰|¦  «        ‘ŒS © ro   )rg   Úvrk   s     €r"   ú
<listcomp>z+_scalar_or_vector_value.<locals>.<listcomp>n   s!   ø€ Ð*Ð*Ð*˜q��˜‘
”
Ð*Ð*Ð*r$   )ÚhasattrrT   ÚtolistÚitemÚ
isinstanceÚlistÚtuple)rW   rk   s    `r"   Ú_scalar_or_vector_valuerx   j   s   ø€ Ýˆu�jÑ!Ô!ð FØ"'§+¢+¡-¤-°!Ò"3Ð"3�—’‘”�¸¿º¹¼ˆÝ�%�$¥˜Ñ'Ô'ð +Ø*Ð*Ð*Ð* EÐ*Ñ*Ô*Ð*Øˆ7�5‰>Œ>Ðr$   Úkeyc                 óZ   — | t           v r!t           |          \  }}}t          ||¦  «        S |S rP   )ÚROOFLINE_DTYPESrx   )ry   rW   rk   Ú_s       r"   Ú_scalar_metric_valuer}   r   s4   € ð �oÐÐÝ'¨Ô,‰ˆ��AÝ& u¨gÑ6Ô6Ð6Ø€Lr$   c                 ó  — | t           v r]t           |          \  }}}| dk    r|                     ¦   «         n|                     ¦   «         }||                     ¦   «         dk    r|n|fS |                     ¦   «         rH|                     ¦   «         }|                     ¦   «         dk    r|t
          j        fS |t
          j        fS |                     ¦   «         }|                     ¦   «         dk    r|t
          j        fS |t
          j	        fS )Nrj   r   )
r{   ÚlongÚdoublerT   Úis_floating_pointr?   rf   re   Úmetric_type_vector_int64_indexÚmetric_type_int64_index)ry   rW   r|   Úscalar_indexÚvector_indexs        r"   Ú_tensor_metric_value_and_indexr†   {   sî   € Ø
�oÐÐÝ(7¸Ô(<Ñ%ˆˆ<˜Ø # w¢ �—
’
‘”�°E·L²L±N´NˆØ e§k¢k¡m¤m°aÒ&7Ð&7�l�l¸\ÐIÐIð ×ÒÑ Ô ð 9Ø—’‘”ˆØ�;Š;‰=Œ=˜1ÒÐØ�)ÔCÐCÐCØ•iÔ8Ð8Ð8à�JŠJ‰LŒL€EØ‡{‚{�}„}�qÒÐØ•iÔ>Ð>Ð>Ø•)Ô3Ð3Ð3r$   Úmetricsc                 ó"  — i }i }|                       ¦   «         D ]s\  }}t          |d¦  «        rK|j        j        dk    rt	          ||¦  «        ||<   Œ9t          ||¦  «        \  }}t          ||¦  «        ||<   Œ`t	          ||¦  «        ||<   Œt||fS )NrS   Úcpu)Úitemsrr   rK   Útyper}   r†   rN   )r‡   Útensor_metricsÚscalar_metricsry   rW   Úmetric_indexs         r"   Útransform_tensor_metricsr�   Ž   s°   € Ø€NØ%'€NØ—m’m‘o”oð Cð C‰
ˆˆUÝ�5˜*Ñ%Ô%ð 	CØŒ|Ô  EÒ)Ð)Ý&:¸3ÀÑ&FÔ&F�˜sÑ#Ð#å&DÀSÈ%Ñ&PÔ&PÑ#��|Ý&3°E¸<Ñ&HÔ&H�˜sÑ#Ð#å"6°s¸EÑ"BÔ"BˆN˜3ÑÐØ˜>Ð)Ð)r$   )&Útypingr   Útriton._C.libprotonr   r?   Útriton.runtime.driverÚruntimer1   Útriton.languageÚlanguager   Útritonr   Újitr<   r#   r'   r:   r@   ÚTensorMetricrN   ÚFLOPS_WIDTHSrd   re   rf   ÚFLOPS_DTYPESÚintrƒ   r‚   r{   r‹   rx   Ústrr}   rw   r†   Údictr�   ro   r$   r"   ú<module>rž      s”  ðØ Ð Ð Ð Ð Ð Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð ð „ð]¸b¼ið ]ÐQSÔQZð ]Ø,.¬Ið]ð ]ð ]ñ „ð]ð& „ð7¸b¼ið 7ÐQSÔQZð 7ÐjlÔjsð 7ð 7ð 7ñ „ð7ð@ð @ð @ð ð  ð  ðFð ð ð ð �IÔ*ñ ô ð ð €ðØ�˜	Ô:¸IÔ<eÐfÐgððð à!ðñ ô ð€ðØðàˆc�9Ô4°iÔ6^Ð_ðð €ð 3ð °ð ¸#ð ð ð ð ð˜cð ¨#ð °#ð ð ð ð ð4¨ð 4°Cð 4¸EÀ#ÀsÀ(¼Oð 4ð 4ð 4ð 4ð&* d¨3°¨8¤nð *¸¸tÀCÈÀH¼~ÈtÐTWÐYbÔYoÐToÔOpÐ?pÔ9qð *ð *ð *ð *ð *ð *r$   