
    i                     B   S SK r 0 SS_SS_SS_SS	_S
S_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_S S!_S"S#_0 S$S%_S&S'_S(S)_S*S+_S,S-_S.S/_S0S1_S2S3_S4S5_S6S7_S8S9_S:S;_S<S=_S>S?_S@SA_SBSC_SDSE_ESFSGSHSISJSKSLSMSNSOSP.
ErSQ\SR\4SS jr\ R
                  " ST5      rSU\SR\4SV jrg)W    Nz1.0)   r   z1.1)r   r   z1.2)   r   z1.3)r   r   z1.4)r   r   z2.0)   r   z2.1)r   r   z2.2)r   r   z2.3)   r   z3.0)r   r   z3.1)   r   z3.2)r   r   z4.0)   r   z4.1)r   r   z4.2)   r   z4.3)r	   r   z5.0)   r   z6.0)	   r   z6.1)r   r   z6.2)r   r   z6.3)
   r   z6.4)r   r   z6.5)r   r   z7.0)   r   z7.1)r   r   z7.2)r   r   z7.3)r   r   z7.4)r   r   z7.5)r   r   z7.6)r   r   z7.7)r   r	   z7.8)r   r
   z8.0)   r   z8.1)r   r   )r   r   )r   r   )r   r   )r   r   )r   r	   )r   r
   )r   r   )   r   )r   r   )r   r   )
z8.2z8.3z8.4z8.5z8.6z8.7z8.8z9.0z9.1z9.2ptx_versionreturnc                 j     [         U    u  pSU-  SU-  -   $ ! [         a    [        SU  35      Sef = f)ac  
Maps the PTX ISA version to the minimal CUDA driver, nvPTXCompiler, or nvJitLink version
that is needed to load a PTX of the given ISA version.

Parameters
----------
ptx_version : str
    PTX ISA version as a string, e.g. "8.8" for PTX ISA 8.8. This is the ``.version``
    directive in the PTX header.

Returns
-------
int
    Minimal CUDA version as 1000 * major + 10 * minor, e.g. 12090 for CUDA 12.9.

Raises
------
ValueError
    If the PTX version is unknown.

Examples
--------
>>> get_minimal_required_driver_ver_from_ptx_ver("8.8")
12090
>>> get_minimal_required_driver_ver_from_ptx_ver("7.0")
11000
i  r   z(Unknown or unsupported PTX ISA version: N)_ptx_to_cudaKeyError
ValueError)r   majorminors      ]/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/cuda/bindings/utils/_ptx_utils.py*get_minimal_required_cuda_ver_from_ptx_verr   8   sN    8]#K0e|b5j(( ]CK=QRX\\]s    2z\.version\s+([0-9]+\.[0-9]+)ptxc                 r    [         R                  U 5      nU(       a  UR                  S5      $ [        S5      e)a  
Extract the PTX ISA version string from PTX source code.

Parameters
----------
ptx : str
    The PTX assembly source code as a string.

Returns
-------
str
    The PTX ISA version string, e.g., "8.8".

Raises
------
ValueError
    If the .version directive is not found in the PTX source.

Examples
--------
>>> ptx = r'''
... .version 8.8
... .target sm_86
... .address_size 64
...
... .visible .entry test_kernel()
... {
...     ret;
... }
... '''
>>> get_ptx_ver(ptx)
'8.8'
r   z=No .version directive found in PTX source. Is it a valid PTX?)_ptx_ver_patternsearchgroupr   )r   ms     r   get_ptx_verr    `   s2    D 	$AwwqzXYY    )rer   strintr   compiler   r     r!   r   <module>r'      s   
-	6-	6- 
6- 
6	-
 
6- 
6- 
6- 
6- 
6- 
6- 
6- 
6- 
6- 
6- 
6-  
6!-" 
6#-$ 
6%-& 
6'-( 
6)-* 
7+-, 
7--. 
7/-0 
71-2 
73-4 
75-6 
77-8 
79-: 
7;-< 
7=-> 
7?-@ 
7A-B 
7C-D 
7E-F Y-` ]C  ]C  ]J ::=> &ZS &ZS &Zr!   