+
    Š°³jƒ  ã                   ó¶   € ^ RI HtHt ^ RIt^ RIHtHtHtHt ^ RI	H
t
 ^ RIHt R tR tR tR	 tR
 tR t ! R R]4      t ! R R]R7      t ! R R]4      tR# )é    )ÚABCMetaÚabstractmethodN)ÚCallableÚListÚProtocolÚSequence)Úfind_paths_if©Úmake_tensordesc_argsc                 ó²   € V P                   .V P                  OV P                  OV P                  R 8H  NV P                  NV P                  OV P                  O# )Únan)ÚbaseÚshapeÚstridesÚpaddingÚround_f32_to_tf32©Úargs   &ÚW/home/luca/screen-checking/.venv/lib/python3.14/site-packages/triton/backends/driver.pyÚdecompose_descriptorr   	   sT   € ð �H‰HÐv�s—y‘yÐv 3§;¡;Ðv°·±¸uÑ0DÐvÀc×F[ÑF[ÐvÐ^a×^gÑ^gÐvÐjm×juÑjuÐvÐvó    c                 óT   € \        V \        4      ;'       d    V P                  R 4      # )Ú
tensordesc)Ú
isinstanceÚstrÚ
startswithr   s   &r   Ú_is_descriptorr      s    € Ü�cœ3Ó×@Ð@ C§N¡N°<Ó$@Ð@r   c                 óä   a aaaa	€ \        SP                  4       4      o\        SR  4      p\        V4      ^ 8X  d   S # / o	V F   pS	pV F  pVP	                  V/ 4      pK  	  K"  	  V VV	VV3R lpV# )c                 ó   € \        V4      # ©N)r   )Ú_Úxs   &&r   Ú<lambda>Ú-wrap_handle_tensordesc_impl.<locals>.<lambda>   s	   € ¼^ÈAÔ=Nr   c                  óV   <€ V R R pV R,          p\        VSSSVS4      pS! . VOVN5!  # )Néÿÿÿÿr
   )	ÚargsÚ	base_argsÚkernel_argsÚwrappedÚlauncherÚmake_tensordesc_argÚrelevant_pathsÚ	signatureÚtensordesc_metas	   *   €€€€€r   ÚinnerÚ*wrap_handle_tensordesc_impl.<locals>.inner"   sH   ø€ Ø˜˜"�Iˆ	Ø˜2•hˆÜ&ØØØØØØó
ˆñ Ð,˜Ð, GÓ,Ð,r   )ÚtupleÚvaluesr	   ÚlenÚ
setdefault)
r+   r.   r/   r,   Útensordesc_pathsÚpathÚcurÚstepr0   r-   s
   ffff     @r   Úwrap_handle_tensordesc_implr:      sx   ü€ Ü�i×&Ñ&Ó(Ó)€IÜ$ YÑ0NÓOÐÜ
ÐÓ Ô!Øˆð
 €NÛ ˆØˆÛˆDØ—.‘.  rÓ*ŠCó ñ !÷
