+
    Š°³j…@  ã                   óÄ  € ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
HtHtHt ^ RIHt ^ RIHt ]P$                  P'                  ]P$                  P)                  ]4      4      t]P$                  P-                  ]R4      .tRsRsRsRsRsR	 t] P<                  ! 4       R
 4       t ! R R] 4      t!R t"R t#R t$R t%R t& ! R R] 4      t' ! R R]
4      t(R# )é    N)ÚPath)Úknobs)Ú	GPUTarget)Ú	GPUDriverÚdecompose_descriptorÚexpand_signatureÚwrap_handle_tensordesc_impl)Ú_allocation)Úcompile_module_from_srcÚincludec                 ó  a aaaa€ ^ RI pVP                  4       R8w  d   R# ^ RIo^ RIHpHpHpHoHoHp  ! VV3R lRSP                  4      pSP                  W5! V4      V! V4      V! V4      4      p SP                  R4      P                  pTS.Tn        Y8n        RoSP!                  S^,           4      p	TT T3R lp
T! T! T
4      T	4      '       d&   \"        P$                  ! SP'                  T	4      4      # R#   \         d     R# i ; i)	r   NÚLinux)Úc_charÚc_intÚc_size_tÚc_void_pÚc_char_pÚPOINTERc                   ó,   <€ ] tR t^ tR Z3R Z 3.tRtR# )Ú8_find_already_mmapped_dylib_on_linux.<locals>.DlPhdrInfoÚ	dlpi_addrÚ	dlpi_name© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú_fields_Ú__static_attributes__)r   r   s   €€Ú[/home/luca/screen-checking/.venv/lib/python3.14/site-packages/triton/backends/amd/driver.pyÚ
DlPhdrInfor       s   ø† à™(Ð#Ø™(Ð#ð
Œó    r!   z	libc.so.6i   c           
      óâ   <€ V P                   P                  p\        \        P                  ! V4      4      pSVP
                  9   d(   SP                  W#\        S\        V4      4      4       ^# ^ # )é   )	Úcontentsr   r   ÚosÚfsdecodeÚnameÚmemmoveÚminÚlen)ÚinfoÚsizeÚdatar   ÚpÚctypesÚlib_nameÚmax_path_lengths   &&&  €€€r    ÚcallbackÚ6_find_already_mmapped_dylib_on_linux.<locals>.callback7   sP   ø€ Ø—M‘M×+Ñ+ˆ	Ü”—’˜YÓ'Ó(ˆØ�q—v‘vÔà�N‰N˜4¬C°ÄÀYÃÓ,PÔQÙÙr"   )ÚplatformÚsystemr0   r   r   r   r   r   r   Ú	StructureÚ	CFUNCTYPEÚCDLLÚdl_iterate_phdrÚ	ExceptionÚargtypesÚrestypeÚcreate_string_bufferr&   r'   Ú	string_at)r1   r5   r   r   r   r   r!   Ú
callback_tr:   Úpathr3   r   r   r0   r2   s   f          @@@@r    Ú$_find_already_mmapped_dylib_on_linuxrB      sõ   ü€ ÛØ‡�Ó˜GÔ#Ùó
 ßK×K÷
ð 
�V×%Ñ%ô 
ð ×!Ñ! %¨°Ó)<¹gÀhÓ>OÑQXÐY_ÓQ`Óa€JðØ Ÿ+™+ kÓ2×BÑBˆð !+¨HÐ5€OÔØ#Ôà€OØ×&Ñ& ¸Õ':Ó;€D÷ñ ‘z (Ó+¨T×2Ò2Ü�{Š{˜6×+Ñ+¨DÓ1Ó2Ð2Ùøô+ ô Úðús   Á4C< Ã<DÄ
Dc                  ó’
  € R p \         P                  P                  ;p'       dP   VP                  V 4      '       d(   \        P
                  P                  V4      '       d   V# \        RV RV  24      h\        V 4      pV'       d9   \        P
                  P                  V4      '       d   V# \        RV RV  24      h. p\        P
                  P                  \        P
                  P                  \        4      RV 4      p\        P
                  P                  V4      '       d   V# VP                  V4       ^ RIpVP                  4       pVP                  4       pVP                   '       d   V.V,           pV F_  p\        P
                  P                  VRRV 4      p\        P
                  P                  V4      '       d   Vu # VP                  V4       Ka  	  \        P"                  ! R4      p	V	'       dr   V	P%                  R	4       F\  p
\        P
                  P                  W 4      p\        P
                  P                  V4      '       d   Vu # VP                  V4       K^  	  \        P"                  ! R
4      pV'       dZ   \        P
                  P                  VRV 4      p\        P
                  P                  V4      '       d   V# VP                  V4        \&        P(                  ! RR.4      P+                  4       P-                  4       pV'       dZ   \        P
                  P                  VRV 4      p\        P
                  P                  V4      '       d   V# VP                  V4       \        P"                  ! R4      pT'       dZ   \        P
                  P                  TRT 4      p\        P
                  P                  T4      '       d   T# TP                  T4       \&        P(                  ! RR.4      P+                  RR7      pTP3                  4        Uu. uFA  pTP-                  4       P                  T 4      '       g   K*  TP%                  4       R,          NKC  	  ppT F=  p\        P
                  P                  T4      '       d   Tu # TP                  T4       K?  	  \        P
                  P                  RT 4      p\        P
                  P                  T4      '       d   T# TP                  T4       \        RT  RT 24      h  \&        P.                  \0        3 d     ELÄi ; iu upi )zlibamdhip64.sozTRITON_LIBHIP_PATH 'z' does not point to a valid zmemory mapped 'z'' in process does not point to a valid ÚlibNÚtorchÚLD_LIBRARY_PATHÚ:ÚHIP_PATHÚ	hipconfigz--pathÚ	ROCM_PATHz/sbin/ldconfigz-pÚignore)Úerrorsz/opt/rocm/lib/zcannot locate z after attempted paths éÿÿÿÿ)r   ÚamdÚlibhip_pathÚendswithr&   rA   ÚexistsÚRuntimeErrorrB   ÚjoinÚdirnameÚ__file__ÚappendÚsiteÚgetsitepackagesÚgetusersitepackagesÚENABLE_USER_SITEÚgetenvÚsplitÚ
subprocessÚcheck_outputÚdecodeÚstripÚCalledProcessErrorÚFileNotFoundErrorÚ
splitlines)r1   Úenv_libhip_pathÚmmapped_pathÚpathsÚ	local_librW   Úsite_packagesÚ	user_siterA   Úenv_ld_library_pathÚdÚfÚenv_hip_pathÚhip_lib_pathÚhip_rootÚenv_rocm_pathÚrocm_lib_pathÚlibsÚlineÚlocsÚlocÚcommon_install_paths                         r    Ú_get_path_to_hip_runtime_dylibrw   E   sï  € à€Hô  Ÿ)™)×/Ñ/Ð/€Ö/Ø×#Ñ# H×-Ò-´"·'±'·.±.À×2QÒ2QØ"Ð"ÜÐ1°/Ð1BÐB^Ð_gÐ^hÐiÓjÐjô 8¸ÓA€LßÜ�7‰7�>‰>˜,×'Ò'ØÐÜ˜_¨\¨NÐ:aÐbjÐakÐlÓmÐmà€Eô —‘—‘œRŸW™WŸ_™_¬XÓ6¸¸xÓH€IÜ	‡w�w‡~�~�i× Ò ØÐØ	‡L�L�Ôãð ×(Ñ(Ó*€MØ×(Ñ(Ó*€IØ××ÐØ"˜ mÕ3ˆÛˆÜ�w‰w�|‰|˜D '¨5°(Ó;ˆÜ�7‰7�>‰>˜$×ÒØŠKØ�‰�TÖñ	 ô Ÿ)š)Ð$5Ó6ÐßØ$×*Ñ*¨3Ö/ˆAÜ—‘—‘˜QÓ)ˆAÜ�w‰w�~‰~˜a× Ò Ø’Ø�L‰L˜ŽOñ	 0ô —9’9˜ZÓ(€LßÜ—w‘w—|‘| L°%¸ÓBˆÜ�7‰7�>‰>˜,×'Ò'ØÐØ�‰�\Ô"ð	Ü×*Ò*¨K¸Ð+BÓC×JÑJÓL×RÑRÓTˆßÜŸ7™7Ÿ<™<¨°%¸ÓBˆLÜ�w‰w�~‰~˜l×+Ò+Ø#Ð#Ø�L‰L˜Ô&ô —I’I˜kÓ*€MßÜŸ™Ÿ™ ]°E¸8ÓDˆÜ�7‰7�>‰>˜-×(Ò(Ø Ð Ø�‰�]Ô#ô ×"Ò"Ð$4°dÐ#;Ó<×CÑCÈ8ÐCÓT€Dð *.¯©Ô):Ó^Ñ): ¸d¿j¹j»l×>SÑ>SÐT\×>]ÔˆD�J‰J‹L˜×ÐÑ):€DÐ^ÛˆÜ�7‰7�>‰>˜#×ÒØŠJØ�‰�SÖñ ô Ÿ'™'Ÿ,™,Ð'7¸ÓBÐÜ	‡w�w‡~�~Ð)×*Ò*Ø"Ð"Ø	‡L�LÐ$Ô%ä
˜¨ zÐ1HÈÈÐPÓ
QÐQøô; ×)Ñ)Ô+<Ð=ô âðüò" _s1   Ë';T" Ì#AT" Í)T" Í+T" Ð-'UÑUÔ"UÕ Uc                   ó8   a a€ ] tR t^¥t oV 3R ltR tRtVtV ;t# )ÚHIPUtilsc                óp   <€ \        V R 4      '       g   \        \        V `  V 4      V n        V P                  # )Úinstance)ÚhasattrÚsuperry   Ú__new__r{   )ÚclsÚ	__class__s   &€r    r~   ÚHIPUtils.__new__§   s-   ø€ Ü�s˜J×'Ò'Ü ¤¨3Ñ7¸Ó<ˆCŒLØ�|‰|Ðr"   c                ó  € \        4       p\        \        P                  P	                  \
        R 4      4      P                  4       pVP                  RV^4      p\        VR\        R7      pVP                  V n
        VP                  V n        VP                  V n        VP                  V n        VP                  V n        VP                  V n        VP                   sVP"                  sVP$                  sVP&                  sVP(                  sR# )zdriver.cz/*py_libhip_search_path*/Ú	hip_utils)Úsrcr(   Úinclude_dirsN)rw   r   r&   rA   rS   rT   Ú	read_textÚreplacer   r…   Úload_binaryÚunload_moduleÚget_device_propertiesÚcreate_tdm_descriptorÚlaunchÚbuild_signature_metadataÚPyTDMDescriptorÚPyKernelArgÚARG_CONSTEXPRÚ
ARG_KERNELÚ	ARG_TUPLE)ÚselfrO   r„   Úmods   &   r    Ú__init__ÚHIPUtils.__init__¬   sÑ   € Ü4Ó6ˆÜ”2—7‘7—<‘<¤¨Ó4Ó5×?Ñ?ÓAˆð �k‰kÐ5°{ÀAÓFˆÜ%¨#°KÌlÔ[ˆØŸ?™?ˆÔØ ×.Ñ.ˆÔØ%(×%>Ñ%>ˆÔ"Ø%(×%>Ñ%>ˆÔ"Ø—j‘jˆŒØ(+×(DÑ(DˆÔ%ð ×-Ñ-ˆØ—o‘oˆØ×)Ñ)ˆØ—^‘^ˆ
Ø—M‘MŠ	r"   )r�   r‹   rŠ   rŒ   rˆ   r‰   )	r   r   r   r   r~   r•   r   Ú__classdictcell__Ú__classcell__©r€   Ú__classdict__s   @@r    ry   ry   ¥   s   ù‡ € õ÷
"ò "r"   ry   c                 ó”   € V P                  R 4      '       d   R# V R8X  d   R# RRRRRRR	R
RRRRRRRRRRRRRRRRRRRRRR/V ,          # )Ú*ÚhipDeviceptr_tÚ
tensordescÚTDMDescriptorÚi1Úint8_tÚi8Úi16Úint16_tÚi32Úint32_tÚi64Úint64_tÚu1Úuint8_tÚu8Úu16Úuint16_tÚu32Úuint32_tÚu64Úuint64_tÚfp16ÚdoubleÚbf16Úfp32Úf32Úfp64)Ú
startswith)Útys   &r    Ú	ty_to_cpprº   Ç   s~   € Ø	‡}�}�S×ÒÙØ	ˆ\ÔÙàˆhØˆhØˆyØˆyØˆyØˆiØˆiØˆzØˆzØˆzØ�Ø�Ø�ØˆxØ�ðð  	õ!
ð 
r"   c                óì   a€ V3R lo. pV  F  pS! W!4       K  	  V Uu. uF  q3R8w  g   K  VNK  	  pp\         P                  P                  P                  P                  P                  V4      # u upi )z^
Creates a kernel signature in C to be able to efficiently extract
arguments in the launcher.
c                 ó|   <€ \        V \        4      '       d   V  F  pS! W!4       K  	  R # VP                  V 4       R # ©N)Ú
isinstanceÚtuplerV   )ÚsigÚoutputÚxÚ_flatten_signatures   && €r    rÃ   Ú1make_kernel_signature.<locals>._flatten_signatureå   s0   ø€ ä�cœ5×!Ò!Û�Ù" 1Ö-ó ð �M‰M˜#Ör"   Ú	constexpr)ÚtritonÚruntimeÚdriverÚactiveÚutilsr�   )Ú	signatureÚflat_signaturerÀ   rÂ   Úkernel_signaturerÃ   s   &    @r    Úmake_kernel_signaturerÎ   ß   sk   ø€ õð €NÛˆÙ˜3Ö/ñ á#1ÓF¡>˜a¸+Ñ5EŸ˜¡>ÐÐFä�>‰>× Ñ ×'Ñ'×-Ñ-×FÑFÐGWÓXÐXùò Gs
   ŸA1¬A1c                ó0  € . pV  F�  p\        V\        4      '       d,   VP                  \        \	        V4      \
        R7      4       KD  VR8w  d#   VP                  \        R\        R7      4       Km  VP                  \        R\        R7      4       K�  	  V# )z˜
