Ë
    Úéñi
  ã                   óp   — d dl mZmZ d dlmZmZmZmZ  G d„ de«      Z G d„ de¬«      Z	 G d„ d	e	«      Z
y
)é    )ÚABCMetaÚabstractmethod)ÚCallableÚListÚProtocolÚSequencec                   ó,   — e Zd Zdedee   dee   fd„Zy)ÚBenchmarkerÚkernel_callÚ	quantilesÚreturnc                 ó   — y ©N© )Úselfr   r   Úkwargss       úX/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/triton/backends/driver.pyÚ__call__zBenchmarker.__call__   ó   € Øó    N)Ú__name__Ú
__module__Ú__qualname__r   r   Úfloatr   r   r   r   r   r
   r
      s'   „ ð Hð ¸DÀ¹Kð ÐV^Ð_dÑVeô r   r
   c                   ó~   — e Zd Zeed„ «       «       Zededefd„«       Zed„ «       Zed„ «       Z	ede
fd„«       Zd
d	„Zy)Ú
DriverBasec                  ó   — y r   r   ©r   s    r   Ú	is_activezDriverBase.is_active   s   € ð 	r   Útyr   c                  ó   — y)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_typez!DriverBase.map_python_to_cpp_type   s   € ð 	r   c                  ó   — y r   r   r   s    r   Úget_current_targetzDriverBase.get_current_target   ó   € àr   c                  ó   — y r   r   r   s    r   Úget_active_torch_devicez"DriverBase.get_active_torch_device#   r%   r   c                 ó   — t         ‚)z[
        Return the benchmarking function that this backend should use by default.
        )ÚNotImplementedErrorr   s    r   Úget_benchmarkerzDriverBase.get_benchmarker'   s
   € ô
 "Ð!r   Nc                  ó   — y r   r   r   s    r   Ú__init__zDriverBase.__init__.   r   r   )r   N)r   r   r   Úclassmethodr   r   Ústrr"   r$   r'   r
   r*   r,   r   r   r   r   r      s†   „ àØñó ó ðð ð
¨ð 
°ò 
ó ð
ð ñó ðð ñó ðð ð" ò "ó ð"ôr   r   )Ú	metaclassc                   ó   — e Zd Zd„ Zd„ Zy)Ú	GPUDriverc                 óþ   ‡— dd l Š‰j                  j                  | _        	 ddlm} || _        ‰j                  j                  | _        ‰j                  j                  | _
        y # t        $ r ˆfd„| _        Y ŒLw xY w)Nr   )Ú_cuda_getCurrentRawStreamc                 óN   •— ‰j                   j                  | «      j                  S r   )ÚcudaÚcurrent_streamÚcuda_stream)ÚidxÚtorchs    €r   ú<lambda>z$GPUDriver.__init__.<locals>.<lambda><   s   ø€ °%·*±*×2KÑ2KÈCÓ2P×2\Ñ2\€ r   )r9   r5   Úget_device_capabilityÚtorch._Cr3   Úget_current_streamÚImportErrorÚcurrent_deviceÚget_current_deviceÚ
set_deviceÚset_current_device)r   r3   r9   s     @r   r,   zGPUDriver.__init__4   sj   ø€ ãØ%*§Z¡Z×%EÑ%EˆÔ"ð	]Ý:Ø&?ˆDÔ#ð #(§*¡*×";Ñ";ˆÔØ"'§*¡*×"7Ñ"7ˆÕøô ò 	]Û&\ˆDÖ#ð	]ús   ¢A& Á&A<Á;A<c                 ó   — |S r   r   )r   Útensormaps_infoÚargss      r   Úassemble_tensormap_to_argz#GPUDriver.assemble_tensormap_to_argA   s   € Øˆr   N)r   r   r   r,   rF   r   r   r   r1   r1   2   s   „ ò
8ór   r1   N)Úabcr   r   Útypingr   r   r   r   r
   r   r1   r   r   r   ú<module>rI      s3   ðß 'ß 5Ó 5ô�(ô ô$˜7õ $ôN�
õ r   