-ñ -ð €Lr   c                 óD  € \         P                  ! R V 4      pV'       g   Q RV  24       hVP                  ^4      pVP                  ^4      pVP                  R4      ^,           p\         P                  ! RV 4      pV'       d   \        VP                  ^4      4      MTpW&3# )z+tensordesc(?:_im2col)?<([^[>]*)\[([^\]]*)\]z"Malformed tensor descriptor type: Ú,z,input_rank=(\d+))ÚreÚmatchÚgroupÚcountÚsearchÚint)Ú
descriptorr>   ÚdtypeÚblock_shapeÚ
block_ndimÚ
rank_matchÚndims   &      r   Ú_parse_descriptorrI   2   s‰   € Ü�HŠHÐCÀZÓP€EßÐCÐ6°z°lÐCÓCˆ5à�K‰K˜‹N€EØ—+‘+˜a“.€KØ×"Ñ" 3Ó'¨!Õ+€Jä—’Ð/°Ó<€Jß'1Œ3ˆz×Ñ Ó"Ô#°z€DØˆ=Ðr   c                 ó¬  € \        V 4      w  r4. pV'       gf   VP                  R V,           4       \        ^V,          4       F  pVP                  R4       K  	  VP                  R4       VP                  R4       MVP                  V4       \        V4       F  pVP                  R4       K  	  \        V4       F  pVP                  R4       K  	  V# )Ú*Úi64Úi1Úi32)rI   ÚappendÚrange)rC   Úhas_tensordesc_metaÚdescriptor_typerD   rH   Úexpandedr!   s   &&&    r   Ú_expand_descriptorrT   ?   s£   € Ü# JÓ/�K€EØ€H÷ Ø�‰˜˜e�Ô$Ü�q˜4•x–ˆAØ�O‰O˜EÖ"ñ !à�‰˜ÔØ�‰˜Õà�‰˜Ô(ä�4Ž[ˆØ�‰˜Öñ ä�4Ž[ˆØ�‰˜Öñ à€Or   c                 ó\   aaa€ \        V4      o. pVVV3R  lo. pV  F  pS! WC4       K  	  V# )c                 ó  <€ \        V 4      '       d   VP                  \        V SS4      4       R # \        V \        4      '       d0   . pV  F  pS! W24       K  	  VP                  \	        V4      4       R # VP                  V 4       R # r    )r   ÚextendrT   r   r2   rO   )r.   Úresultr0   ÚsrR   rQ   Úvisits   &&  €€€r   rZ   Úexpand_signature.<locals>.visitZ   sg   ø€ Ü˜)×$Ò$Ø�M‰MÔ,¨YÐ8KÈ_Ó]Ô^ÙÜ˜	¤5×)Ò)ØˆEÛ�Ù�a–ñ à�M‰Mœ% ›,Ö'à�M‰M˜)Ö$r   )Úbool)r.   r/   rR   rX   rY   rQ   rZ   s   &&f  @@r   Úexpand_signaturer]   U   s6   ú€ Ü˜Ó/Ðà€F÷
%ð €FÛˆÙˆaÖñ à€Mr   c                   ó2   a € ] tR t^lt o V 3R lR ltRtV tR# )ÚBenchmarkerc                óL   <€ V ^8„  d   QhRS[ RS[S[,          RS[S[,          /# )é   Úkernel_callÚ	quantilesÚreturn)r   r   Úfloatr   )ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚBenchmarker.__annotate__n   s-   ø€ ÷ ñ ¡Hð ¹DÁ½Kð ÑV^Ñ_dÕVeñ r   c               ó   € R # r    © )Úselfrb   rc   Úkwargss   &&$,r   Ú__call__ÚBenchmarker.__call__n   ó   € Ùr   rk   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rn   Ú__static_attributes__Ú__classdictcell__©rg   s   @r   r_   r_   l   s   ø‡ € ÷ö r   r_   c                   ó¶   a € ] tR t^rt o ]]R 4       4       t]V 3R lR l4       t]R 4       t]R 4       t	]V 3R lR l4       t
V 3R lR	 ltV 3R
 lR ltRtV tR# )Ú
DriverBasec                ó   € R # r    rk   ©rl   s   &r   Ú	is_activeÚDriverBase.is_activet   s   € ñ 	r   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# )ra   Útyrd   )r   )rf   rg   s   "€r   rh   ÚDriverBase.__annotate__z   s   ø€ ÷ 
ñ 
©ð 
±ñ 
r   c                ó   € R# )zÉ
Converts a Triton type string to its corresponding C++ type string for this backend.

Args:
    ty (str): The Triton type string. e.g., 'i32', '*fp16', 'fp32'.

Returns:
    str: The C++ type string.
Nrk   )rl   r   s   &&r   Úmap_python_to_cpp_typeÚ!DriverBase.map_python_to_cpp_typey   s   € ñ 	r   c                ó   € R # r    rk   r{   s   &r   Úget_current_targetÚDriverBase.get_current_target†   ó   € ár   c                ó   € R # r    rk   r{   s   &r   Úget_active_torch_deviceÚ"DriverBase.get_active_torch_deviceŠ   r‡   r   c                ó    <€ V ^8„  d   QhRS[ /# )ra   rd   )r_   )rf   rg   s   "€r   rh   r€   �   s   ø€ ÷ "ñ "¡ñ "r   c                ó   € \         h)zK
Return the benchmarking function that this backend should use by default.
©ÚNotImplementedErrorr{   s   &r   Úget_benchmarkerÚDriverBase.get_benchmarkerŽ   s
   € ô
 "Ð!r   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# ©ra   ÚsizeÚ	alignment©rB   )rf   rg   s   "€r   rh   r€   •   s   ø€ ÷ "ñ "±Sð "ÁSñ "r   c                ó   € \         h)zU
Allocate profile scratch when no explicit profile allocator override was installed.
r�   )rl   r“   r”   Ústreams   &&&&r   Ú allocate_default_profile_scratchÚ+DriverBase.allocate_default_profile_scratch•   s
   € ô "Ð!r   c                ó   <€ V ^8„  d   QhRR/# )ra   rd   Nrk   )rf   rg   s   "€r   rh   r€   ›   s   ø€ ÷ ñ ˜$ñ r   c                ó   € R # r    rk   r{   s   &r   Ú__init__ÚDriverBase.__init__›   rp   r   rk   N)rq   rr   rs   rt   Úclassmethodr   r|   r‚   r…   r‰   r�   r˜   rœ   ru   rv   rw   s   @r   ry   ry   r   sƒ   ø‡ € àØñó ó ðð ÷
