o
    oi                     @   s   d dl Z d dlmZmZmZ d dlZe jddG dd dZdeeeef  fdd	Z	deeef fd
dZ
defddZdee fddZdS )    N)ListOptionalTupleT)frozenc                   @   sH   e Zd ZU eeef ed< eed< eeef ed< edefddZ	dS )	CUDASpecshighest_compute_capabilitycuda_version_stringcuda_version_tuplereturnc                 C   s
   | j dkS )N)      )r   )self r   K/home/ubuntu/.local/lib/python3.10/site-packages/bitsandbytes/cuda_specs.pyhas_imma   s   
zCUDASpecs.has_immaN)
__name__
__module____qualname__r   int__annotations__strpropertyboolr   r   r   r   r   r      s   
 r   r
   c                   C   s   t dd ttj D S )Nc                 s   s$    | ]}t jt j|V  qd S N)torchcudaget_device_capabilitydevice).0ir   r   r   	<genexpr>   s   " z+get_compute_capabilities.<locals>.<genexpr>)sortedranger   r   device_countr   r   r   r   get_compute_capabilities   s   r$   c                  C   s    t ttjjd\} }| |fS )N.)mapr   r   versionr   splitmajorminorr   r   r   get_cuda_version_tuple   s   r,   c                  C   s   t  \} }|  | S r   )r,   r)   r   r   r   get_cuda_version_string   s   
r-   c                   C   s&   t j sd S tt d t t dS )N)r   r   r	   )r   r   is_availabler   r$   r-   r,   r   r   r   r   get_cuda_specs!   s   
r0   )dataclassestypingr   r   r   r   	dataclassr   r   r$   r,   r   r-   r0   r   r   r   r   <module>   s    