This recreates the signature with annotations as C objects which can then
be used to efficiently flatten tuples, and remove constexpr in the launcher.
)Únested_tupleÚtyperÅ   N)r¾   r¿   rV   r�   Úannotate_argumentsr’   r‘   r�   )rË   Úannotated_argumentsrÀ   s   &  r    rÒ   rÒ   õ   sx   € ð
 ÐÛˆÜ�cœ5×!Ò!Ø×&Ñ&¬ÔASÐTWÓAXÔ_hÔ(iÖkØ�KÔØ×&Ñ&¤{ÀÌ:Ô'VÖWà×&Ñ&¤{ÀÌ=Ô'YÖZñ ð Ðr"   c           
     óP  € Vf   \        V 4      # V^,          pV P                  pV P                  pV P                  P	                  4       pRV9   d   RV9   g   Q hVR,          pVR,          p^ ^ r©VP                  R. 4      pV'       d5   \        V4      ^8X  d   \        V^ ,          4      ^8X  g   Q hV^ ,          w  ršV^ ,          p\        P                  P                  P                  p\        V\        4      '       g   Q hVP                  P                  WxWÉW¤WV4      pV.VOVO# )ai  
Translate a tensor descriptor argument into the appropriate list of kernel
arguments. If `tensordesc_metadata` is provided, we will create a
TDMDescriptor object. Otherwise, we decompose the tensor descriptor into
base pointer, shape, strides, and padding flag. In both cases, we append the
shape and strides at the end to match the expected kernel signature.
Ú	elem_bitsÚ
block_sizeÚinterval_padding_pairs)r   ÚshapeÚstridesÚbaseÚdata_ptrÚgetr+   rÆ   rÇ   rÈ   rÉ   r¾   Ú	HIPDriverrÊ   r‹   )ÚargÚtensordesc_metadataÚ	base_argsÚkernel_metadatarØ   rÙ   rÚ   rÕ   rÖ   Úpad_intervalÚ
pad_amountr×   Ú	num_warpsrÈ   Údescs   &&&            r    Úmake_tensordesc_argræ     s$  € ð Ò"Ü# CÓ(Ð(à •l€OØ�I‰I€EØ�k‰k€GØ�8‰8×ÑÓ€DàÐ-Ô-°,ÐBUÔ2UÐUÐUØ# KÕ0€IØ$ \Õ2€JØ  !�*Ø0×4Ñ4Ð5MÈrÓRÐßÜÐ)Ó*¨aÔ/´CÐ8NÈqÕ8QÓ4RÐVWÔ4WÐWÐWØ#9¸!Õ#<Ñ ˆØ Õ"€Iä�^‰^×"Ñ"×)Ñ)€FÜ�fœi×(Ò(Ð(Ð(à�<‰<×-Ñ-¨iÀYÐ^hØ.5ó=€Dð Ð#�5Ð#˜7Ð#Ð#r"   c                ó$   € \        WV\        4      # )a�  
Wrap a kernel launcher function to handle tensor descriptor arguments.
Use the provided `tensordesc_metadata` to determine whether to create
TDMDescriptor objects or decompose the tensor descriptors.

Args:
    launcher (callable): The original kernel launcher function.
    signature (Dict[int, str]): The kernel signature mapping argument indices to types.
    tensordesc_metadata (List[Dict] or None): The list of tensor descriptor metadata, following the order
                                              of tensor descriptor arguments. If None, decompose tensor descriptors.
Returns:
    launcher (callable): The wrapped kernel launcher function.
)r	   ræ   )ÚlauncherrË   Útensordesc_metas   &&&r    Úwrap_handle_tensordescrê   )  s   € ô ' x¸OÔM`ÓaÐar"   c                   ó,   a € ] tR tRt o R tR tRtV tR# )ÚHIPLauncheri;  c                ó6  a€ \        SR 4      '       d   SP                  M	\        4       pV3R lpVP                  4        UUu/ uF  w  rVV! V4      VbK  	  pppSP                  P                  4        UUu/ uF  w  rVWVbK	  	  ppp\        VRR4      p\        P                  P                  P                  P                  P                  p	\        VP                  4       VR4      p
\        V
4      V n        \!        V
4      V n        \%        W—V4      V n        VP&                  V n        VP(                  V n        V P&                  '       d~   \        P                  P                  P                  p\+        V\,        4      '       g   Q hVP/                  4       pVP                  P1                  V4      pVR,          '       g   Q R4       hVP2                  V n        VP4                  V n        VP6                  V n        VP8                  V n        R# u uppi u uppi )Ú	constantsc                 ó€   <€ \        V \        4      '       d'   SP                  P                  P	                  V 4      3# T # r½   )r¾   ÚstrÚfnÚ	arg_namesÚindex)rÂ   r„   s   &€r    Ú<lambda>Ú&HIPLauncher.__init__.<locals>.<lambda>?  s2   ø€ ¼ZÈÌ3×=OÒ=O˜SŸV™V×-Ñ-×3Ñ3°AÓ6Ð9ÐVÐUVÐVr"   ré   Nrž   ÚcooperativeLaunchz8Cooperative launch requested but not supported by device)r|   rî   ÚdictÚitemsrË   ÚgetattrrÆ   rÇ   rÈ   rÉ   rÊ   rŒ   r   ÚvaluesrÒ   Úarg_annotationsrÎ   rÍ   rê   Úlaunch_cooperative_gridÚ	warp_sizer¾   rÝ   Úget_current_devicerŠ   Úglobal_scratch_sizeÚglobal_scratch_alignÚprofile_scratch_sizeÚprofile_scratch_align)r“   r„   Úmetadatarî   Úarg_idxÚidxÚvaluerË   ré   rè   Úexpanded_signaturerÈ   ÚdeviceÚdevice_propertiess   &f&           r    r•   ÚHIPLauncher.__init__=  s´  ø€ Ü%,¨S°+×%>Ò%>�C—M’MÄDÃFˆ	ÜVˆØ;D¿?¹?Ô;LÔMÑ;L©Z¨S‘W˜S“\ 5Ò(Ñ;Lˆ	ÑMØ25·-±-×2EÑ2EÔ2GÔHÑ2G¡J C�S’ZÑ2Gˆ	ÑHÜ! (Ð,=¸tÓDˆÜ—>‘>×(Ñ(×/Ñ/×5Ñ5×<Ñ<ˆÜ-¨i×.>Ñ.>Ó.@À/ÐS_Ó`ÐÜ1Ð2DÓEˆÔÜ 5Ð6HÓ IˆÔÜ,¨XÀ/ÓRˆŒØ'/×'GÑ'GˆÔ$Ø!×+Ñ+ˆŒà×'×'Ð'Ü—^‘^×*Ñ*×1Ñ1ˆFÜ˜f¤i×0Ò0Ð0Ð0Ø×.Ñ.Ó0ˆFØ &§¡× BÑ BÀ6Ó JÐØ$Ð%8×9Ô9ð KØJóKÐ9à#+×#?Ñ#?ˆÔ Ø$,×$AÑ$AˆÔ!Ø$,×$AÑ$AˆÔ!Ø%-×%CÑ%CˆÖ"ùó+ NùÛHs   ÁHÁ7Hc
                ó*  aaaaa€ \         P                  P                  P                  oVVVV3R  lpVVVVV3R lpV! V P                  V P
                  \        P                  4      p\        P                  ! 4       '       d.   V! V P                  V P                  \        P                  4      pMV! V P                  V P                  4      pV P                  V P                  SSSSW]WæWxV	V P                  V P                  V P                   V
4       R# )c                 óx   <€ V ^ 8”  d2   SS,          S,          pW0,          pVP                  4       pV! WAS	4      # R# ©r   N)rÜ   )
r-   ÚalignÚ	allocatorÚ	grid_sizeÚ
alloc_sizeÚalloc_fnÚgridXÚgridYÚgridZÚstreams
   &&&   €€€€r    Úallocate_scratchÚ.HIPLauncher.__call__.<locals>.allocate_scratch[  s;   ø€ Ø�aŒxØ! E�M¨EÕ1�	Ø&Õ-�
Ø$Ÿ=™=›?�Ù 
°6Ó:Ð:Ùr"   c                 ój   <€ V ^ 8”  d+   SS,          S,          pW ,          pSP                  W1S4      # R# r  )Ú allocate_default_profile_scratch)	r-   r  r  r  Úactive_driverr  r  r  r  s	   &&  €€€€€r    r  Ú>HIPLauncher.__call__.<locals>.allocate_default_profile_scratchc  s7   ø€ Ø�aŒxØ! E�M¨EÕ1�	Ø&Õ-�
Ø$×EÑEÀjÐY_Ó`Ð`Ùr"   N)rÆ   rÇ   rÈ   rÉ   rÿ   r   r
   Ú
_allocatorÚhas_profile_allocatorr  r  Ú_profile_allocatorrŒ   rü   rý   rû   rÍ   )r“   r  r  r  r  Úfunctionrá   Úlaunch_metadataÚlaunch_enter_hookÚlaunch_exit_hookÚargsr  r  Úglobal_scratchÚprofile_scratchr  s   &ffff&&&&&*    @r    Ú__call__ÚHIPLauncher.__call__W  sÞ   ü€ äŸ™×-Ñ-×4Ñ4ˆ÷	ð 	÷	ñ 	ñ *¨$×*BÑ*BÀD×D]ÑD]Ô_j×_uÑ_uÓvˆÜ×,Ò,×.Ò.Ù.¨t×/HÑ/HÈ$×JdÑJdÜ/:×/MÑ/MóO‰Oñ ?¸t×?XÑ?XÐZ^×ZtÑZtÓuˆOà�‰�D×0Ñ0°%¸ÀÀvÈxØ#°oÐZjØ—N‘N D×$8Ñ$8¸$×:OÑ:OÐQUö	Wr"   )	rû   r   rÿ   rÍ   rŒ   rü   r  r  rý   N)r   r   r   r   r•   r'  r   r—   )rš   s   @r    rì   rì   ;  s   ø‡ € òD÷4Wð Wr"   rì   c                   óx   a a€ ] tR tRt oV 3R ltR t]R 4       tV3R lR ltR t	R t
R	 tR
 tR tRtVtV ;t# )rÝ   iv  c                óX   <€ \         SV `  4        \        4       V n        \        V n        R # r½   )r}   r•   ry   rÊ   rì   Úlauncher_cls)r“   r€   s   &€r    r•   ÚHIPDriver.__init__x  s   ø€ Ü‰ÑÔÜ“ZˆŒ
