
    |Uh1                         d dl Z d dlmZ d dlmZ d dlZ e j                  d       G d d             Zdee	e
e
f      fd	Z ed      dee	e
e
f      fd
       Zdee   fdZdee   fdZy)    N)	lru_cache)OptionalT)frozenc                   V    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       Z	y)	CUDASpecshighest_compute_capabilitycuda_version_stringcuda_version_tuplereturnc                 X    t         j                  j                  xs | j                  dk\  S )N)      )torchversionhipr   )selfs    i/var/www/catia.catastroantioquia-mas.com/valormas/lib/python3.12/site-packages/bitsandbytes/cuda_specs.pyhas_immazCUDASpecs.has_imma   s"    }}  MD$C$Cv$MM    N)
__name__
__module____qualname__tupleint__annotations__strpropertyboolr    r   r   r   r      s@     %c3h/c3h'N$ N Nr   r   r   c                  p    t        d t        t        j                  j	                               D              S )Nc              3      K   | ]@  }t         j                  j                  t         j                  j                  |             B y w)N)r   cudaget_device_capabilitydevice).0is     r   	<genexpr>z+get_compute_capabilities.<locals>.<genexpr>   s.     sQ%**225::3D3DQ3GHss   AA)sortedranger   r"   device_countr   r   r   get_compute_capabilitiesr+      s)    sRWX]XbXbXoXoXqRrsssr   c                     	 t         j                  j                  rt         j                  j                  } n6t         j                  j                  rt         j                  j                  } ny| j	                  d      }t        |      dk\  rt        t        t        |dd             S y# t        t        t        f$ r Y yw xY w)z2Get CUDA/HIP version as a tuple of (major, minor).N.   )r   r   r"   r   splitlenr   mapr   AttributeError
ValueError
IndexError)version_strpartss     r   get_cuda_version_tupler7      s    ==--,,K]]--++K!!#&u:?S%),--J
3 s   A*B) -:B) )C ?C c                  8    t               } | y| \  }}|dz  |z    S )z!Get CUDA/HIP version as a string.N
   )r7   )version_tuplemajorminors      r   get_cuda_version_stringr=   *   s.    *,M LE5bj5 !"r   c                      t         j                  j                         sy	 t               } | syt	               }|yt               }|yt        | d   ||      S # t        $ r Y yw xY w)zGet CUDA/HIP specifications.N)r   r	   r
   )r   r"   is_availabler+   r7   r=   r   	Exception)compute_capabilitiesr:   version_strings      r   get_cuda_specsrD   3   sz    ::""$79#.0 02!';B'? .,
 	

  s!   A A A A 	A%$A%)dataclasses	functoolsr   typingr   r   	dataclassr   listr   r   r+   r7   r   r=   rD   r   r   r   <module>rJ      s        d#N N $Nt$uS#X"7 t 4sCx 9  $## #+ r   