Ë
    B²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y)é    )ÚannotationsN)ÚCallable)Ú	dataclass)Úload_nvidia_dynamic_lib)Ú
IS_WINDOWSc                  ó   — e Zd ZdZy)ÚQueryDriverCudaVersionErrorzURaised when ``query_driver_cuda_version()`` cannot determine the CUDA driver version.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úa/var/www/html/ia-enhanced/venv/lib/python3.12/site-packages/cuda/pathfinder/_utils/driver_info.pyr	   r	      s   „ Ú_r   r	   T)ÚfrozenÚslotsc                  ó0   — e Zd ZU dZded<   ded<   ded<   y)Ú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      s   … ñð* ƒLØƒJØ„Jr   r   c                 ó€   — 	 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   sV   € ð_Ü0Ó2ˆÜ ØØ˜T‘/Ø˜T‘> bÑ(ô
ð 	
øô
 ò _Ü)Ð*TÓUÐ[^Ð^ûð_ús   ‚ # £	=¬8¸=c                 ó¼  — t        d«      } t        rt        j                  }nt        j                  } || j
                  «      }|j                  }t        j                  t        j                  «      g|_	        t        j                  |_
        t        j                  «       } |t        j                  |«      «      }|dk7  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€KÝô 4:·=±=‰
ä—[‘[ˆ
Ù˜K×0Ñ0Ó1€JØ&×9Ñ9ÐÜ&,§n¡n´V·\±\Ó&BÐ%CÐÔ"Ü$*§L¡LÐÔ!Ü�l‰l‹n€GÙ"¤6§<¡<°Ó#8Ó9€FØ�‚{ÜÐbÐciÐbjÐjlÐmÓnÐnØ�=‰=Ðr   )Úreturnr   )r5   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=      sm   ðõ #ã Û Ý $Ý !õõ =ô` ,ô `ñ �$˜dÔ#÷ð ó $ðð6 ‡�ò
_ó ð
_ôr   