Ü'ˆÖr"   c                ó"   € ^ RI pVP                  # r  )rE   Úcuda©r“   rE   s   & r    Úget_device_interfaceÚHIPDriver.get_device_interface}  s   € ÛØ�z‰zÐr"   c                 ó¤   €  ^ RI p V P                  P                  4       ;'       d    V P                  P                  RJ#   \
         d     R# i ; i)r   NF)rE   r.  Úis_availableÚversionÚhipÚImportError)rE   s    r    Ú	is_activeÚHIPDriver.is_active�  sF   € ð	ÛØ—:‘:×*Ñ*Ó,×PÐP°%·-±-×2CÑ2CÈ4Ð2OÐPøÜô 	Úð	ús   ‚$A  §A  Á AÁAc                ó&   <€ V ^8„  d   QhRS[ RS[ /# )é   r¹   Úreturn)rð   )Úformatrš   s   "€r    Ú__annotate__ÚHIPDriver.__annotate__‰  s   ø€ ÷ ñ ©ð ±ñ r"   c                ó   € \        V4      # r½   )rº   )r“   r¹   s   &&r    Úmap_python_to_cpp_typeÚ HIPDriver.map_python_to_cpp_type‰  s   € Ü˜‹}Ðr"   c                ó  € V P                  4       pV P                  P                  V4      p\        P                  P
                  ;'       g
    VR ,          pVR,          p\        RVP                  R4      ^ ,          V4      # )ÚarchÚwarpSizer5  rG   )rþ   rÊ   rŠ   r   rÇ   Úoverride_archr   r\   )r“   r  r	  rC  rý   s   &    r    Úget_current_targetÚHIPDriver.get_current_targetŒ  sh   € Ø×(Ñ(Ó*ˆØ ŸJ™J×<Ñ<¸VÓDÐÜ�}‰}×*Ñ*×GÐGÐ.?ÀÕ.GˆØ% jÕ1ˆ	Ü˜ §