ó ð
ð ñó ðð ñó ðð ÷"ó ð"÷"ð "÷ö r   ry   )Ú	metaclassc                   ó>   a € ] tR t^Ÿt o R tR tV 3R lR ltRtV tR# )Ú	GPUDriverc                ó  a€ ^ RI oSP                  P                  V n         ^ RIHp Wn        SP                  P                  V n        SP                  P                  V n
        R#   \         d    T3R lT n         LPi ; i)r   N)Ú_cuda_getCurrentRawStreamc                 óN   <€ SP                   P                  V 4      P                  # r    )ÚcudaÚcurrent_streamÚcuda_stream)ÚidxÚtorchs   &€r   r#   Ú$GPUDriver.__init__.<locals>.<lambda>©   s   ø€ °%·*±*×2KÑ2KÈCÓ2P×2\Ò2\r   )r©   r¥   Úget_device_capabilityÚtorch._Cr£   Úget_current_streamÚImportErrorÚcurrent_deviceÚget_current_deviceÚ
set_deviceÚset_current_device)rl   r£   r©   s   & @r   rœ   ÚGPUDriver.__init__¡   sh   ø€ ãØ%*§Z¡Z×%EÑ%EˆÔ"ð	]Ý:Ø&?Ô#ð #(§*¡*×";Ñ";ˆÔØ"'§*¡*×"7Ñ"7ˆÖøô ô 	]Ü&\ˆDÖ#ð	]ús   ¢A& Á&A?Á>A?c                ó   € V# r    rk   )rl   Útensormaps_infor'   s   &&&r   Úassemble_tensormap_to_argÚ#GPUDriver.assemble_tensormap_to_arg®   s   € Øˆr   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# r’   r•   )rf   rg   s   "€r   rh   ÚGPUDriver.__annotate__±   s   ø€ ÷ ñ ±Sð ÁSñ r   c                óN  € ^ RI pV P                  4       pV P                  4       pVf   VP                  WP                  VR7      # V^ 8X  dQ   VP                  VP                  V4      4      ;_uu_ 4        VP                  WP                  VR7      uuRRR4       # VP                  W5R7      pVP                  V4      ;_uu_ 4        VP                  WP                  VR7      pRRR4       XP                  V4       V#   + '       g   i     Lt; i  + '       g   i     L6; i)r   N)rD   Údevice)r»   )	r©   r‰   Úget_device_interfaceÚzerosÚint8r—   Údefault_streamÚExternalStreamÚrecord_stream)	rl   r“   r”   r—   r©   r»   Údevice_interfaceÚlaunch_streamÚscratchs	   &&&&     r   r˜   Ú*GPUDriver.allocate_default_profile_scratch±   sä   € ÛØ×-Ñ-Ó/ˆØ×4Ñ4Ó6ÐØŠ>Ø—;‘;˜t¯:©:¸f�;ÓEÐEØ�QŒ;Ø!×(Ñ(Ð)9×)HÑ)HÈÓ)P×QÕQØ—{‘{ 4¯z©zÀ&�{ÓI÷ RÒQà(×7Ñ7¸Ð7ÓNˆØ×$Ñ$ ]×3Õ3Ø—k‘k $¯j©jÀ�kÓHˆG÷ 4à×Ñ˜mÔ,Øˆ÷ R×Qú÷ 4×3ús   Á5DÃDÄD	ÄD$	)r°   r­   r«   r²   N)	rq   rr   rs   rt   rœ   r¶   r˜   ru   rv   rw   s   @r   r¡   r¡   Ÿ   s   ø‡ € ò
8ò÷ö r   r¡   )Úabcr   r   r=   Útypingr   r   r   r   Útriton._utilsr	   Útriton._C.libtritonr   r   r   r:   rI   rT   r]   r_   ry   r¡   rk   r   r   Ú<module>rÊ      s\   ðß 'Û 	ß 5Ó 5å 'Ý 4òwòAòò>
òò,ô.�(ô ô*˜7õ *ôZ�
ö r   