a
    jh                     @   s^   d dl mZmZ d dlmZmZmZmZ G dd deZG dd dedZ	G dd	 d	e	Z
d
S )    )ABCMetaabstractmethod)CallableListProtocolSequencec                   @   s&   e Zd Zeee ee dddZdS )Benchmarker)kernel_call	quantilesreturnc                K   s   d S N )selfr	   r
   kwargsr   r   D/var/www/auris/lib/python3.9/site-packages/triton/backends/driver.py__call__   s    zBenchmarker.__call__N)__name__
__module____qualname__r   r   floatr   r   r   r   r   r   r      s   r   c                   @   sT   e Zd Zeedd Zedd Zedd Zeeddd	Z	d
dddZ
d
S )
DriverBasec                 C   s   d S r   r   r   r   r   r   	is_active   s    zDriverBase.is_activec                 C   s   d S r   r   r   r   r   r   get_current_target   s    zDriverBase.get_current_targetc                 C   s   d S r   r   r   r   r   r   get_active_torch_device   s    z"DriverBase.get_active_torch_device)r   c                 C   s   t dS )z[
        Return the benchmarking function that this backend should use by default.
        N)NotImplementedErrorr   r   r   r   get_benchmarker   s    zDriverBase.get_benchmarkerNc                 C   s   d S r   r   r   r   r   r   __init__!   s    zDriverBase.__init__)r   r   r   classmethodr   r   r   r   r   r   r   r   r   r   r   r      s   

r   )	metaclassc                   @   s   e Zd Zdd Zdd ZdS )	GPUDriverc                    sb   dd l   jj| _zddlm} || _W n  tyH    fdd| _Y n0  jj| _ jj	| _
d S )Nr   )_cuda_getCurrentRawStreamc                    s    j | jS r   )cudaZcurrent_streamZcuda_stream)idxtorchr   r   <lambda>/       z$GPUDriver.__init__.<locals>.<lambda>)r%   r"   Zget_device_capabilityZtorch._Cr!   Zget_current_streamImportErrorZcurrent_deviceZget_current_deviceZ
set_deviceZset_current_device)r   r!   r   r$   r   r   '   s    


zGPUDriver.__init__c                 C   s   |S r   r   )r   Ztensormaps_infoargsr   r   r   assemble_tensormap_to_arg4   s    z#GPUDriver.assemble_tensormap_to_argN)r   r   r   r   r*   r   r   r   r   r    %   s   r    N)abcr   r   typingr   r   r   r   r   r   r    r   r   r   r   <module>   s   