ó
    �~i
  ã                   ój   • S SK JrJr  S SKJrJrJrJr   " S S\5      r " S S\S9r	 " S S	\	5      r
g
)é    )ÚABCMetaÚabstractmethod)ÚCallableÚListÚProtocolÚSequencec                   ó6   • \ rS rSrS\S\\   S\\   4S jrSr	g)ÚBenchmarkeré   Úkernel_callÚ	quantilesÚreturnc                ó   • g ©N© )Úselfr   r   Úkwargss       ÚS/home/mande/repo/quber/.venv/lib/python3.13/site-packages/triton/backends/driver.pyÚ__call__ÚBenchmarker.__call__   ó   € Øó    r   N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   Úfloatr   r   Ú__static_attributes__r   r   r   r
   r
      s'   † ð Hð ¸DÀ¹Kð ÐV^Ð_dÑVe÷ r   r
   c                   óŒ   • \ rS rSr\\S 5       5       r\S\S\4S j5       r\S 5       r	\S 5       r
\S\4S j5       rSS
 jrSrg	)Ú
DriverBaseé   c                 ó   • g r   r   ©r   s    r   Ú	is_activeÚDriverBase.is_active   s   € ð 	r   Útyr   c                 ó   • g)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.
Nr   )r   r&   s     r   Úmap_python_to_cpp_typeÚ!DriverBase.map_python_to_cpp_type   s   € ð 	r   c                 ó   • g r   r   r#   s    r   Úget_current_targetÚDriverBase.get_current_target   ó   € àr   c                 ó   • g r   r   r#   s    r   Úget_active_torch_deviceÚ"DriverBase.get_active_torch_device#   r-   r   c                 ó   • [         e)zK
Return the benchmarking function that this backend should use by default.
)ÚNotImplementedErrorr#   s    r   Úget_benchmarkerÚDriverBase.get_benchmarker'   s
   € ô
 "Ð!r   Nc                 ó   • g r   r   r#   s    r   Ú__init__ÚDriverBase.__init__.   r   r   r   )r   N)r   r   r   r   Úclassmethodr   r$   Ústrr(   r+   r/   r
   r3   r6   r   r   r   r   r    r       s†   † àØñó ó ðð ð
¨ð 
°ó 
ó ð
ð ñó ðð ñó ðð ð" ó "ó ð"÷r   r    )Ú	metaclassc                   ó    • \ rS rSrS rS rSrg)Ú	GPUDriveré2   c                 ó   ^• SS K mTR                  R                  U l         SSKJn  Xl        TR                  R                  U l        TR                  R                  U l
        g ! [         a    U4S jU l         NNf = f)Nr   )Ú_cuda_getCurrentRawStreamc                 óN   >• TR                   R                  U 5      R                  $ r   )ÚcudaÚcurrent_streamÚcuda_stream)ÚidxÚtorchs    €r   Ú<lambda>Ú$GPUDriver.__init__.<locals>.<lambda><   s   ø€ °%·*±*×2KÑ2KÈCÓ2P×2\Ò2\r   )rE   rA   Úget_device_capabilityÚtorch._Cr?   Úget_current_streamÚImportErrorÚcurrent_deviceÚget_current_deviceÚ
set_deviceÚset_current_device)r   r?   rE   s     @r   r6   ÚGPUDriver.__init__4   sh   ø€ ãØ%*§Z¡Z×%EÑ%EˆÔ"ð	]Ý:Ø&?Ô#ð #(§*¡*×";Ñ";ˆÔØ"'§*¡*×"7Ñ"7ˆÕøô ó 	]Ü&\ˆDÖ#ð	]ús   ¢A% Á%A=Á<A=c                 ó   • U$ r   r   )r   Útensormaps_infoÚargss      r   Úassemble_tensormap_to_argÚ#GPUDriver.assemble_tensormap_to_argA   s   € Øˆr   )rM   rJ   rH   rO   N)r   r   r   r   r6   rT   r   r   r   r   r<   r<   2   s   † ò
8õr   r<   N)Úabcr   r   Útypingr   r   r   r   r
   r    r<   r   r   r   Ú<module>rX      s3   ðß 'ß 5Ó 5ô�(ô ô$˜7ò $ôN�
õ r   