
    j.                        d dl mZ d dlZd dlZd dlmZ d dlmZ d dlm	Z
 d dlmZ  G d de          Z ed	d	
           G d d                      Zej        dd            ZddZdS )    )annotationsN)Callable)	dataclass)load_nvidia_dynamic_lib)
IS_WINDOWSc                      e Zd ZdZdS )QueryDriverCudaVersionErrorzURaised when ``query_driver_cuda_version()`` cannot determine the CUDA driver version.N)__name__
__module____qualname____doc__     g/home/longshao/multi-rider-rag/.venv/lib/python3.11/site-packages/cuda/pathfinder/_utils/driver_info.pyr	   r	      s        ____r   r	   T)frozenslotsc                  2    e Zd ZU dZded<   ded<   ded<   dS )DriverCudaVersiona  
    CUDA-facing driver version reported by ``cuDriverGetVersion()``.

    The name ``DriverCudaVersion`` is intentionally specific: this dataclass
    models the version shown as ``CUDA Version`` in ``nvidia-smi``, not the
    graphics driver release shown as ``Driver Version``. More specifically,
    it reflects the CUDA user-mode driver (UMD) interface version reported by
    ``cuDriverGetVersion()``, not the kernel-mode driver (KMD) package
    version.

    Example ``nvidia-smi`` output::

        +---------------------------------------------------------------------+
        | NVIDIA-SMI 595.58.03  Driver Version: 595.58.03  CUDA Version: 13.2 |
        +---------------------------------------------------------------------+

    For the example above, ``DriverCudaVersion(encoded=13020, major=13,
    minor=2)`` corresponds to ``CUDA Version: 13.2``. It does not correspond
    to ``Driver Version: 595.58.03``.
    intencodedmajorminorN)r
   r   r   r   __annotations__r   r   r   r   r      s7          * LLLJJJJJJJJr   r   returnc                     	 t                      } t          | | dz  | dz  dz            S # t          $ r}t          d          |d}~ww xY w)zFReturn the CUDA driver version parsed into its major/minor components.i  
   )r   r   r   z(Failed to query the CUDA driver version.N)_query_driver_cuda_version_intr   	Exceptionr	   )r   excs     r   query_driver_cuda_versionr    1   sw    _022 T/T>b(
 
 
 	

  _ _ _)*TUU[^^_s   (+ 
A
AA
r   c                    t          d          } t          rt          j        }nt          j        } || j                  }|j        }t          j        t          j                  g|_	        t          j        |_
        t          j                    } |t          j        |                    }|dk    rt          d| d          |j        S )zEReturn the encoded CUDA driver version from ``cuDriverGetVersion()``.cudar   zEFailed to query CUDA driver version via cuDriverGetVersion() (status=z).)_load_nvidia_dynamic_libr   ctypesWinDLLCDLLabs_pathcuDriverGetVersionPOINTERc_intargtypesrestypebyrefRuntimeErrorvalue)loaded_cuda
loader_cls
driver_libcu_driver_get_versionversionstatuss         r   r   r   ?   s    *622K ! 4:=

[
K011J&9&,nV\&B&B%C"$*L!lnnG""6<#8#899F{{mcimmmnnn=r   )r   r   )r   r   )
__future__r   r$   	functoolscollections.abcr   dataclassesr   5cuda.pathfinder._dynamic_libs.load_nvidia_dynamic_libr   r#   %cuda.pathfinder._utils.platform_awarer   r.   r	   r   cacher    r   r   r   r   <module>r=      s>   # " " " " "      $ $ $ $ $ $ ! ! ! ! ! !      = < < < < <` ` ` ` `, ` ` ` $d###       $#6 
_ 
_ 
_ 
_     r   