¡
¨3£°Õ 2°IÓ>Ð>r"   c                óJ   € ^ RI pVP                  RV P                  4       4      # )r   Nr.  )rE   r  rþ   r/  s   & r    Úget_active_torch_deviceÚ!HIPDriver.get_active_torch_device“  s   € Ûà�|‰|˜F D×$;Ñ$;Ó$=Ó>Ð>r"   c                ó   € ^ RI Hp V# )r   )Údo_bench)Útriton.testingrL  )r“   rL  s   & r    Úget_benchmarkerÚHIPDriver.get_benchmarker˜  s
   € Ý+Øˆr"   c                ój   € ^ RI pRpVP                  \        V^,          4      VP                  RR7      # )r   Nr.  )Údtyper  i   )rE   ÚemptyÚint)r“   rE   Ú
cache_sizes   &  r    Úget_empty_cache_for_benchmarkÚ'HIPDriver.get_empty_cache_for_benchmarkœ  s.   € Ûð 'ˆ
Ø�{‰{œ3˜z¨Q�Ó/°u·y±yÈˆ{ÓPÐPr"   c                ó&   € VP                  4        R # r½   )Úzero_)r“   Úcaches   &&r    Úclear_cacheÚHIPDriver.clear_cache£  s   € Ø�‰Žr"   )r+  rÊ   )r   r   r   r   r•   r0  Ústaticmethodr7  r@  rF  rI  rN  rU  rZ  r   r—   r˜   r™   s   @@r    rÝ   rÝ   v  sL   ù‡ € õ(ò
ð ñó ð÷ð ò?ò?ò
òQ÷ò r"   rÝ   ))Ú	functoolsr&   r]   rÆ   Úpathlibr   r   Útriton.backends.compilerr   Útriton.backends.driverr   r   r   r	   Útriton.runtimer
   Útriton.runtime.buildr   rA   rT   ÚrealpathrU   rS   r…   rŽ   r�   r�   r‘   r’   rB   Ú	lru_cacherw   Úobjectry   rº   rÎ   rÒ   ræ   rê   rì   rÝ   r   r"   r    Ú<module>rf     sã   ðÛ Û 	Û Û Ý Ý Ý .ß qÓ qÝ &Ý 8à
�'‰'�/‰/˜"Ÿ'™'×*Ñ*¨8Ó4Ó
5€Ø—‘—‘˜W iÓ0Ð1€Ø€Ø€Ø€Ø€
Ø€	ò-ð` ×ÒÓñ\Ró ð\Rô~"ˆvô "òD
ò0Yò,ò !$òHbô$8W�&ô 8Wôv.�	ö .r"   