
    9ih                        S SK r S SKJr  S SKrS SKrS SKrS SKJr  S SKr\ R                  " SS9 " S S5      5       r
S\\\\4      4S	 jr\" S5      S\\\\4      4S
 j5       rS\\   4S jrS\\
   4S jrS\4S jrg)    N)	lru_cache)OptionalT)frozenc                   `    \ rS rSr% \\\4   \S'   \\S'   \\\4   \S'   \S\	4S j5       r
Srg)		CUDASpecs   highest_compute_capabilitycuda_version_stringcuda_version_tuplereturnc                 b    [         R                  R                  =(       d    U R                  S:  $ )N)      )torchversionhipr	   )selfs    g/home/dmtnaga/Documents/work/airagagent/rag_env/lib/python3.13/site-packages/bitsandbytes/cuda_specs.pyhas_immaCUDASpecs.has_imma   s"    }}  MD$C$Cv$MM     N)__name__
__module____qualname____firstlineno__tupleint__annotations__strpropertyboolr   __static_attributes__r   r   r   r   r      s@     %c3h/c3h'N$ N Nr   r   r   c                  p    [        S [        [        R                  R	                  5       5       5       5      $ )Nc              3      #    U  HA  n[         R                  R                  [         R                  R                  U5      5      v   MC     g 7f)N)r   cudaget_device_capabilitydevice).0is     r   	<genexpr>+get_compute_capabilities.<locals>.<genexpr>   s3     sRrQ%**225::3D3DQ3GHHRrs   A	A)sortedranger   r&   device_countr   r   r   get_compute_capabilitiesr0      s)    sRWX]XbXbXoXoXqRrsssr   c                      [         R                  R                  (       a  [         R                  R                  n O;[         R                  R                  (       a  [         R                  R                  n OgU R	                  S5      n[        U5      S:  a  [        [        [        USS 5      5      $ g! [        [        [        4 a     gf = f)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_tupler<      s    ==--,,K]]--++K!!#&u:?S%),--J
3 s   A4B4 7;B4 4CCc                  8    [        5       n U c  gU u  pUS-  U-    $ )z!Get CUDA/HIP version as a string.N
   )r<   )version_tuplemajorminors      r   get_cuda_version_stringrB   -   s,    *,M LEbj5 !"r   c                      [         R                  R                  5       (       d  g [        5       n U (       d  g[	        5       nUc  g[        5       nUc  g[        U S   UUS9$ ! [         a     gf = f)zGet CUDA/HIP specifications.N)r	   r
   r   )r   r&   is_availabler0   r<   rB   r   	Exception)compute_capabilitiesr?   version_strings      r   get_cuda_specsrI   6   s}    ::""$$79#.0 02!';B'? .,
 	

  s"   A" A" A" A" "
A/.A/c                     [         R                  " [        5      n  [        R                  R
                  (       aT  [        R                  " S/SSS9n[        R                  " SUR                  5      nU(       a  SUR                  S5      -   $ gg! [         aR  nU R                  SU 35        [        R                  R                  5       (       a  U R!                  S	5         S
nAgS
nAff = f)zGet ROCm GPU architecture.rocminfoT)capture_outputtextzName:\s+gfx([a-zA-Z\d]+)gfx   unknownz(Could not detect ROCm GPU architecture: zV
ROCm GPU architecture detection failed despite ROCm being available.
                N)logging	getLoggerr   r   r   r   
subprocessrunresearchstdoutgrouprF   errorr&   rE   warning)loggerresultmatches       r   get_rocm_gpu_archr_   Q   s    x(F==^^ZLDQFII96==IEu{{1~--  ?sCD::""$$NN
 s   A1B 
C,AC''C,)dataclasses	functoolsr   rQ   rU   rS   typingr   r   	dataclassr   listr   r   r0   r<   r    rB   rI   r_   r   r   r   <module>re      s       	    d#N N $Nt$uS#X"7 t 4sCx 9  $## #+ 63 r   