
    Pi
                         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
d
S )    )ABCMetaabstractmethod)CallableListProtocolSequencec                   :    e Zd Zdedee         dee         fdZdS )Benchmarkerkernel_call	quantilesreturnc                    d S N )selfr   r   kwargss       n/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/triton/backends/driver.py__call__zBenchmarker.__call__           N)__name__
__module____qualname__r   r   floatr   r   r   r   r   r
   r
      sH        H DK V^_dVe      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dS )
DriverBasec                     d S r   r   r   s    r   	is_activezDriverBase.is_active   s	     	r   tyr   c                     dS )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                     d S r   r   r   s    r   get_current_targetzDriverBase.get_current_target       r   c                     d S 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                     d S 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dS )	GPUDriverc                     dd l j        j        | _        	 ddlm} || _        n# t          $ r fd| _        Y nw xY wj        j        | _        j        j	        | _
        d S )Nr   )_cuda_getCurrentRawStreamc                 B    j                             |           j        S r   )cudacurrent_streamcuda_stream)idxtorchs    r   <lambda>z$GPUDriver.__init__.<locals>.<lambda><   s    %*2K2KC2P2P2\ 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   s    %*Z%E"	]::::::&?D## 	] 	] 	]&\&\&\&\D###	]"'*";"'*"7s   & ==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   s2        
8 
8 
8    r   r1   N)abcr   r   typingr   r   r   r   r
   r   r1   r   r   r   <module>rI      s    ' ' ' ' ' ' ' ' 5 5 5 5 5 5 5 5 5 5 5 5    (   $ $ $ $ $7 $ $ $ $N    
     r   