
    9i
                     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       V/var/www/html/land-doc-ocr/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^_dVe 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)	GPUDriver2   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    %**2K2KC2P2\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    %*ZZ%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   