
    .`i                    ?   d dl T d dlmZ d dlmZ d dlZd dlZd dlZd dlZe	Z
d ZdZe	Zd ZdZdZdZdZd	Zd
ZdZdZdZdZdZeZdZdZdZdZdZdZ e	Z!d Z"dZ#dZ$dZ%dZ&d	Z'd
Z(dZ)dZ*e	Z+d Z,dZ-e	Z.d Z/dZ0dZ1dZ2dZ3e	Z4d Z5dZ6dZ7dZ8dZ9dZ:d	Z;d
Z<dZ=dZ>dZ?e?Z@e	ZAd ZBdZCdZDdZEdZFd	ZGe	ZHd ZIdZJdZKdZLd	ZMe	ZNd ZOdZPdZQdZRdZSd	ZTd
ZUe	ZVdZWdZXdZYdZZdZ[dZ\dZ]dZ^dZ_e	Z`d ZadZbdZcdZddZee	Zfd ZgdZhdZidZje	Zkd ZldZmdZne	Zod ZpdZqdZre	Zsd ZtdZudZve	Zwd ZxdZydZzdZ{dZ|e	Z}d Z~dZdZdZdZe	Zd ZdZdZdZe	Zd ZdZdZdZdZd	Zd
ZdZdZdZdZdZdZdZdZdZdZe	Zd ZdZdZdZdZe	Zd ZdZdZdZdZd	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZd Zd!Zd"Zd#Zd$Zd%Zd&Ze	Zd ZdZe	Zd ZdZe	Zd ZdZe	Zd ZdZdZe	Zd ZdZdZe	Zd ZdZdZe	Zd ZdZdZe	Zd ZdZdZdZdZd	Zd
ZdZe	Zd ZdZdZdZdZd	Zd
ZdZe	Zd ZdZdZdZdZd	ZdZdZdZe	Zd ZdZdZdZe	Zd ZdZdZdZdZe	Z d ZdZe	Zd ZdZe	Zd ZdZdZ	dZ
dZd	Zd
ZdZdZdZdZe	Zd ZdZdZe	Zd ZdZdZd'Zd(ZeZd)Ze	Zd*ZdZ dZ!dZ"dZ#dZ$d	Z%e	Z&d Z'dZ(e(Z)dZ*dZ+dZ,d	Z-d
Z.e	Z/dZ0dZ1dZ2d	Z3d
Z4dZ5dZ6dZ7dZ8dZ9d+Z:e	Z;d Z<dZ=dZ>dZ?dZ@e	ZAd ZBdZCdZDe	ZEd ZFdZGe	ZHd,ZId-ZJd.ZKe	ZLd ZMdZNdZOdZPdZQd	ZRd
ZSe	ZTdZUdZVdZWdZXdZYdZZdZ[dZ\e	Z]d Z^dZ_e	Z`d ZadZbdZcdZddZed ZfdZgdZhdZidZjdZkd/Zld0Zmd/Znd/ZodZpd0Zqd'Zrd/Zsd/ZtdZudZvdZwdZxdZydZz e{e	          d1z   Z|d1Z}dZ~d2Zd3Zd4Z ed5          Z e	d5          Z	 dZdZdZdZd	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZd Zd!Zd"Zd#Zd$Zd%Zd'Zd6ZdZd7Zd8Zd9Zd:Zd;Zd<Zd=Zd(Zd>Zd?Zd@ZdAZdBZdCZdDZdEZdFZd)ZdGZdHZdIZdJZdKZdLZdMZdNZdOZdPZdQZdRZdSZdZdTZdUZdVZdWZdXZdYZdZZd[Zd\Zd]Zd^Zd_Zd`ZdaZdbZd/ZdcZddZdeZdfZdgZdhZdiZdjZdkZdlZdmZdnZdoZdpZdqZd0ZdrZdsZdtZduZdvZdwZdxZdyZdzZd{Zd|Zd}Zd~ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZdZdZdZdZdZdZdZdZ	dZ
dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6dÐZ7dĐZ8dŐZ9dƐZ:dǐZ;dȐZ<dɐZ=dʐZ>dːZ?d̐Z@d͐ZAdΐZBdϐZCdАZDdѐZEdҐZFdӐZGdԐZHdՐZId֐ZJdאZKdؐZLdِZMdڐZNdېZOdܐZPdݐZQdސZRdߐZSdZTdZUdZVdZWdZXdZYdZZdZ[dZ\dZ]dZ^dZ_dZ`dZadZbdZcdZddZedZfdZgdZhdZidZjdZkdZldZmdZndZodZpdZqdZrdZsd ZtdZudZvdZwdZxdZydZzdZ{dZ|d	Z}d
Z~dZd1ZdZdZdZdZdZdZdZdZdZdZdZdZdZd ZdZdZd ZdZd ZdZdZdZdZda ej                    Zd ae	Ze	Ze	Zd ZdZe	Zd ZdZdZdZdZdZeZd*ZdZdZdZdZe	Zd ZdZdZdZdZd	Ze	Zd ZdZdZe	Zd ZdZdZdZdZd	Zd
ZdZdZdZdZe	Zd ZdZe	Zd ZdZdZdZdZe	Zd ZdZdZdZӐdZe	Zd ZdZe	Zd ZdZe	Zd ZdZe	Zd ZdZdZdZdZe	Zd ZdZd ZdZd ZdZdZe	Zd ZdZe	Zd)ZdTZdZ G d de          Z G d d e          Zd! Zd" Z e             d# Z e            Zd$ Z G d% d&e          Zd' Zd( Z G d) d*e           Z ee          Z G d+ d,e           Z G d- d.e          Z G d/ d0e          Zd1Z G d2 d3e          Z G d4 d5e          Z	 G d6 d7e          Z
 G d8 d9e          Z G d: d;e           Z ee          Z G d< d=e          Zd>Z G d? d@e          Z G dA dBe          Z G dC dDe          ZdEZ G dF dGe          Z G dH dIe          Z G dJ dKe          Z G dL dMe          ZdNZ G dO dPe          Z G dQ dRe           ZdZ G dS dTe           Z G dU dVe          ZeZeZe	Z d Z!dZ"dZ# G dW dXe           Z$ G dY dZe          Z%e%Z&d[Z' G d\ d]e          Z( G d^ d_e          Z) G d` dae          Z* G db dce          Z+ G dd dee          Z, G df dge-          Z. G dh die          Z/ G dj dke          Z0 G dl dme          Z1dZ2dnZ3 G do dpe          Z4dqZ5 G dr dse          Z6dqZ7 G dt due          Z8 G dv dwe          Z9d1Z: G dx dye          Z;d1Z< G dz d{e          Z=d[Z>d Z?dZ@ G d| d}e          ZAd~ZB G d de          ZCdZD G d de          ZE G d de          ZF G d de          ZGdZH G d de          ZI G d de          ZJ G d de          ZKd[ZL G d de          ZMdZN G d de          ZOd ZPdZQdZRdZSdZTd	ZU G d de          ZV G d de          ZW G d de          ZX G d de          ZY G d de          ZZd[Z[ G d de          Z\ G d de          Z] G d de          Z^ G d de          Z_ G d de          Z` G d de          Za G d de          Zb G d de          Zc G d de          Zd G d de          Zed1Zf G d de           Zg eeg          ZhdZidZjdZkdZldZmdZnd1ZodZpdZqd2ZrdZsdZtdZudZvd Zweweiz  ejz  ekz  emz  enz  elz  eoz  epz  eqz  erz  esz  etz  euz  evz  ZxdZydZzezZ{dZ|dZ}dZ~dZdZdZd1Zd Zeeyz  ezz  e|z  e}z  e~z  ez  ez  ez  ez  ZdZdZeZdZdZdZdZdZdZd1Zd Zeez  ez  ez  ez  ez  ez  ez  ez  ez  Z G d de          Z G d de          Z G d de           Z G d de          Z G d de          Z G dÄ dĐe           Zd ZdZdZdZdZdؐZd ZdZdZ G dń dƐe          Z G dǄ dȐe          Z G dɄ dʐe-          Z G d˄ d̐e          Z G d̈́ dΐe          Z G dτ dАe          Z G dф dҐe          Z G dӄ dԐe          Z G dՄ d֐e-          Z G dׄ dؐe          Z G dل dڐe          Z G dۄ dܐe           Z G d݄ dސe          Zd ZdZd ZdZdZdZdZd	Zd
ZdZdZdZdZdZdZdZ G d߄ de           Z G d de           ZdZ G d de          Z G d de           Z G d de           Z ee¦          Zd ZdZdZdZdZd	Zd
ZdZdZd ZdZ G d de           Z G d de           ZАdZ G d de          Z G d de           ZdZd ZdZdZdZ G d de           Z G d de           ZdZd ZdZdZdZdZdZdZdZdZd5Zd ZdZdZdZdZd	Zd
ZdZdZdZdZdZdZdZdZdZdZdZd5Z G d de           Z G d de           Ze	Zd ZdZdZdZe	Z dZdZdZdZeez  ez  Z G d de          ZdZd Z G d de           Z	 ee	          Z
 G d  de           Z G d de           ZdZdZdZdZdZd ZdZ G d de           ZdZ G d d	e           Z G d
 de           Z G d de           Z G d de           Z G d de           Z G d de           ZdZ G d de           ZdZd Zd Z d Z!d Z"d Z#d Z$ed             Z%ed             Z&d Z'd Z(ed              Z)ed!             Z*d" Z+d# Z,d$ Z-d% Z.d& Z/d' Z0d( Z1d) Z2d* Z3d+ Z4d, Z5d- Z6d. Z7ed/             Z8ed0             Z9ed1             Z:ed2             Z; G d3 d4e          Z<d5Z=ed6             Z> G d7 d8e          Z?d5Z@ed9             ZAd: ZBd; ZCd< ZDd= ZEd> ZFed?             ZGed@             ZH e	            fdAZIdB ZJdC ZKdD ZLdE ZMdF ZNdG ZOdH ZPedI             ZQedJ             ZRedK             ZSdL ZTdM ZUdN ZVdO ZWdP ZXdQ ZYdR ZZdS Z[dT Z\dU Z]dV Z^dW Z_dX Z`dY ZadZ Zbd[ Zcd\ Zdd] Zed^ Zf G d_ d`e          ZgdqZhda Zidb Zjdc Zkdd Zl e	             e	            fdeZm e	            fdfZndg Zo G dh die          ZpdqZqdj ZreqfdkZsdl Ztdm Zudn Zvdo Zwdp Zxdq Zydr Zzds Z{dt Z|du Z}dv Z~dw Zdx Zdy Zdz Zd{ ZdƐd|Zd} Zd~ Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zed             Zd Zd Ze d             Zd Zd Ze d             Ze d             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z e            fdZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZÐd ZĐd ZŐd ZƐd Zǐd ZȐd Zɐd ZʐdÄ ZːdĄ Z̐dń Z͐dƄ ZΐdǄ ZϐdȄ ZАdɄ Zѐdʄ ZҐd˄ ZӐd̄ ZԐd̈́ ZՐd΄ Z֐dτ ZאdЄ Zؐdф Zِd҄ Zڐdӄ ZېdԄ ZܐdՄ Zݐdք Zސdׄ Zߐd؄ Zdل Zdڄ Zdۄ Zd܄ Zd݄ Zdބ Zd߄ Zd Zd Zd Zd Zd Zd Zd ZdǐdZddZd Zd Zd Zd Zd Zd Zed             Zed             Zd Zd Zd Zd Zed             Zd Zd Zd Z d Zd Zd Zd Zd Zed             Zed             Zed              Zed             Z	d Z
d Zd Zd Zd Zd Zd Zd	 Zd
 Zd Zd Zed             Zd Zd Zd Zd Zd ZdƐdZ e	             e	            fdZd Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd  Z(d! Z)d" Z*d# Z+d$ Z,ed%             Z-d& Z.d' Z/d( Z0d) Z1d* Z2dȐd+Z3d, Z4d- Z5d. Z6d/ Z7d0 Z8d1 Z9d2 Z:d3 Z;d4 Z<dd5Z=e=Z>d6 Z?d7 Z@d8 ZAd9 ZBd: ZCd; ZDd< ZEd= ZFdd>ZGeGZHd? ZId@ ZJdA ZKdB ZLdC ZMdD ZNdE ZOdF ZPdG ZQdH ZRdI ZSdJ ZTdK ZUdL ZVdM ZWdN ZXdO ZYdP ZZdQ Z[dR Z\dS Z]dT Z^dU Z_dV Z`dW ZadX ZbdY ZcdZ Zd eڦ            fd[Zed\ Zf e            fd]Zg e	             e	            fd^Zh G d_ d`e          Zid[Zjda Zkdb Zldc Zmdd Znde Zo ep             ep            fdfZqdg Zrdh Zs ep             ep            fdiZtdj Zudk Zvdl Zwdm Zxdn Zydo Zzdp Z{dq Z|dr Z}ds Z~dt Zdu ZdZdZdZdZd	Zd
ZdZdZdZdZdZdZdZdZd'Zd6ZdZd7Zd8Zd9Zd:Zd;Zd(Zd>Zd?Zd@ZdAZdBZdCZdDZd)ZdGZdPZdQZdRZdSZdZdTZdUZdVZdWZdXZdYZdZZd[Zd\Zd]Zd^Zd_Zd`ZdaZdbZd/ZdcZddZdeZdfZdgZdhZdiZdjZdkZdlZdmZdnZdoZdpZdqZd0ZdrZdsZ G dv d.e          Z G dw dxe           Z eeȦ          Z G dy dze           Z G d{ d|e          Z G d} d~e          ZdZ G d de          ZdZϐd ZАd Zѐd ZҐd ZӐd ZԐd ZՐd Z֐d Zd ZdZdZڐdZd+ZܐeܐZ G d de           Zސd ZdZe	Zd ZdZdZdZ G d de          Zd ZdZdZd ZdZd ZdZdZdZdZd ZdZdZdZdZd ZdZdZd
ZdZdZ G d de          Zd Zd Zd ZdZ dZdZdZd	Zd Zd Ze	Zd ZdZ	dZ
 G d de          ZdZefdZ G d de          ZdZd ZdZd1Z G d de          Zd Z G d de          ZdZd Z G d de          ZdZd ZdZdZdZdZd	Zd
Z dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ* G d de          Z+dZ, G d de          Z-dZ. G d de          Z/dZ0 G d de          Z1d Z2d Z3d Z4d Z5d Z6d Z7d Z8d1Z9 G d de          Z:d Z;d Z<d Z=d Z>d	Z?d+Z@d ZAdZBdZCdZDd1ZE G d de          ZFd[ZG G d de          ZHdÄ ZIdĄ ZJdń ZKdS (      )*)find_librarywrapsN                        	   
                               @                                          i     (   2   )r   l    l     l    l    P   `      i   z%04X:%02X:%02X.0z%08X:%02X:%02X.0   !   "   #   $   %   &   '   )   *   +   ,   -   .   /   0   1   3   4   5   6   7   8   9   :   ;   <   =   >   ?   A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   Q   R   S   T   U   V   W   X   Y   Z   [   \   ]   ^   _   a   b   c   d   e   f   g   h   i   j   k   l   m   n   o   p   q   r   s   t   u   v   w   x   y   z   {   |   }   ~                                                                                                                                                                                                                                                                                                                                                                                    i  i  i  i  i  i  i  i  i	  i
  i  i  i  )r   )r   r	   )r
   l        c                       e Zd ZdS )NVMLLibraryMismatchErrorN__name__
__module____qualname__     k/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/third_party/pynvml.pyr  r            Dr  r  c                       e Zd Z e            Zi edededede	de
dededed	ed
edededededededededediZd Zd Zd ZdS )	NVMLErrorUninitializedzInvalid ArgumentzNot SupportedzInsufficient PermissionszAlready Initializedz	Not FoundzInsufficient SizezInsufficient External PowerzDriver Not LoadedTimeoutzInterrupt Request IssuezNVML Shared Library Not FoundzFunction Not FoundzCorrupted infoROMzGPU is lostzGPU requires restartz-The operating system has blocked the request.z,RM has detected an NVML/RM version mismatch.zInsufficient MemoryzUnknown Errorc                     | t           k    r t           j                            ||           } t                              |           }||_        |S )z
        Maps value to a proper subclass of NVMLError.
        See _extractNVMLErrorsAsClasses function for more details
        )r  _valClassMappingget	Exception__new__value)typr  objs      r  r  zNVMLError.__new__  sF    
 ),00<<C$$	
r  c                     	 | j         t          j        vr3t          t	          | j                             t          j        | j         <   t          j        | j                  S # t          $ r d| j         z  cY S w xY w)NzNVML Error with code %d)r  r  _errcode_to_stringstrnvmlErrorStringselfs    r  __str__zNVMLError.__str__  sv    	:z!===;>tz?Z?Z;[;[	,TZ8/
;; 	: 	: 	:,tz9999	:s   AA A65A6c                 "    | j         |j         k    S N)r  )r   others     r  __eq__zNVMLError.__eq__  s    zU[((r  N)r  r	  r
  dictr  NVML_ERROR_UNINITIALIZEDNVML_ERROR_INVALID_ARGUMENTNVML_ERROR_NOT_SUPPORTEDNVML_ERROR_NO_PERMISSIONNVML_ERROR_ALREADY_INITIALIZEDNVML_ERROR_NOT_FOUNDNVML_ERROR_INSUFFICIENT_SIZENVML_ERROR_INSUFFICIENT_POWERNVML_ERROR_DRIVER_NOT_LOADEDNVML_ERROR_TIMEOUTNVML_ERROR_IRQ_ISSUENVML_ERROR_LIBRARY_NOT_FOUNDNVML_ERROR_FUNCTION_NOT_FOUNDNVML_ERROR_CORRUPTED_INFOROMNVML_ERROR_GPU_IS_LOSTNVML_ERROR_RESET_REQUIREDNVML_ERROR_OPERATING_SYSTEM"NVML_ERROR_LIB_RM_VERSION_MISMATCHNVML_ERROR_MEMORYNVML_ERROR_UNKNOWNr  r  r!  r%  r  r  r  r  r    sF       tvv
 
#(:
 	!
 	!(B	

 	'(=
 	
 	%(;
 	&(E
 	%(;
 		
 	(A
 	%(G
 	&(<
 	%(;
 	
  	"(>!
" 	$(W#
$ 	+,Z(=)
 
,	 	 	: : :) ) ) ) )r  r  c                 f    | t           j        vrt          d| z            t           j        |          S )NznvmlErrorCode %s is not valid)r  r  
ValueError)nvmlErrorCodes    r  nvmlExceptionClassr>    s2    I6668=HIII%m44r  c            	         t           j        t                   } d t          |           D             }|D ]}dt	          j        |                    dd          d                              dd          z   }t          | |          }d }t          |t          fd ||          i          }t          |_
        t          | ||           |t          j        |<   dS )	ak  
    Generates a hierarchy of classes on top of NVMLError class.

    Each NVML Error gets a new NVMLError subclass. This way try,except blocks can filter appropriate
    exceptions more easily.

    NVMLError is a parent class. Each NVML_ERROR_* gets its own subclass.
    e.g. NVML_ERROR_ALREADY_INITIALIZED will be turned into NVMLError_AlreadyInitialized
    c                 <    g | ]}|                     d           |S )NVML_ERROR_)
startswith).0xs     r  
<listcomp>z/_extractNVMLErrorsAsClasses.<locals>.<listcomp>  s)    RRRQall=6Q6QRqRRRr  
NVMLError_rA   _c                       fd}|S )Nc                 >    t                               |           }|S r#  )r  r  )r  r  vals     r  newz9_extractNVMLErrorsAsClasses.<locals>.gen_new.<locals>.new  s    ''S11
r  r  )rK  rL  s   ` r  gen_newz,_extractNVMLErrorsAsClasses.<locals>.gen_new
  s#         Jr  r  N)sysmodulesr  dirstringcapwordsreplacegetattrtyper  r	  setattrr  )this_modulenvmlErrorsNameserr_name
class_nameerr_valrM  new_error_classs          r  _extractNVMLErrorsAsClassesr]    s     +h'KRR#k"2"2RRRO# > >!FOH4D4D]TV4W4WY\$]$]$e$efikm$n$nn
+x00	 	 	
 zI<)WWWEUEU9VWW%-"Z999.=	"7++> >r  c                 :    | t           k    rt          |           | S r#  )NVML_SUCCESSr  )rets    r  _nvmlCheckReturnra    s    |nnJr  c                    | t           v rt           |          S t                                           	 t          d k    rt	          t
                    	 t          t          |           t           | <   t           |          t                                           S # t          $ r t	          t                    w xY w# t                                           w xY wr#  )
_nvmlGetFunctionPointer_cachelibLoadLockacquirenvmlLibr  r'  rT  releaseAttributeErrorr3  )names    r  _nvmlGetFunctionPointerrj    s     ,,,,T22tOO4555	;29'42H2H)$/06
 		  	; 	; 	;9:::	; 	s   B6 )B B33B6 6Cc                       e Zd Zd Zd ZdS )nvmlFriendlyObjectc                 >    |D ]}t          | |||                    d S r#  )rV  )r   
dictionaryrD  s      r  __init__znvmlFriendlyObject.__init__5  s4     	, 	,AD!Z]++++	, 	,r  c                 4    | j                                         S r#  )__dict__r!  r  s    r  r!  znvmlFriendlyObject.__str__8  s    }$$&&&r  N)r  r	  r
  ro  r!  r  r  r  rl  rl  4  s2        , , ,' ' ' ' 'r  rl  c                     i }| j         D ]H}|d         }t          | |          }t          |t                    r|                                n|||<   It          |          }|S Nr   )_fields_rT  
isinstancebytesdecoderl  )structdrD  keyr  r  s         r  nvmlStructToFriendlyObjectr{  ;  sj    
A_ G Gd$$#-eU#;#;F#
Q

CJr  c                     |j         D ]\}|d         }| j        |         }t          j        dk    r$t	          |||                                           Kt	          |||           ]|S )Nr   r  )rt  rq  rN  version_inforV  encode)r  modelrD  rz  r  s        r  nvmlFriendlyObjectToStructr  F  sm    ^ ' 'dS!t##E3////E3&&&&Lr  c                       e Zd ZdS )struct_c_nvmlUnit_tNr  r  r  r  r  r  R  r  r  r  c                   6     e Zd ZdZi Zd Z fdZ fdZ xZS )_PrintableStructurea  
    Abstract class that produces nicer __str__ output than ctypes.Structure.
    e.g. instead of:
      >>> print str(obj)
      <class_name object at 0x7fdf82fef9e0>
    this class will print
      class_name(field_name: formatted_value, field_name: formatted_value)

    _fmt_ dictionary of <str _field_ name> -> <str format>
    e.g. class that has _field_ 'hex_value', c_uint could be formatted with
      _fmt_ = {"hex_value" : "%08X"}
    to produce nicer output.
    Default formatting string for all fields can be set with key "<default>" like:
      _fmt_ = {"<default>" : "%d MHz"} # e.g all values are numbers in MHz.
    If not set it's assumed to be just "%s"

    Exact format of returned str from this class is subject to change in the future.
    c                 2   g }| j         D ]f}|d         }t          | |          }d}|| j        v r| j        |         }nd| j        v r| j        d         }|                    d|z   ||fz             g| j        j        dz   d                    |          z   dz   S )Nr   z%s	<default>z%s: (z, ))rt  rT  _fmt_append	__class__r  join)r   resultrD  rz  r  fmts         r  r!  z_PrintableStructure.__str__j  s     	9 	9AA$CD#&&ECdj  jo
**j-MM6C<C<78888~&,		&0A0AACGGr  c                     t          t          |                               |          }t          |t                    r+t          |t
                    r|S |                                S |S r#  )superr  __getattribute__ru  rv  r  rw  )r   ri  resr  s      r  r  z$_PrintableStructure.__getattribute__w  s_    '..??EE
 c5!! 	 #s## 
::<<
r  c                     t          |t                    r|                                }t          t          |                               ||           d S r#  )ru  r  r~  r  r  __setattr__)r   ri  r  r  s      r  r  z_PrintableStructure.__setattr__  sK    eS!! 	# LLNNE!4((44T5AAAAAr  )	r  r	  r
  __doc__r  r!  r  r  __classcell__r  s   @r  r  r  V  s}         $ EH H H
 
 
 
 
B B B B B B B B Br  r  c                   B    e Zd Zdedz  fdedz  fdedz  fdedz  fgZdS c_nvmlUnitInfo_tri  r,   idserialfirmwareVersionNr  r	  r
  c_charrt  r  r  r  r  r    E        	"	v{	6B;	FRK(	HHHr  r  c                       e Zd ZdefgZdS )c_nvmlC2cModeInfo_v1_tisC2cEnabledNr  r	  r
  c_uintrt  r  r  r  r  r    s        	 HHHr  r  i  c                   $    e Zd Zdedz  fdefgZdS )c_nvmlLedState_tcauser-   colorN)r  r	  r
  r  _nvmlLedColor_trt  r  r  r  r  r    s)        	&3,	/"HHHr  r  c                   0    e Zd Zdedz  fdefdefdefgZdS )c_nvmlPSUInfo_tstater-   currentvoltagepowerN)r  r	  r
  r  r  rt  r  r  r  r  r    s9        	&3,	F	F	&	HHHr  r  c                       e Zd ZdefdefgZdS )c_nvmlUnitFanInfo_tspeedr  N)r  r	  r
  r  _nvmlFanState_trt  r  r  r  r  r    s%        	&	/"HHHr  r  c                   $    e Zd Zdedz  fdefgZdS )c_nvmlUnitFanSpeeds_tfansr"   countN)r  r	  r
  r  r  rt  r  r  r  r  r    s+        	$r)*	&HHHr  r  c                       e Zd ZdS )struct_c_nvmlDevice_tNr  r  r  r  r  r    r  r  r  c                   d    e Zd Zdefdefdefdefdefdefdefdefd	eez  fg	Zd
d
dddddddZdS )nvmlPciInfoExt_v1_tversiondomainbusdevicepciDeviceIdpciSubSystemId	baseClasssubClassbusId0x%04X0x%02X0x%08Xz0x%01X)r  r  r  r  r  r  r  r  N)r  r	  r
  r  r  "NVML_DEVICE_PCI_BUS_ID_BUFFER_SIZErt  r  r  r  r  r  r    s        	F	6		6		6"	f	V	&==>
H  ('''''''	 	EEEr  r  i@  c                   d    e Zd Zdeez  fdefdefdefdefdefdefdefd	efd
efg
ZddddddZdS )nvmlPciInfo_v2_tr  r  r  r  r  r  	reserved0	reserved1	reserved2	reserved3r  r  r  r  r  r  r  r  N)r  r	  r
  r  %NVML_DEVICE_PCI_BUS_ID_BUFFER_V2_SIZEr  rt  r  r  r  r  r  r    s        	&@@A	6		6	 
6"	f	f	f	fH  ('''' EEEr  r  c            	       X    e Zd Zdeez  fdefdefdefdefdefdeez  fgZdd	d	ddd
ZdS )nvmlPciInfo_tbusIdLegacyr  r  r  r  r  r  r  r  r  N)	r  r	  r
  r  r  r  r  rt  r  r  r  r  r  r    s{         
!FFG	6		6	 
6" 
&==>H  ('''' EEEr  r  c                   $    e Zd Zdefdeez  fgZdS )!c_nvmlSystemDriverBranchInfo_v1_tr  branchN)r  r	  r
  r  r  &NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZErt  r  r  r  r  r     s+        	F	6BBCHHHr  r  iT  c                   $    e Zd Zdefdeez  fgZdS )c_nvmlExcludedDeviceInfo_tpciuuidN)r  r	  r
  r  r  NVML_DEVICE_UUID_BUFFER_SIZErt  r  r  r  r  r    s+        		667HHHr  r  c                       e Zd ZdefdefgZdS )nvmlNvLinkUtilizationControl_tunits	pktfilterN)r  r	  r
  "_nvmlNvLinkUtilizationCountUnits_t%_nvmlNvLinkUtilizationCountPktTypes_trt  r  r  r  r  r    s'        	45	;<HHHr  r  c                   ,    e Zd ZdefdefdefgZddiZdS )c_nvmlMemory_ttotalfreeusedr  %d BNr  r	  r
  c_ulonglongrt  r  r  r  r  r  r    s9        	+		H
 &!EEEr  r  c                   8    e Zd ZdefdefdefdefdefgZddiZdS )	c_nvmlMemory_v2_tr  r  reservedr  r  r  r  Nr  r	  r
  r  r  rt  r  r  r  r  r  r    sI        	F	+	[!		H &!EEEr  r  i(  c                   ,    e Zd ZdefdefdefgZddiZdS )c_nvmlBAR1Memory_t	bar1Totalbar1Freebar1Usedr  r  Nr  r  r  r  r  r  (  s9        	k"	[!	[!H
 &!EEEr  r  c                       e Zd ZdefdefgZdS )nvmlClkMonFaultInfo_tclkApiDomainclkDomainFaultMaskNr  r  r  r  r  r  0  s%        (%v.HHHr  r  c                   *    e Zd Zdefdefdeez  fgZdS )nvmlClkMonStatus_tbGlobalStatusclkMonListSize
clkMonListN)r  r	  r
  r  r  MAX_CLK_DOMAINSrt  r  r  r  r  r  7  s3         &)!6*4FGHHHr  r  c                   2    e Zd ZdefdefdefdefgZddiZdS )c_nvmlProcessInfo_v2_tpidusedGpuMemorygpuInstanceIdcomputeInstanceIdr  Nr  r  r  r  r   r   H  s@        		+&	&!	f%	H f%EEEr  r   c                   0    e Zd ZdefdefdefdefdefgZdS )c_nvmlProcessDetail_v1_tr  r  r  r  usedGpuCcProtectedMemoryNr  r	  r
  r  r  rt  r  r  r  r  r  Z  s<        		+&	&!	f%	#[1HHHr  r  c                   D    e Zd Zdefdefdefd ee          fgZddiZdS )c_nvmlProcessDetailList_v1_tr  modenumProcArrayEntries	procArrayr  N)	r  r	  r
  r  _nvmlProcessMode_tPOINTERr  rt  r  r  r  r  r
  r
  c  sM        	F	#$	'	gg6778	H #F+EEEr  r
  i  c                       e Zd ZdefdefgZdS )c_nvmlBridgeChipInfo_trU  	fwVersionN)r  r	  r
  _nvmlBridgeChipType_tr  rt  r  r  r  r  r  p  s&        	&'	fHHHr  r  c                   $    e Zd Zdefdedz  fgZdS )c_nvmlBridgeChipHierarchy_tbridgeCountbridgeChipInfor   N)r  r	  r
  r  r  rt  r  r  r  r  r  v  s+        		1C78HHHr  r  c                   *    e Zd ZdefdefdefdefgZdS )c_nvmlEccErrorCounts_tl1Cachel2CachedeviceMemoryregisterFileNr  r	  r
  r  rt  r  r  r  r  r  |  s5        	K 	K 	%	%	HHHr  r  c                   &    e Zd ZdefdefgZddiZdS )c_nvmlUtilization_tgpumemoryr  z%d %%N)r  r	  r
  r  rt  r  r  r  r  r   r     s0        		6H '"EEEr  r   c                   $    e Zd Zdefdedz  fgZdS )c_nvmlHwbcEntry_thwbcIdr  r   N)r  r	  r
  r  r  rt  r  r  r  r$  r$    s)        	6	FRK(HHHr  r$  c                   <    e Zd Zdefdefdefdefdefdefde	fgZ
dS )	c_nvmlValue_tdValuiValulValullValsllValsiValusValN)r  r	  r
  c_doubler  c_ulongr  
c_longlongc_intc_ushortrt  r  r  r  r'  r'    sM        		&	'	;	:	%	(HHHr  r'  c                       e Zd ZdefdefgZdS )c_nvmlSample_t	timeStampsampleValueN)r  r	  r
  r  r'  rt  r  r  r  r5  r5    s%        	k"	&HHHr  r5  c                       e Zd ZdefdefgZdS )c_nvmlViolationTime_treferenceTimeviolationTimeNr  r  r  r  r9  r9    s%        	+&	+&HHHr  r9  c                   <    e Zd ZdefdefdefdefdefdefdefgZdS )	c_nvmlFieldValue_tfieldIdscopeId	timestamplatencyUsec	valueType
nvmlReturnr  N)	r  r	  r
  c_uint32c_int64_nvmlValueType_t_nvmlReturn_tr'  rt  r  r  r  r=  r=    sN        	H	H	g	 	&'	}%	- HHHr  r=  i  c                   :     e Zd Zdefdeez  fdefgZ fdZ xZS )!c_nvmlNvlinkSupportedBwModes_v1_tr  bwModestotalBwModesc                 d    t          t          |                               t                     d S N)r  )r  rI  ro  nvmlNvlinkSupportedBwModes_v1r   r  s    r  ro  z*c_nvmlNvlinkSupportedBwModes_v1_t.__init__  ,    /66??He?fffffr  )	r  r	  r
  r  c_uint8$NVML_NVLINK_TOTAL_SUPPORTED_BW_MODESrt  ro  r  r  s   @r  rI  rI    sf        	F	GBBC	!Hg g g g g g g g gr  rI  i  c                   4     e Zd ZdefdefdefgZ fdZ xZS )c_nvmlNvlinkGetBwMode_v1_tr  bIsBestbwModec                 d    t          t          |                               t                     d S rM  )r  rT  ro  nvmlNvlinkGetBwMode_v1rO  s    r  ro  z#c_nvmlNvlinkGetBwMode_v1_t.__init__  ,    ($//88AW8XXXXXr  r  r	  r
  r  rQ  rt  ro  r  r  s   @r  rT  rT    s`        	F	F	7HY Y Y Y Y Y Y Y Yr  rT  c                   4     e Zd ZdefdefdefgZ fdZ xZS )c_nvmlNvlinkSetBwMode_v1_tr  bSetBestrV  c                 d    t          t          |                               t                     d S rM  )r  r\  ro  nvmlNvlinkSetBwMode_v1rO  s    r  ro  z#c_nvmlNvlinkSetBwMode_v1_t.__init__  rY  r  rZ  r  s   @r  r\  r\    s`        	F	V	7HY Y Y Y Y Y Y Y Yr  r\  c                       e Zd ZdefdefgZdS ) c_nvmlVgpuHeterogeneousMode_v1_tr  r  Nr  r  r  r  ra  ra    s%        	F	HHHr  ra  c                       e Zd ZdefdefgZdS )c_nvmlVgpuPlacementId_v1_tr  placementIdNr  r  r  r  rc  rc    s%        	F	HHHr  rc  c                   <    e Zd Zdefdefdefd ee          fgZdS )c_nvmlVgpuPlacementList_v1_tr  r  placementSizeplacementIdsNr  r	  r
  r  r  rt  r  r  r  rf  rf    s=        	F	&	&!	)	HHHr  rf  c                   B    e Zd Zdefdefdefd ee          fdefgZdS )c_nvmlVgpuPlacementList_v2_tr  rg  r  rh  r  Nri  r  r  r  rk  rk    sE        	F	&!	&	)	HHHr  rk  i   c                       e Zd ZdefdefgZdS )c_nvmlVgpuTypeBar1Info_v1_tr  bar1SizeNr  r  r  r  rm  rm    s%        	F	[!HHHr  rm  i  c                   6    e Zd ZdefdefdefdefdefdefgZdS )%c_nvmlVgpuInstanceUtilizationSample_tvgpuInstancer6  smUtilmemUtilencUtildecUtilN)r  r	  r
  _nvmlVgpuInstance_tr  r'  rt  r  r  r  rp  rp    sF        	,-	k"	=!	M"	M"	M"HHHr  rp  c            	       B    e Zd ZdefdefdefdefdefdefdefdefgZd	S )
&c_nvmlVgpuInstanceUtilizationInfo_v1_tr6  rq  rr  rs  rt  ru  jpgUtilofaUtilN)r  r	  r
  r  rv  r'  rt  r  r  r  rx  rx    sV        	k"	,-	=!	M"	M"	M"	M"	M"	HHHr  rx  c                   B    e Zd Zdefdefdefdefd ee          fgZdS )'c_nvmlVgpuInstancesUtilizationInfo_v1_tr  sampleValTypevgpuInstanceCountlastSeenTimeStampvgpuUtilArrayN)	r  r	  r
  r  rF  r  r  rx  rt  r  r  r  r|  r|    sI        	F	*+	f%	k*	''"HIIJHHHr  r|  i   c            	       H    e Zd Zdefdefdeez  fdefdefdefdefdefgZd	S )
$c_nvmlVgpuProcessUtilizationSample_trq  r  processNamer6  rr  rs  rt  ru  N)	r  r	  r
  rv  r  r  NVML_VGPU_NAME_BUFFER_SIZEr  rt  r  r  r  r  r  (  s[        	,-		!;;<	k"	6	F	F	F	HHHr  r  c                   T    e Zd Zdeez  fdefdefdefdefdefdefdefd	efd
efg
ZdS )%c_nvmlVgpuProcessUtilizationInfo_v1_tr  r6  rq  r  rr  rs  rt  ru  ry  rz  N)	r  r	  r
  r  r  r  rv  r  rt  r  r  r  r  r  4  sk        	!;;<	k"	,-		6	F	F	F	F	FHHHr  r  c                   <    e Zd Zdefdefdefd ee          fgZdS )'c_nvmlVgpuProcessesUtilizationInfo_v1_tr  vgpuProcessCountr  vgpuProcUtilArrayN)r  r	  r
  r  r  r  r  rt  r  r  r  r  r  B  s@        	F	V$	k*	gg&KLLM	HHHr  r  c                       e Zd ZdefdefgZdS )nvmlVgpuRuntimeState_v1_tr  sizeNr  r  r  r  r  r  L  s%        	F	HHHr  r  c                   <    e Zd ZdefdefdefdefdefdefdefgZdS )	c_nvmlVgpuLicenseExpiry_tyearmonthdayhourminsecstatusNr  r	  r
  rD  c_uint16rQ  rt  r  r  r  r  r  T  M        	H	H	H	H	H	H	GHHHr  r  c                   $    e Zd ZdefdefdefgZdS )c_nvmlVgpuLicenseInfo_t
isLicensedlicenseExpirycurrentStateN)r  r	  r
  rQ  r  r  rt  r  r  r  r  r  f  s.        	G$	56	F#HHHr  r  c            	       B    e Zd ZdefdefdefdefdefdefdefdefgZd	S )
c_nvmlEncoderSession_t	sessionIdr  rq  	codecTypehResolutionvResolution
averageFpsencodeLatencyNr  r	  r
  r  rv  rt  r  r  r  r  r  m  sU        	f		,-	f			v	&!	HHHr  r  c                   6    e Zd ZdefdefdefdefdefdefgZdS ) c_nvmlProcessUtilizationSample_tr  r6  rr  rs  rt  ru  Nr  r  r  r  r  r  y  sD        		k"	6	F	F	FHHHr  r  c            	       B    e Zd ZdefdefdefdefdefdefdefdefgZd	S )
!c_nvmlProcessUtilizationInfo_v1_tr6  r  rr  rs  rt  ru  ry  rz  Nr  r	  r
  r  r  rt  r  r  r  r  r    sT        	k"		6	F	F	F	F	F	HHHr  r  c                   <    e Zd Zdefdefdefd ee          fgZdS )#c_nvmlProcessesUtilizationInfo_v1_tr  processSamplesCountr  procUtilArrayN)r  r	  r
  r  r  r  r  rt  r  r  r  r  r    s@        	F	'	k*	''"CDDE	HHHr  r  c                   <    e Zd ZdefdefdefdefdefdefdefgZdS )	c_nvmlGridLicenseExpiry_tr  r  r  r  r  r  r  Nr  r  r  r  r  r    r  r  r  c                   B    e Zd Zdefdefdeez  fdeez  fdefdefgZdS ) c_nvmlGridLicensableFeature_v4_tfeatureCodefeatureStatelicenseInfoproductNamefeatureEnabledr  N)	r  r	  r
  _nvmlGridLicenseFeatureCode_tr  r  NVML_GRID_LICENSE_BUFFER_SIZEr  rt  r  r  r  r  r    sS        	89	6"	6$AAB	6$AAB	6"	45HHHr  r  c                   *    e Zd Zdefdefdeez  fgZdS )!c_nvmlGridLicensableFeatures_v4_tisGridLicenseSupportedlicensableFeaturesCountgridLicensableFeaturesN)r  r	  r
  r2  r  r  #NVML_GRID_LICENSE_FEATURE_MAX_COUNTrt  r  r  r  r  r    s4        	!E*	"F+	!$DGj$jkHHHr  r  c                   <    e Zd Zdefdefdeez  fdeez  fdefgZdS ) c_nvmlGridLicensableFeature_v3_tr  r  r  r  r  Nr  r	  r
  r  r  r  r  rt  r  r  r  r  r    sJ        	56	 	!>>?	!>>?	6"HHHr  r  c                   *    e Zd Zdefdefdeez  fgZdS )!c_nvmlGridLicensableFeatures_v3_tr  r  r  N)r  r	  r
  r2  r  r  r  rt  r  r  r  r  r    4        	!5)	"F+	!#CFi#ijHHHr  r  c                   6    e Zd Zdefdefdeez  fdeez  fgZdS ) c_nvmlGridLicensableFeature_v2_tr  r  r  r  Nr  r  r  r  r  r    sB        	56	 	!>>?	!>>?	HHHr  r  c                   *    e Zd Zdefdefdeez  fgZdS )!c_nvmlGridLicensableFeatures_v2_tr  r  r  N)r  r	  r
  r2  r  r  r  rt  r  r  r  r  r    r  r  r  c                   *    e Zd Zdefdefdeez  fgZdS )c_nvmlGridLicensableFeature_tr  r  r  Nr  r  r  r  r  r    s4        	56	 	!>>?HHHr  r  c                   *    e Zd Zdefdefdeez  fgZdS )c_nvmlGridLicensableFeatures_tr  r  r  N)r  r	  r
  r2  r  r  r  rt  r  r  r  r  r    s4        	!5)	"F+	!#@Cf#fgHHHr  r  c                       e Zd ZdefdefgZdS )c_nvmlMarginTemperature_v1_tr  marginTemperatureN)r  r	  r
  r  r2  rt  r  r  r  r  r    s%        	F	e$HHHr  r  c                       e Zd ZdS )struct_c_nvmlEventSet_tNr  r  r  r  r  r    r  r  r  i      i   i    i @  i   c                   8    e Zd ZdefdefdefdefdefgZddiZdS )c_nvmlEventData_tr  	eventType	eventDatar  r  r  N)r  r	  r
  c_nvmlDevice_tr  r  rt  r  r  r  r  r  r  B  sI        	>"	k"	k"	&!	f%H (#EEEr  r  c            	       B    e Zd Zdefdefdefdefdefdefdedz  fgZd	S )
c_nvmlAccountingStats_tgpuUtilizationmemoryUtilizationmaxMemoryUsagetime	startTime	isRunningr  r   Nr  r  r  r  r  r  L  sQ        	6"	f%	;'		k"	f	VaZ HHHr  r  c                       e Zd ZdefdefgZdS )c_nvmlVgpuVersion_t
minVersion
maxVersionNr  r  r  r  r  r  W  s%        v&v&HHHr  r  c                   f    e Zd Zdefdefdefdeez  fdeez  fdedz  fdefd	efd
efdeez  fg
ZdS )c_nvmlVgpuMetadata_tr  revisionguestInfoStateguestDriverVersionhostDriverVersionr  r   vgpuVirtualizationCapsguestVgpuVersionopaqueDataSize
opaqueDataN)	r  r	  r
  r  _nvmlVgpuGuestInfoState_tr  r  #NVML_VGPU_METADATA_OPAQUE_DATA_SIZErt  r  r  r  r  r  \  s|        F#V$!#<=%v0V'VW$f/U&UVVaZ()62#V,!6*v(KKL
HHHr  r  c            
       T    e Zd Zdefdefdeez  fdefdedz  fdefdefd	eez  fgZd
S )c_nvmlVgpuPgpuMetadata_tr  r  r  pgpuVirtualizationCapsr  r   hostSupportedVgpuRanger  r  N)	r  r	  r
  r  r  r  r  (NVML_VGPU_PGPU_METADATA_OPAQUE_DATA_SIZErt  r  r  r  r  r  i  sf        F#V$$f/U&UV)62VaZ()+>?!6*v(PPQHHHr  r  c                       e Zd ZdefdefgZdS )c_nvmlVgpuPgpuCompatibility_tvgpuVmCompatibilitycompatibilityLimitCodeN)r  r	  r
  _nvmlVgpuVmCompatibility_t%_nvmlVgpuPgpuCompatibilityLimitCode_trt  r  r  r  r  r  t  s'        &(BC)+PQHHHr  r  c                       e Zd ZdefdefgZdS )c_nvmlVgpuSchedDataWithARR_t	avgFactor	timesliceNr  r  r  r  r  r    %        		HHHr  r  c                       e Zd ZdefgZdS )c_nvmlVgpuSchedData_tr  Nr  r  r  r  r  r            	HHHr  r  c                       e Zd ZdefdefgZdS )c_nvmlVgpuSchedulerParams_tvgpuSchedDataWithARRvgpuSchedDataN)r  r	  r
  r  r  rt  r  r  r  r  r    s'        	!=>	!67HHHr  r  c                   6    e Zd ZdefdefdefdefdefdefgZdS )c_nvmlVgpuSchedulerLogEntry_tr@  timeRunTotaltimeRunswRunlistIdtargetTimeSlicecumulativePreemptionTimeNr  r  r  r  r  r    sE        	4	4	4	/	4	#4HHHr  r  c                   <    e Zd Zdefdefdefdefdefdeez  fgZdS )c_nvmlVgpuSchedulerLog_tengineIdschedulerPolicyarrModeschedulerParamsentriesCount
logEntriesN)r  r	  r
  r  r  r  !NVML_SCHEDULER_SW_MAX_LOG_ENTRIESrt  r  r  r  r  r    sM        	F#	F#	F#	78	F#	9<]]^HHHr  r  c                   $    e Zd ZdefdefdefgZdS )c_nvmlVgpuSchedulerGetState_tr  r  r  N)r  r	  r
  r  r  rt  r  r  r  r  r    s.        	F#	F#	78HHHr  r  c                       e Zd ZdefdefgZdS )c_nvmlVgpuSchedSetDataWithARR_tr   	frequencyNr  r  r  r  r  r    r  r  r  c                       e Zd ZdefgZdS )c_nvmlVgpuSchedSetData_tr  Nr  r  r  r  r   r     r  r  r   c                       e Zd ZdefdefgZdS )c_nvmlVgpuSchedulerSetParams_tr  r	  N)r  r	  r
  r  r   rt  r  r  r  r"  r"    s'        	!@A	!9:HHHr  r"  c                   $    e Zd ZdefdefdefgZdS )c_nvmlVgpuSchedulerSetState_tr  enableARRModer  N)r  r	  r
  r  r"  rt  r  r  r  r$  r$    s.        	F#	F#	:;HHHr  r$  c            	       H    e Zd Zdeez  fdefdefdefdefdefdefdefgZd	S )
!c_nvmlVgpuSchedulerCapabilities_tsupportedSchedulersmaxTimesliceminTimesliceisArrModeSupportedmaxFrequencyForARRminFrequencyForARRmaxAvgFactorForARRminAvgFactorForARRN)r  r	  r
  r  *NVML_SUPPORTED_VGPU_SCHEDULER_POLICY_COUNTrt  r  r  r  r'  r'    s[        	)S ST	'	'	'	'	'	'	'	HHHr  r'  c                   $    e Zd ZdefdefdefgZdS )c_nvmlFBCStats_tsessionsCount
averageFPSaverageLatencyNr  r  r  r  r2  r2    s-         &)v&!6*HHHr  r2  c                   Z    e Zd Zdefdefdefdefdefdefdefdefd	efd
efdefdefgZdS )c_nvmlFBCSession_tr  r  rq  displayOrdinalsessionTypesessionFlagshMaxResolutionvMaxResolutionr  r  r4  r5  Nr  r  r  r  r7  r7    su        	f		,-	6"		 	6"	6"			v	6"HHHr  r7  c                       e Zd ZdefdefgZdS )c_nvmlGpuInstancePlacement_tstartr  Nr  r  r  r  r>  r>     %        &! HHHr  r>  c                   T    e Zd Zdefdefdefdefdefdefdefdefd	efd
efdefgZdS )c_nvmlGpuInstanceProfileInfo_tr  isP2pSupported
sliceCountinstanceCountmultiprocessorCountcopyEngineCountdecoderCountencoderCount	jpegCountofaCountmemorySizeMBNr  r  r  r  rB  rB    sl        v!6*v& &)&/"F+((f%V$-HHHr  rB  i  c                   v     e Zd Zdefdefdefdefdefdefdefdefd	efd
efdefdefdeez  fgZ fdZ xZ	S )!c_nvmlGpuInstanceProfileInfo_v2_tr  r  rC  rD  rE  rF  rG  rH  rI  rJ  rK  rL  ri  c                 d    t          t          |                               t                     d S rM  )r  rN  ro  nvmlGpuInstanceProfileInfo_v2rO  s    r  ro  z*c_nvmlGpuInstanceProfileInfo_v2_t.__init__%  rP  r  )
r  r	  r
  r  r  r  NVML_DEVICE_NAME_V2_BUFFER_SIZErt  ro  r  r  s   @r  rN  rN    s        F#v!6*v& &)&/"F+((f%V$-"AABHg g g g g g g g gr  rN  c                   *    e Zd ZdefdefdefdefgZdS )c_nvmlGpuInstanceInfo_tr  r  	profileId	placementN)r  r	  r
  r  r  r>  rt  r  r  r  rS  rS  (  s5        >*vf%:;HHHr  rS  c                       e Zd ZdS )struct_c_nvmlGpuInstance_tNr  r  r  r  rW  rW  /  r  r  rW  c                       e Zd ZdefdefgZdS ) c_nvmlComputeInstancePlacement_tr?  r  Nr  r  r  r  rY  rY  @  r@  r  rY  c            
       H    e Zd Zdefdefdefdefdefdefdefdefd	efg	Zd
S )"c_nvmlComputeInstanceProfileInfo_tr  rD  rE  rF  sharedCopyEngineCountsharedDecoderCountsharedEncoderCountsharedJpegCountsharedOfaCountNr  r  r  r  r[  r[  E  s\        vv& &)&/(&1%v.%v."F+!6*	HHHr  r[  i  c                   j     e Zd Zdefdefdefdefdefdefdefdefd	efd
efdeez  fgZ fdZ xZS )%c_nvmlComputeInstanceProfileInfo_v2_tr  r  rD  rE  rF  r\  r]  r^  r_  r`  ri  c                 d    t          t          |                               t                     d S rM  )r  rb  ro  !nvmlComputeInstanceProfileInfo_v2rO  s    r  ro  z.c_nvmlComputeInstanceProfileInfo_v2_t.__init__a  s,    3T::CCLmCnnnnnr  )	r  r	  r
  r  r  rQ  rt  ro  r  r  s   @r  rb  rb  S  s        F#vv& &)&/(&1%v.%v."F+!6*"AABHo o o o o o o o or  rb  c                   0    e Zd ZdefdefdefdefdefgZdS )c_nvmlComputeInstanceInfo_tr  gpuInstancer  rT  rU  N)r  r	  r
  r  c_nvmlGpuInstance_tr  rY  rt  r  r  r  rf  rf  d  s>        >* 34vf%>?	HHHr  rf  c                   ,    e Zd ZdedfdefdefdefgZdS )$c_nvmlGpuDynamicPstatesUtilization_t
bIsPresentr   
percentageincThresholddecThresholdNr  r  r  r  rj  rj  q  s7        vq)v&((*HHHr  rj  c                   $    e Zd Zdefdeez  fgZdS )c_nvmlGpuDynamicPstatesInfo_tflagsutilizationN)r  r	  r
  r  rj  NVML_MAX_GPU_UTILIZATIONSrt  r  r  r  rp  rp  v  s-        &! DG` `acHHHr  rp  c                   0    e Zd ZdefdefdefdefdefgZdS )c_nvmlGpuThermalSensor_t
controllerdefaultMinTempdefaultMaxTempcurrentTemptargetN)r  r	  r
  r2  rt  r  r  r  ru  ru    s=        u%!5)!5)&5!	#HHHr  ru  c                   $    e Zd Zdefdeez  fgZdS )c_nvmlGpuThermalSettings_tr  sensorN)r  r	  r
  r  ru   NVML_MAX_THERMAL_SENSORS_PER_GPUrt  r  r  r  r|  r|    s-        &!36VVWYHHHr  r|  c                   *    e Zd ZdefdefdefdefgZdS )c_nvmlCoolerInfo_tr  indexcoolerControlTypecoolerTargetN)r  r	  r
  r  _nvmlCoolerControl_t_nvmlCoolerTarget_trt  r  r  r  r  r    s7        F#&!$&:;!45HHHr  r  c                     t                      }t          |_        d|_        t	          d          } || t          |                    }t          |           |j        |j        gS )Nr   nvmlDeviceGetCoolerInfo)	r  nvmlCoolerInfo_v1r  r  rj  byrefra  r  r  )handlec_coolerInfofnr`  s       r  r  r    sc    %''L,LL	 !:	;	;B
"VU<((
)
)CS*L,EFFr  c                       e Zd ZdS )struct_c_nvmlComputeInstance_tNr  r  r  r  r  r    r  r  r  c            
       H    e Zd Zdefdefdefdefdefdefdefdefd	efg	Zd
S )c_nvmlDeviceAttributesrF  r\  r]  r^  r_  r`  gpuInstanceSliceCountcomputeInstanceSliceCountrL  Nr  r  r  r  r  r    s]        &/(&1%v.%v."F+!6*(&1,f5-	HHHr  r  c                   0    e Zd ZdefdefdefdefdefgZdS ) c_nvmlRowRemapperHistogramValuesmaxhighpartiallownoneNr  r  r  r  r  r    s;         F# 	HHHr  r  i   c                   $    e Zd ZdefdefdefgZdS )c_nvmlConfComputeSystemState_tenvironment	ccFeaturedevToolsModeNr  r  r  r  r  r    s-        'f%(HHHr  r  i  c                   @     e Zd ZdefdefdefdefdefgZ fdZ xZS )$c_nvmlSystemConfComputeSettings_v1_tr  r  r  r  multiGpuModec                 d    t          t          |                               t                     d S rM  )r  r  ro   nvmlSystemConfComputeSettings_v1rO  s    r  ro  z-c_nvmlSystemConfComputeSettings_v1_t.__init__  s,    2D99BBKkBlllllr  r  r	  r
  r  rt  ro  r  r  s   @r  r  r    sp        F#'f%((	Hm m m m m m m m mr  r  c                       e Zd ZdefdefgZdS )c_nvmlConfComputeSystemCaps_tcpuCapsgpusCapsNr  r  r  r  r  r    s%        F#V$HHHr  r  c                       e Zd ZdefdefgZdS )c_nvmlConfComputeMemSizeInfo_tprotectedMemSizeKibunprotectedMemSizeKibNr  r  r  r  r  r    s%        &4(+6HHHr  r  c                   6    e Zd Zdefdefdeez  fdeez  fgZdS )!c_nvmlConfComputeGpuCertificate_tcertChainSizeattestationCertChainSize	certChainattestationCertChainN)r  r	  r
  r  rQ  NVML_GPU_CERT_CHAIN_SIZE$NVML_GPU_ATTESTATION_CERT_CHAIN_SIZErt  r  r  r  r  r   	  sA         &)+V4g(@@A'3W)WXHHHr  r  c                   H    e Zd Zdefdefdefdeez  fdeez  fdeez  fgZdS )'c_nvmlConfComputeGpuAttestationReport_tisCecAttestationReportPresentattestationReportSizececAttestationReportSizenonceattestationReportcecAttestationReportN)	r  r	  r
  r  rQ  NVML_CC_GPU_CEC_NONCE_SIZE#NVML_CC_GPU_ATTESTATION_REPORT_SIZE'NVML_CC_GPU_CEC_ATTESTATION_REPORT_SIZErt  r  r  r  r  r  	  sW        0&9(&1+V4'$>>?$g0S&ST'3Z)Z[HHHr  r  c                       e Zd ZdefdefgZdS ).c_nvmlConfComputeSetKeyRotationThresholdInfo_tr  maxAttackerAdvantageNr  r	  r
  r  r0  rt  r  r  r  r  r  	  s%        F#'1HHHr  r  c                       e Zd ZdefdefgZdS ).c_nvmlConfComputeGetKeyRotationThresholdInfo_tr  attackerAdvantageNr  r  r  r  r  r  	  s%        F#$g.HHHr  r  c                 `     t                      fd            }t          j        dk    r|S  S )ad  
    In python 3, strings are unicode instead of bytes, and need to be converted for ctypes
    Args from caller: (1, 'string', <__main__.c_nvmlDevice_t at 0xFFFFFFFF>)
    Args passed to function: (1, b'string', <__main__.c_nvmlDevice_t at 0xFFFFFFFF)>
    ----
    Returned from function: b'returned string'
    Returned to caller: 'returned string'
    c                      d | D             }  | i |}t          |t                    r+t          |t                    r|S |                                S |S )Nc                 d    g | ]-}t          |t                    r|                                n|.S r  )ru  r  r~  )rC  args     r  rE  z4convertStrBytes.<locals>.wrapper.<locals>.<listcomp>*	  s3    NNN#
3 4 4=

#NNNr  )ru  rv  r  rw  )argskwargsr  funcs      r  wrapperz convertStrBytes.<locals>.wrapper'	  sk     ONNNNdD#F## c5!! 	 #s## 
::<<
r  r  )r   rN  r}  r  r  s   ` r  convertStrBytesr  	  sH     4[[    [ 4Kr  c                 <     t                      fd            }|S )Nc                  f    	  | i |S # t           $ r t          dj        z   dz             w xY w)NzUnversioned function called and the pyNVML version does not match the NVML lib version. Either use matching pyNVML and NVML lib versions or use a versioned function such as _v2)NVMLError_FunctionNotFoundr  r  )r  r  r  s     r  r  z'throwOnVersionMismatch.<locals>.wrapper:	  su    	h4(((() 	h 	h 	h* ,O RVQ^,_ bg,g h h h	hs    %0r   r  s   ` r  throwOnVersionMismatchr  9	  s8    
4[[h h h h [h Nr  c                     t                       t          d          } ||           }t          |           t                                           t
          dz  at                                           d S )NnvmlInitWithFlagsr   )_LoadNvmlLibraryrj  ra  rd  re  _nvmlLib_refcountrg  )rq  r  r`  s      r  r  r  F	  so    
 
!!4	5	5B
"U))CS 4r  c                  $    t          d           d S rs  )r  r  r  r  nvmlInitr  W	  s    a4r  c            	         t           dk    rkt                                           	 t           dk    r	 t          j        dd         dk    r	 t          t          j                            t          j	        dd          d                    a nf# t          $ rJ} t          t          j                            t          j	        dd          d	                    a Y d} ~ nd} ~ ww xY wt          d
          a n+# t          $ r} t          t                     Y d} ~ nd} ~ ww xY wt           dk    rt          t                     t                                           dS # t                                           w xY wdS )z5
    Load the library if it isn't loaded already
    Nr	   winWINDIRz
C:/WindowszSystem32/nvml.dllProgramFileszC:/Program Filesz!NVIDIA Corporation/NVSMI/nvml.dllzlibnvidia-ml.so.1)rf  rd  re  rN  platformCDLLospathr  getenvOSErrorra  r2  rg  )oses    r  r  r  [	  s    	4	"4CRaR(E11M&*27<<	(L8Y8Y[n+o+o&p&pGG& M M M '+27<<	.Rd8e8e  hK  ,L  ,L  'M  'MGGGGGGM #'':";"; C C C$%ABBBBBBBBCtOO$%ABBB !!!!!K!!!!5 	s`   E C5 A B C5 
C"A CC5 C""C5 4E 5
D?DE D"E E5c                      t          d          }  |             }t          |           t                                           dt          k     r
t          dz  at                                           d S )NnvmlShutdownr   r   )rj  ra  rd  re  r  rg  )r  r`  s     r  r  r  }	  sl     
!	0	0B
"$$CS 	Q4r  c                 R    t          d          }t          |_         ||           }|S )Nr  )rj  c_char_prestype)r  r  r`  s      r  r  r  	  s)    	 !2	3	3BBJ
"V**CJr  c                      t          t                    } t          d          } || t          t                              }t	          |           | j        S )NnvmlSystemGetNVMLVersion)create_string_buffer$NVML_SYSTEM_NVML_VERSION_BUFFER_SIZErj  r  ra  r  	c_versionr  r`  s      r  r  r  	  sN    $%IJJI	 !;	<	<B
"YCDD
E
ECS?r  c                      t                      } t          d          } |t          |                     }t          |           | j        S )NnvmlSystemGetCudaDriverVersionr2  rj  r  ra  r  c_cuda_versionr  r`  s      r  r  r  	  sG    WWN	 !A	B	BB
"U>""
#
#CSr  c                      t                      } t          d          } |t          |                     }t          |           | j        S )N!nvmlSystemGetCudaDriverVersion_v2r  r  s      r  r  r  	  sG    WWN	 !D	E	EB
"U>""
#
#CSr  c                     t          d          }t          d          } |t          |           |t          d                    }t          |           |j        S )Nr  nvmlSystemGetProcessName)r  rj  r  ra  r  )r  c_namer  r`  s       r  r  r  	  sR    !$''F	 !;	<	<B
"VC[[&&,,
/
/CS<r  c                      t          t                    } t          d          } || t          t                              }t	          |           | j        S )NnvmlSystemGetDriverVersion)r  r  rj  r  ra  r  r  s      r  r  r  	  sN    $%KLLI	 !=	>	>B
"YEFF
G
GCS?r  c                  ^   t          d          } d }t          d          } |t          |           d           }|t          k    r|t          k    rt          |          | j        dk    rg S t          | j        z  } |            } |t          |           |          }t          |           |S )Nr   nvmlSystemGetHicVersion)	r  rj  r  r_  r-  r  r  r$  ra  )c_counthicsr  r`  	hic_arrays        r  r  r  	  s    QiiGD	 !:	;	;B "U7^^T
"
"C 
			,	,	,nn 		!GM1I9;;D
"U7^^T
"
"CSKr  c                      t          d          } t          | _        t          d          } |t	          |           t          t                              }t          |           | S )Nr   nvmlSystemGetDriverBranch)r  SystemDriverBranchInfo_v1r  rj  r  r  r  ra  )c_branchInfor  r`  s      r  r  r  	  s[    4Q77L4L
!"=
>
>B
"U<  &)O"P"P
Q
QCSr  c                      t                      } t          d          } |t          |                     }t          |           | j        S )NnvmlUnitGetCountr  rj  r  ra  r  r   r  r`  s      r  r  r  	  sD    hhG	 !3	4	4B
"U7^^

CS=r  c                     t          |           }t                      }t          d          } ||t          |                    }t	          |           |S )NnvmlUnitGetHandleByIndex)r  c_nvmlUnit_trj  r  ra  )r  c_indexunitr  r`  s        r  r  r  	  sN    UmmG>>D	 !;	<	<B
"WeDkk
"
"CSKr  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlUnitGetUnitInfo)r  rj  r  ra  r  c_infor  r`  s       r  r  r  	  sE    F	 !6	7	7B
"T5==
!
!CSMr  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlUnitGetLedState)r  rj  r  ra  )r  c_stater  r`  s       r  r  r  	  sE    !!G	 !6	7	7B
"T5>>
"
"CSNr  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlUnitGetPsuInfo)r  rj  r  ra  r  s       r  r  r  	  sE    F	 !5	6	6B
"T5==
!
!CSMr  c                     t                      }t          d          } || t          |          t          |                    }t          |           |j        S )NnvmlUnitGetTemperaturer	  )r  rU  c_tempr  r`  s        r  r  r  
  sN    XXF	 !9	:	:B
"T6$<<v
/
/CS<r  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlUnitGetFanSpeedInfo)r  rj  r  ra  )r  c_speedsr  r`  s       r  r  r  	
  sE    $&&H	 !:	;	;B
"T5??
#
#CSOr  c                     t          d          }t          d          } || t          |          d           }|t          k    rt          }t          |           |j        S )Nr   nvmlUnitGetDevices)r  rj  r  r-  r_  ra  r  )r  r   r  r`  s       r  nvmlUnitGetDeviceCountr!  
  s[    QiiG	 !5	6	6B
"T5>>4
(
(C+++S=r  c                     t          t          |                     }t          |j        z  } |            }t	          d          } || t          |          |          }t          |           |S )Nr   )r  r!  r  r  rj  r  ra  )r  r   device_array	c_devicesr  r`  s         r  r   r   
  sj    +D1122G!GM1LI	 !5	6	6B
"T5>>9
-
-CSr  c                      t                      } t          d          } |t          |                     }t          |           | j        S )NnvmlDeviceGetCount_v2r	  r
  s      r  nvmlDeviceGetCountr'  %
  sD    hhG	 !8	9	9B
"U7^^

CS=r  c                     t          |           }t                      }t          d          } ||t          |                    }t	          |           |S )NnvmlDeviceGetHandleByIndex_v2r  r  rj  r  ra  )r  r  r  r  r`  s        r  nvmlDeviceGetHandleByIndexr+  ,
  sP    UmmGF	 !@	A	AB
"WeFmm
$
$CSMr  c                     t          |           }t                      }t          d          } ||t          |                    }t	          |           |S )NnvmlDeviceGetHandleBySerialr  r  rj  r  ra  )r  c_serialr  r  r`  s        r  r-  r-  4
  sR    HF	 !>	?	?B
"XuV}}
%
%CSMr  c                     t          |           }t                      }t          d          } ||t          |                    }t	          |           |S )NnvmlDeviceGetHandleByUUIDr.  )r  c_uuidr  r  r`  s        r  r1  r1  =
  sP    d^^FF	 !<	=	=B
"VU6]]
#
#CSMr  c                     t          |           }t                      }t          d          } ||t          |                    }t	          |           |S )N nvmlDeviceGetHandleByPciBusId_v2r.  )pciBusIdc_busIdr  r  r`  s        r  nvmlDeviceGetHandleByPciBusIdr7  F
  sR    x  GF	 !C	D	DB
"WeFmm
$
$CSMr  c                     t          t                    }t          d          } || |t          t                              }t	          |           |j        S )NnvmlDeviceGetName)r  rQ  rj  r  ra  r  )r  r  r  r`  s       r  r9  r9  O
  P    !"ABBF	 !4	5	5B
"VVV$CDD
E
ECS<r  c                   $    e Zd Zdefdeez  fgZdS )c_nvmlDevicePerfModes_v1_tr  r  Nr  r	  r
  r  r  NVML_PERF_MODES_BUFFER_SIZErt  r  r  r  r<  r<  W
  +        	F	445HHHr  r<  i c                     t                      }t          |_        t          d          } || t	          |                    }t          |           |j        S )NnvmlDeviceGetPerformanceModes)r<  nvmlDevicePerfModes_v1r  rj  r  ra  r  )r  	perfModesr  r`  s       r  rA  rA  _
  sR    *,,I.I	 !@	A	AB
"VU9%%
&
&CS=r  c                   $    e Zd Zdefdeez  fgZdS )"c_nvmlDeviceCurrentClockFreqs_v1_tr  r  Nr=  r  r  r  rE  rE  h
  r?  r  rE  c                     t                      }t          |_        t          d          } || t	          |                    }t          |           |j        S )NnvmlDeviceGetCurrentClockFreqs)rE  nvmlDeviceCurrentClockFreqs_v1r  rj  r  ra  r  )r  currentClockFreqsr  r`  s       r  rG  rG  p
  sV    :<< >	 !A	B	BB
"VU,--
.
.CS  r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetBoardIdr	  )r  c_idr  r`  s       r  rK  rK  y
  sF    88D	 !7	8	8B
"VU4[[
!
!CS:r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetMultiGpuBoardr	  )r  
c_multiGpur  r`  s       r  rN  rN  
  sI    J	 !=	>	>B
"VU:&&
'
'CSr  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetBrand)_nvmlBrandType_trj  r  ra  r  )r  c_typer  r`  s       r  rQ  rQ  
  sH    F	 !5	6	6B
"VU6]]
#
#CS<r  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlDeviceGetC2cModeInfoV)r  rj  r  ra  r  r  r  r`  s       r  nvmlDeviceGetC2cModeInfoV1rW  
  sE    #%%F	 !<	=	=B
"VU6]]
#
#CSMr  c                      t          |           S r#  )rW  r  s    r  rU  rU  
      %f---r  c                     t          t                    }t          d          } || |t          t                              }t	          |           |j        S )NnvmlDeviceGetBoardPartNumber)r  #NVML_DEVICE_PART_NUMBER_BUFFER_SIZErj  r  ra  r  )r  c_part_numberr  r`  s       r  r\  r\  
  sQ    ()LMMM	 !?	@	@B
"V]F+N$O$O
P
PCSr  c                     t          t                    }t          d          } || |t          t                              }t	          |           |j        S )NnvmlDeviceGetSerial)r  NVML_DEVICE_SERIAL_BUFFER_SIZErj  r  ra  r  )r  r/  r  r`  s       r  r`  r`  
  sP    #$BCCH	 !6	7	7B
"VXv&DEE
F
FCS>r  c                     t          |          t          u}|r|nt          |          }t          d          } || |          }|r|S t	          |           |j        S )NnvmlDeviceGetModuleId)rU  r  r  rj  ra  r  )r  moduleIdisReferencemoduleIdRefr  r`  s         r  rc  rc  
  sh    x...K)>((uXK	 !8	9	9B
"V[
!
!C 
~r  c                     t           |z  } |            }t          d          } || |t          |          t          |                    }t	          |           |S )NnvmlDeviceGetMemoryAffinityr  rj  r  _nvmlAffinityScope_tra  )r  nodeSetSizescopeaffinity_array
c_affinityr  r`  s          r  rh  rh  
  sa     ;.N!!J	 !>	?	?B
"V[%
"3"35I%5P5P
Q
QCSr  c                     t           |z  } |            }t          d          } || |t          |          t          |                    }t	          |           |S )N#nvmlDeviceGetCpuAffinityWithinScoperi  )r  
cpuSetSizerl  rm  rn  r  r`  s          r  rp  rp  
  sa     :-N!!J	 !F	G	GB
"VZz!2!24H4O4O
P
PCSr  c                     t           |z  } |            }t          d          } || |t          |                    }t          |           |S )NnvmlDeviceGetCpuAffinity)r  rj  r  ra  )r  rq  rm  rn  r  r`  s         r  rs  rs  
  sV     :-N!!J	 !;	<	<B
"VZz!2!2
3
3CSr  c                 X    t          d          } ||           }t          |           d S )NnvmlDeviceSetCpuAffinityrj  ra  r  r  r`  s      r  ru  ru  
  s0    	 !;	<	<B
"V**CS4r  c                 X    t          d          } ||           }t          |           d S )NnvmlDeviceClearCpuAffinityrv  rw  s      r  ry  ry  
  s0    	 !=	>	>B
"V**CS4r  c                     t          d          }t                      } || t          |                    }t          |           |j        S )NnvmlDeviceGetNumaNodeIdrj  r2  r  ra  r  )r  r  noder`  s       r  r{  r{  
  sF    	 !:	;	;B77D
"VU4[[
!
!CS:r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetMinorNumberr	  )r  c_minor_numberr  r`  s       r  r  r  
  sI    XXN	 !;	<	<B
"VU>**
+
+CSr  c                     t          t                    }t          d          } || |t          t                              }t	          |           |j        S )NnvmlDeviceGetUUID)r  NVML_DEVICE_UUID_V2_BUFFER_SIZErj  r  ra  r  )r  r2  r  r`  s       r  r  r  
  r:  r  c                     t          t                    }t          d          } || t          |          |t	          t                              }t          |           |j        S )NnvmlDeviceGetInforomVersion)r  'NVML_DEVICE_INFOROM_VERSION_BUFFER_SIZErj  _nvmlInforomObject_tr  ra  r  )r  infoRomObjectr  r  r`  s        r  r  r  
  sb    $%LMMI	 !>	?	?B
"V)-88F#JKKM MCS?r  c                     t          t                    }t          d          } || |t          t                              }t	          |           |j        S )N nvmlDeviceGetInforomImageVersion)r  r  rj  r  ra  r  r  r  r  r`  s       r  r  r  
  sP    $%LMMI	 !C	D	DB
"VY'N O O
P
PCS?r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )N)nvmlDeviceGetInforomConfigurationChecksumr	  )r  
c_checksumr  r`  s       r  r  r     sI    J	 !L	M	MB
"VU:&&
'
'CSr  c                 X    t          d          } ||           }t          |           d S )NnvmlDeviceValidateInforomrv  rw  s      r  r  r    s0    	 !<	=	=B
"V**CS4r  c                     t                      }t                      }t          d          } || t          |          t          |                    }t	          |           |j        |j        gS )NnvmlDeviceGetLastBBXFlushTime)r  r0  rj  r  ra  r  )r  c_timestampc_durationUsr  r`  s        r  r  r    sd    --K99L	 !@	A	AB
"VU;''|)<)<
=
=CS|122r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetDisplayMode_nvmlEnableState_trj  r  ra  r  r  c_moder  r`  s       r  r  r    H    !!F	 !;	<	<B
"VU6]]
#
#CS<r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetDisplayActiver  r  s       r  r  r    sH    !!F	 !=	>	>B
"VU6]]
#
#CS<r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetPersistenceModer  )r  r  r  r`  s       r  r  r  %  sH     ""G	 !?	@	@B
"VU7^^
$
$CS=r  c                 Z    t          d          } || |          }t          |           d S )NnvmlDeviceGetPciInfoExtrv  rV  s       r  r  r  ,  s4    	 !:	;	;B
"VV

CS4r  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlDeviceGetPciInfo_v3r  rj  r  ra  rV  s       r  r  r  2  sC    __F	 !:	;	;B
"VU6]]
#
#CSMr  c                      t          |           S r#  )r  rY  s    r  nvmlDeviceGetPciInfor  9  s    "6***r  c                     t                      }t          d          } || t          |          t          |                    }t	          |           |j        S )NnvmlDeviceGetClockInfor  rj  _nvmlClockType_tr  ra  r  r  rU  c_clockr  r`  s        r  r  r  <  sQ    hhG	 !9	:	:B
"V%d++U7^^
<
<CS=r  c                     t                      }t          d          } || t          |          t          |                    }t	          |           |j        S )NnvmlDeviceGetMaxClockInfor  r  s        r  r  r  D  sQ    hhG	 !<	=	=B
"V%d++U7^^
<
<CS=r  c                     t                      }t          d          } || t          |          t          |                    }t	          |           |j        S )NnvmlDeviceGetApplicationsClockr  r  s        r  r  r  L  sQ    hhG	 !A	B	BB
"V%d++U7^^
<
<CS=r  c                     t                      }t          d          } || t          |          t          |                    }t	          |           |j        S )N"nvmlDeviceGetMaxCustomerBoostClockr  r  s        r  r  r  S  sQ    hhG	 !E	F	FB
"V%d++U7^^
<
<CS=r  c                     t                      }t          d          } || t          |          t          |          t	          |                    }t          |           |j        S )NnvmlDeviceGetClock)r  rj  r  _nvmlClockId_tr  ra  r  )r  rU  r  r  r  r`  s         r  r  r  Z  s[    hhG	 !5	6	6B
"V%d++^B-?-?w
P
PCS=r  c                     t                      }t          d          } || t          |          t          |                    }t	          |           |j        S )N%nvmlDeviceGetDefaultApplicationsClockr  r  s        r  r  r  b  sQ    hhG	 !H	I	IB
"V%d++U7^^
<
<CS=r  c                    t          d          }t          d          } || t          |          d           }|t          k    rg S |t          k    rxt           |j        z  } |            } || t          |          |          }t          |           g }t          |j                  D ]}|                    ||                    |S t          |          )Nr   "nvmlDeviceGetSupportedMemoryClocks
r  rj  r  r_  r-  r  ra  ranger  r  )r  r   r  r`  clocks_arrayc_clocksprocsis           r  r  r  j  s    QiiG	 !E	F	FB
"VU7^^T
*
*C|	
-
-
--<>> bw22w}%% 	& 	&ALL!%%%% nnr  c                    t          d          }t          d          } || t          |          t          |          d           }|t          k    rg S |t          k    rt           |j        z  } |            } || t          |          t          |          |          }t          |           g }t          |j                  D ]}|                    ||                    |S t          |          )Nr   $nvmlDeviceGetSupportedGraphicsClocksr  )	r  memoryClockMHzr   r  r`  r  r  r  r  s	            r  r  r    s    QiiG	 !G	H	HB
"VVN++U7^^T
B
BC|	
-
-
--<>> b//wJJw}%% 	& 	&ALL!%%%% nnr  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetFanSpeedr	  )r  c_speedr  r`  s       r  r  r    sF    hhG	 !8	9	9B
"VU7^^
$
$CS=r  c                     t                      }t          d          } || |t          |                    }t          |           |j        S )NnvmlDeviceGetFanSpeed_v2r	  r  fanr  r  r`  s        r  r  r    sH    hhG	 !;	<	<B
"VS%..
)
)CS=r  c                   $    e Zd ZdefdefdefgZdS )c_nvmlFanSpeedInfo_tr  r  r  Nr  r  r  r  r  r    s,        	F		&HHHr  r  c                     t                      }d|_        t          |_        t	          d          } || t          |                    }t          |           |j        S )Nr   nvmlDeviceGetFanSpeedRPM)r  r  nvmlFanSpeedInfo_v1r  rj  r  ra  r  )r  
c_fanSpeedr  r`  s       r  r  r    sZ    %''JJN,J	 !;	<	<B
"VU:&&
'
'CSr  c                     t                      }t          d          } || |t          |                    }t          |           |j        S )NnvmlDeviceGetTargetFanSpeedr	  r  s        r  r  r    sH    hhG	 !>	?	?B
"VS%..
)
)CS=r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetNumFansr	  )r  	c_numFansr  r`  s       r  r  r    sH    I	 !7	8	8B
"VU9%%
&
&CS?r  c                 d    t          d          } || |          }t          |           t          S )NnvmlDeviceSetDefaultFanSpeed_v2rj  ra  r_  )r  r  r  r`  s       r  r  r    s5    	 !B	C	CB
"VU

CSr  c                 *   t          |          t          upt          |          t          u}|r|nt          |          }|r|nt          |          }t          d          } || ||          }t	          |           |rt
          n|j        |j        gS )NnvmlDeviceGetMinMaxFanSpeedrU  r  r  rj  ra  r_  r  )r  minSpeedmaxSpeedre  minSpeedRefmaxSpeedRefr  r`  s           r  r  r    s    >>/RT(^^65QK)>((uXK)>((uXK	 !>	?	?B
"V[+
.
.CS&L<<X^X^,LLr  c                     t          |          t          u}|r|nt          |          }t          d          } || ||          }t	          |           |rt
          n|j        S )N nvmlDeviceGetFanControlPolicy_v2r  )r  r  fanControlPolicyre  fanControlPolicyRefr  r`  s          r  r  r    sr    '((6K.9V**uEU?V?V	 !C	D	DB
"VS-
.
.CS&B<<,<,BBr  c                     t          d          } || |t          |                    }t          |           t          S )NnvmlDeviceSetFanControlPolicy)rj  _nvmlFanControlPolicy_tra  r_  )r  r  r  r  r`  s        r  r  r    sA    	 !@	A	AB
"VS12BCC
D
DCSr  c                   $    e Zd ZdefdefdefgZdS )c_nvmlTemperature_v1_tr  
sensorTypetemperatureN)r  r	  r
  r  _nvmlTemperatureSensors_tr2  rt  r  r  r  r  r    s.        	F	01	HHHr  r  c                     t                      }t          |_        t          |          |_        t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetTemperatureV)	r  nvmlTemperature_v1r  r  r  rj  r  ra  r  r  r}  r  r  r`  s        r  nvmlDeviceGetTemperatureV1r    s`    #%%F'FN1&99F	 !<	=	=B
"VU6]]
#
#CSr  c                 `    |t           k    rt          | |          S t          t                    r#  )r  r  r  $NVML_ERROR_ARGUMENT_VERSION_MISMATCH)r  r}  r  s      r  r  r    s-    $$$)&&999<===r  c                     t                      }t          d          } || t          |          t          |                    }t	          |           |j        S )NnvmlDeviceGetTemperature)r  rj  r  r  ra  r  r  s        r  r  r    sQ    XXF	 !;	<	<B
"V.v66f
F
FCS<r  c                     t                      }t          d          } || t          |          t          |                    }t	          |           |j        S )N!nvmlDeviceGetTemperatureThreshold)r  rj  _nvmlTemperatureThresholds_tr  ra  r  )r  	thresholdr  r  r`  s        r  r  r    sQ    XXF	 !D	E	EB
"V1)<<eFmm
L
LCS<r  c                     t                      }||_        t          d          } || t          |          t	          |                    }t          |           d S )N!nvmlDeviceSetTemperatureThreshold)r  r  rj  r  r  ra  )r  r  tempr  r  r`  s         r  r  r    sU    XXFFL	 !D	E	EB
"V1)<<eFmm
L
LCS4r  c                     t                      }t          |_        t          d          } || t	          |                    }t          |           |j        S )NnvmlDeviceGetMarginTemperature)r  nvmlMarginTemperature_v1r  rj  r  ra  r  )r  c_marginTempInfor  r`  s       r  r  r    sV    3557	 !A	B	BB
"VU+,,
-
-CS--r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetPowerState_nvmlPstates_trj  r  ra  r  r  c_pstater  r`  s       r  r   r   #  sH    H	 !:	;	;B
"VU8__
%
%CS>r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetPerformanceStater  r  s       r  r  r  *  sH    H	 !@	A	AB
"VU8__
%
%CS>r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )N nvmlDeviceGetPowerManagementModer  )r  
c_pcapModer  r`  s       r  r  r  1  sK    #%%J	 !C	D	DB
"VU:&&
'
'CSr  c                     t                      }t          d          } || t          |                    }t          |           |j        S )N!nvmlDeviceGetPowerManagementLimitr	  r  c_limitr  r`  s       r  r  r  8  sF    hhG	 !D	E	EB
"VU7^^
$
$CS=r  c                     t                      }t                      }t          d          } || t          |          t          |                    }t          |           |j        |j        gS )N,nvmlDeviceGetPowerManagementLimitConstraintsr	  )r  
c_minLimit
c_maxLimitr  r`  s        r  r  r  @  sd    JJ	 !O	P	PB
"VU:&&j(9(9
:
:CSj.//r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )N(nvmlDeviceGetPowerManagementDefaultLimitr	  r  s       r  r  r  I  sF    hhG	 !K	L	LB
"VU7^^
$
$CS=r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetEnforcedPowerLimitr	  r  s       r  r  r  R  sF    hhG	 !B	C	CB
"VU7^^
$
$CS=r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetPowerUsager	  )r  c_wattsr  r`  s       r  r  r  Y  sF    hhG	 !:	;	;B
"VU7^^
$
$CS=r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )N#nvmlDeviceGetTotalEnergyConsumption)c_uint64rj  r  ra  r  )r  c_millijoulesr  r`  s       r  r  r  `  sI    JJM	 !F	G	GB
"VU=))
*
*CSr  c                     t                      }t                      }t          d          } || t          |          t          |                    }t          |           |j        |j        gS )NnvmlDeviceGetGpuOperationMode)_nvmlGpuOperationMode_trj  r  ra  r  r  c_currStatec_pendingStater  r`  s        r  r  r  h  sh    )++K,..N	 !@	A	AB
"VU;''~)>)>
?
?CS~344r  c                 ,    t          |           d         S rs  r  rY  s    r  $nvmlDeviceGetCurrentGpuOperationModer%  q      (0033r  c                 ,    t          |           d         S Nr   r$  rY  s    r  $nvmlDeviceGetPendingGpuOperationModer)  u  r&  r  c                     |st                      }t          d          }n$t                      }||_        t          d          } || t	          |                    }t          |           |S )NnvmlDeviceGetMemoryInfonvmlDeviceGetMemoryInfo_v2)r  rj  r  r  r  ra  )r  r  c_memoryr  r`  s        r  r+  r+  x  sq     C!##$%>??$&&"$%ABB
"VU8__
%
%CSOr  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlDeviceGetBAR1MemoryInfo)r  rj  r  ra  )r  c_bar1_memoryr  r`  s       r  r/  r/    sH    &((M	 !>	?	?B
"VU=))
*
*CSr  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetComputeMode)_nvmlComputeMode_trj  r  ra  r  r  s       r  r2  r2    r  r  c                     t                      }t                      }t          d          } || t          |          t          |                    }t          |           |j        |j        fS )N"nvmlDeviceGetCudaComputeCapabilityr  )r  c_majorc_minorr  r`  s        r  r5  r5    s^    ggGggG	 !E	F	FB
"VU7^^U7^^
4
4CSM7=))r  c                     t                      }t                      }t          d          } || t          |          t          |                    }t          |           |j        |j        gS )NnvmlDeviceGetEccModer  r   s        r  r9  r9    sh    $&&K'))N	 !7	8	8B
"VU;''~)>)>
?
?CS~344r  c                 ,    t          |           d         S rs  r9  rY  s    r  nvmlDeviceGetCurrentEccModer<        ''**r  c                 ,    t          |           d         S r(  r;  rY  s    r  nvmlDeviceGetPendingEccModer?    r=  r  c                     t                      }t          d          } || t          |                    }t          |           |j        gS )NnvmlDeviceGetDefaultEccModer  )r  c_defaultStater  r`  s       r  rA  rA    sN    '))N	 !>	?	?B
"VU>**
+
+CS !!r  c                     t                      }t          d          } || t          |          t          |          t	          |                    }t          |           |j        S )NnvmlDeviceGetTotalEccErrors)r  rj  _nvmlMemoryErrorType_t_nvmlEccCounterType_tr  ra  r  )r  	errorTypecounterTyper   r  r`  s         r  rD  rD    sb    mmG	 !>	?	?B
"V+I66&{33U7^^E ECS=r  c                     t                      }t          d          } || t          |          t          |          t	          |                    }t          |           |S )NnvmlDeviceGetDetailedEccErrors)r  rj  rE  rF  r  ra  )r  rG  rH  c_countsr  r`  s         r  rJ  rJ    sa    %''H	 !A	B	BB
"V+I66&{33U8__F FCSOr  c           	          t                      }t          d          } || t          |          t          |          t	          |          t          |                    }t          |           |j        S )NnvmlDeviceGetMemoryErrorCounter)r  rj  rE  rF  _nvmlMemoryLocation_tr  ra  r  )r  rG  rH  locationTyper   r  r`  s          r  rM  rM    sn    mmG	 !B	C	CB
"V#I..";//"<007^^	 C
 S=r  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlDeviceGetUtilizationRates)r   rj  r  ra  )r  c_utilr  r`  s       r  rQ  rQ    sE     ""F	 !@	A	AB
"VU6]]
#
#CSMr  c                     t                      }t                      }t          d          } || t          |          t          |                    }t          |           |j        |j        gS )NnvmlDeviceGetEncoderUtilizationr	  r  rR  c_samplingPeriodr  r`  s        r  rT  rT    d    XXFxx	 !B	C	CB
"VU6]]E*:$;$;
<
<CSL*011r  c                     t                      }t                      }t          d          } || t          |          t          |                    }t          |           |j        |j        gS )NnvmlDeviceGetDecoderUtilizationr	  rU  s        r  rY  rY    rW  r  c                     t                      }t                      }t          d          } || t          |          t          |                    }t          |           |j        |j        gS )NnvmlDeviceGetJpgUtilizationr	  rU  s        r  r[  r[    d    XXFxx	 !>	?	?B
"VU6]]E*:$;$;
<
<CSL*011r  c                     t                      }t                      }t          d          } || t          |          t          |                    }t          |           |j        |j        gS )NnvmlDeviceGetOfaUtilizationr	  rU  s        r  r^  r^    r\  r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetPcieReplayCounterr	  )r  c_replayr  r`  s       r  r`  r`    sF    xxH	 !A	B	BB
"VU8__
%
%CS>r  c                     t                      }t                      }t          d          } || t          |          t          |                    }t          |           |j        |j        gS )NnvmlDeviceGetDriverModel)_nvmlDriverModel_trj  r  ra  r  )r  c_currModelc_pendingModelr  r`  s        r  rc  rc    sh    $&&K'))N	 !;	<	<B
"VU;''~)>)>
?
?CS~344r  c                 ,    t          |           d         S rs  rc  rY  s    r  nvmlDeviceGetCurrentDriverModelri        #F++A..r  c                 ,    t          |           d         S r(  rh  rY  s    r  nvmlDeviceGetPendingDriverModelrl  	  rj  r  c                     t          t                    }t          d          } || |t          t                              }t	          |           |j        S )NnvmlDeviceGetVbiosVersion)r  %NVML_DEVICE_VBIOS_VERSION_BUFFER_SIZErj  r  ra  r  r  s       r  rn  rn    sP    $%JKKI	 !<	=	=B
"VY'L M M
N
NCS?r  c                 *   t          d          }t          d          } || t          |          d           }|t          k    rg S |t          k    r|j        dz  dz   |_        t          |j        z  } |            } || t          |          |          }t          |           g }t          |j                  D ]H}t          ||                   }|j
        t          j        k    rd |_
        |                    |           I|S t          |          )Nr   'nvmlDeviceGetComputeRunningProcesses_v2r   r   r  rj  r  r_  r-  r  r   ra  r  r{  r  "NVML_VALUE_NOT_AVAILABLE_ulonglongr  r  	r  r   r  r`  
proc_arrayc_procsr  r  r  s	            r  rq  rq    s   QiiG	 !J	K	KB
"VU7^^T
*
*C|	
-
-
-  )A-+gm;
*,,bw11w}%% 	 	A,WQZ88C!%G%MMM$(!LL nnr  c                 *   t          d          }t          d          } || t          |          d           }|t          k    rg S |t          k    r|j        dz  dz   |_        t          |j        z  } |            } || t          |          |          }t          |           g }t          |j                  D ]H}t          ||                   }|j
        t          j        k    rd |_
        |                    |           I|S t          |          )Nr   'nvmlDeviceGetComputeRunningProcesses_v3r   r   r  rj  r  r_  r-  r  c_nvmlProcessInfo_v3_tra  r  r{  r  rs  r  r  rt  s	            r  rx  rx  5  s   QiiG	 !J	K	KB
"VU7^^T
*
*C|	
-
-
-  )A-+gm;
*,, bw11w}%% 	 	A,WQZ88C!%G%MMM$(!LL nnr  c                      t          |           S r#  )rx  rY  s    r  $nvmlDeviceGetComputeRunningProcessesr|  W  s    26:::r  c                 *   t          d          }t          d          } || t          |          d           }|t          k    rg S |t          k    r|j        dz  dz   |_        t          |j        z  } |            } || t          |          |          }t          |           g }t          |j                  D ]H}t          ||                   }|j
        t          j        k    rd |_
        |                    |           I|S t          |          )Nr   (nvmlDeviceGetGraphicsRunningProcesses_v2r   r   rr  rt  s	            r  r~  r~  [  s   QiiG	 !K	L	LB
"VU7^^T
*
*C|	
-
-
-  )A-+gm;
*,,bw11w}%% 	 	A,WQZ88C!%G%MMM$(!LL nnr  c                 *   t          d          }t          d          } || t          |          d           }|t          k    rg S |t          k    r|j        dz  dz   |_        t          |j        z  } |            } || t          |          |          }t          |           g }t          |j                  D ]H}t          ||                   }|j
        t          j        k    rd |_
        |                    |           I|S t          |          )Nr   (nvmlDeviceGetGraphicsRunningProcesses_v3r   r   ry  rt  s	            r  r  r  y  s   QiiG	 !K	L	LB
"VU7^^T
*
*C|	
-
-
-  )A-+gm;
*,, bw11w}%% 	 	A,WQZ88C!%G%MMM$(!LL nnr  c                      t          |           S r#  )r  rY  s    r  %nvmlDeviceGetGraphicsRunningProcessesr    s    3F;;;r  c                      t          |           S r#  )*nvmlDeviceGetMPSComputeRunningProcesses_v3rY  s    r  'nvmlDeviceGetMPSComputeRunningProcessesr    s    5f===r  c                 *   t          d          }t          d          } || t          |          d           }|t          k    rg S |t          k    r|j        dz  dz   |_        t          |j        z  } |            } || t          |          |          }t          |           g }t          |j                  D ]H}t          ||                   }|j
        t          j        k    rd |_
        |                    |           I|S t          |          )Nr   *nvmlDeviceGetMPSComputeRunningProcesses_v2r   r   rr  rt  s	            r  r  r       QiiG	 !M	N	NB
"VU7^^T
*
*C|	
-
-
-  )A-+gm;
*,, bw11w}%% 	 	A,WQZ88C!%G%MMM$(!LL nnr  c                 *   t          d          }t          d          } || t          |          d           }|t          k    rg S |t          k    r|j        dz  dz   |_        t          |j        z  } |            } || t          |          |          }t          |           g }t          |j                  D ]H}t          ||                   }|j
        t          j        k    rd |_
        |                    |           I|S t          |          )Nr   r  r   r   ry  rt  s	            r  r  r    r  r  c                    t                      }||_        ||_        t          d          } || t	          |                    }|t
          k    rg S |t          k    rt          |j        z  }t           |            t          t                              |_         || t	          |                    }t          |           g }t          |j                  D ]\}|j        |         }	|	j        t          j        k    rd |	_        |	j        t          j        k    rd |	_        |                    |	           ]|S t'          |          )N%nvmlDeviceGetRunningProcessDetailList)c_nvmlProcessDetailList_tr  r  rj  r  r_  r-  r  r  castr  r  ra  r  r  rs  r  r  r  r  )
r  r  r  c_processDetailListr  r`  rv  r  r  r  s
             r  r  r    sI   355")#	 !H	I	IB "VU.//
0
0C|	
-
-
-*-@-TT(,gg[['BZ:[:[(\(\% b23344*>?? 	 	A%/2C!%G%MMM$(!,0R0XXX/3,LL nnr  c                     t                      }t                      }t          d          } || t          |          t          |                    }t          |           |j        |j        gS )N%nvmlDeviceGetAutoBoostedClocksEnabledr  )r  c_isEnabledc_defaultIsEnabledr  r`  s        r  r  r  
  sk    $&&K+--	 !H	I	IB
"VU;''/A)B)B
C
CCS1788r  c                 t    t          d          } || t          |                    }t          |           d S )NnvmlUnitSetLedState)rj  r  ra  )r  r  r  r`  s       r  r  r    s<    	 !6	7	7B
"T?5))
*
*CS4r  c                 t    t          d          } || t          |                    }t          |           d S )NnvmlDeviceSetPersistenceModerj  r  ra  r  r  r  r`  s       r  r  r    s=    	 !?	@	@B
"V'--
.
.CS4r  c                 t    t          d          } || t          |                    }t          |           d S )NnvmlDeviceSetComputeMode)rj  r3  ra  r  s       r  r  r     s=    	 !;	<	<B
"V'--
.
.CS4r  c                 t    t          d          } || t          |                    }t          |           d S )NnvmlDeviceSetEccModer  r  s       r  r  r  &  s=    	 !7	8	8B
"V'--
.
.CS4r  c                 t    t          d          } || t          |                    }t          |           d S )NnvmlDeviceClearEccErrorCounts)rj  rF  ra  )r  rH  r  r`  s       r  r  r  ,  s=    	 !@	A	AB
"V*;77
8
8CS4r  c                 t    t          d          } || t          |                    }t          |           d S )NnvmlDeviceSetDriverModel)rj  rd  ra  )r  r  r  r`  s       r  r  r  2  s=    	 !;	<	<B
"V'..
/
/CS4r  c                 t    t          d          } || t          |                    }t          |           d S )N%nvmlDeviceSetAutoBoostedClocksEnabledr  )r  enabledr  r`  s       r  r  r  8  s=    	 !H	I	IB
"V'00
1
1CS4r  c                     t          d          } || t          |          t          |                    }t          |           d S )N,nvmlDeviceSetDefaultAutoBoostedClocksEnabled)rj  r  r  ra  )r  r  rq  r  r`  s        r  r  r  ?  sE    	 !O	P	PB
"V'00&--
@
@CS4r  c                     t          d          } || t          |          t          |                    }t          |           d S )NnvmlDeviceSetGpuLockedClocksrj  r  ra  )r  minGpuClockMHzmaxGpuClockMHzr  r`  s        r  r  r  F  sF    	 !?	@	@B
"VVN++VN-C-C
D
DCS4r  c                 X    t          d          } ||           }t          |           d S )NnvmlDeviceResetGpuLockedClocksrv  rw  s      r  r  r  L  s0    	 !A	B	BB
"V**CS4r  c                     t          d          } || t          |          t          |                    }t          |           d S )NnvmlDeviceSetMemoryLockedClocksr  )r  minMemClockMHzmaxMemClockMHzr  r`  s        r  r  r  R  sF    	 !B	C	CB
"VVN++VN-C-C
D
DCS4r  c                 X    t          d          } ||           }t          |           d S )N!nvmlDeviceResetMemoryLockedClocksrv  rw  s      r  r  r  X  0    	 !D	E	EB
"V**CS4r  c                     t          |          t          u}|r|nt          |          }t          d          } || |          }t	          |           |rt
          n|S )NnvmlDeviceGetClkMonStatus)rU  r  r  rj  ra  r_  )r  c_clkMonInfore  c_clkMonInfoRefr  r`  s         r  r  r  ^  sg    |$$,>>K&1Jllu\7J7JO	 !<	=	=B
"V_
%
%CS&8<<L8r  c                     t          d          } || t          |          t          |                    }t          |           d S )NnvmlDeviceSetApplicationsClocksr  )r  r  maxGraphicsClockMHzr  r`  s        r  r  r  g  sG    	 !B	C	CB
"VVN++V4G-H-H
I
ICS4r  c                 X    t          d          } ||           }t          |           d S )N!nvmlDeviceResetApplicationsClocksrv  rw  s      r  r  r  n  r  r  c                 t    t          d          } || t          |                    }t          |           d S )N!nvmlDeviceSetPowerManagementLimitr  )r  limitr  r`  s       r  r  r  u  s:    	 !D	E	EB
"VVE]]
#
#CS4r  c                 t    t          d          } || t          |                    }t          |           d S )NnvmlDeviceSetGpuOperationMode)rj  r  ra  r  s       r  r  r  |  s=    	 !@	A	AB
"V,T22
3
3CS4r  c                      t          d          } t                      } | t          |                    }t          |           |S )NnvmlEventSetCreate)rj  c_nvmlEventSet_tr  ra  )r  eventSetr`  s      r  r  r    sC    	 !5	6	6B!!H
"U8__

CSOr  c                 v    t          d          } || t          |          |          }t          |           d S )NnvmlDeviceRegisterEvents)rj  r  ra  )r  
eventTypesr  r  r`  s        r  r  r    s>    	 !;	<	<B
"V[,,h
7
7CS4r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )N nvmlDeviceGetSupportedEventTypesr  rj  r  ra  r  )r  c_eventTypesr  r`  s       r  r  r    sI    ==L	 !C	D	DB
"VU<((
)
)CSr  c                     t          d          }t                      } || t          |          t          |                    }t	          |           |S )NnvmlEventSetWait_v2)rj  r  r  r  ra  )r  	timeoutmsr  datar`  s        r  r  r    sO    	 !6	7	7BD
"XuT{{F9$5$5
6
6CSKr  c                 "    t          | |          S r#  )r  )r  r  s     r  nvmlEventSetWaitr    s    x333r  c                 X    t          d          } ||           }t          |           d S )NnvmlEventSetFreerv  )r  r  r`  s      r  r  r    s0    	 !3	4	4B
"X,,CS4r  c                     t          d          }t                      } || |t          |                    }t          |           |j        dk    S )NnvmlDeviceOnSameBoardr   r|  )handle1handle2r  onSameBoardr`  s        r  r  r    sP    	 !8	9	9B''K
"Wgu[11
2
2CS"#r  c                     t          d          }t                      } || t          |                    }t          |           |j        S )N#nvmlDeviceGetCurrPcieLinkGenerationrj  r  r  ra  r  r  r  genr`  s       r  r  r    sF    	 !F	G	GB
((C
"VU3ZZ
 
 CS9r  c                     t          d          }t                      } || t          |                    }t          |           |j        S )N"nvmlDeviceGetMaxPcieLinkGenerationr  r  s       r  r  r    sF    	 !E	F	FB
((C
"VU3ZZ
 
 CS9r  c                     t          d          }t                      } || t          |                    }t          |           |j        S )NnvmlDeviceGetCurrPcieLinkWidthr  r  r  widthr`  s       r  r  r    sF    	 !A	B	BBHHE
"VU5\\
"
"CS;r  c                     t          d          }t                      } || t          |                    }t          |           |j        S )NnvmlDeviceGetMaxPcieLinkWidthr  r  s       r  r  r    sF    	 !@	A	ABHHE
"VU5\\
"
"CS;r  c                     t          d          }t                      } || t          |                    }t          |           |j        S )N%nvmlDeviceGetGpuMaxPcieLinkGenerationr  r  s       r  r  r    sF    	 !H	I	IB
((C
"VU3ZZ
 
 CS9r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )N+nvmlDeviceGetSupportedClocksThrottleReasonsr  r  	c_reasonsr  r`  s       r  r  r    sH    }}I	 !N	O	OB
"VU9%%
&
&CS?r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )N(nvmlDeviceGetSupportedClocksEventReasonsr  r  s       r  r  r    sH    }}I	 !K	L	LB
"VU9%%
&
&CS?r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )N)nvmlDeviceGetCurrentClocksThrottleReasonsr  r  s       r  r  r    sH    }}I	 !L	M	MB
"VU9%%
&
&CS?r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )N&nvmlDeviceGetCurrentClocksEventReasonsr  r  s       r  r  r    sH    }}I	 !I	J	JB
"VU9%%
&
&CS?r  c                     t          d          }t                      } || t          |                    }t          |           |j        S )NnvmlDeviceGetIndexr  )r  r  r  r`  s       r  r  r    sF    	 !5	6	6BhhG
"VU7^^
$
$CS=r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetAccountingModer  r  s       r  r  r    sH    !!F	 !>	?	?B
"VU6]]
#
#CS<r  c                 t    t          d          } || t          |                    }t          |           d S )NnvmlDeviceSetAccountingModer  r  s       r  r  r    s=    	 !>	?	?B
"V'--
.
.CS4r  c                 X    t          d          } ||           }t          |           d S )NnvmlDeviceClearAccountingPidsrv  rw  s      r  r  r    s0    	 !@	A	AB
"V**CS4r  c                     t                      }t          d          } || t          |          t          |                    }t	          |           |j        t          j        k    rd |_        |S )NnvmlDeviceGetAccountingStats)r  rj  r  r  ra  r  rs  r  )r  r  statsr  r`  s        r  r  r    sg    #%%E	 !?	@	@B
"VVC[[%,,
/
/CS B HHH#Lr  c                 4   t          t          |                     }t          |j        z              }t          d          } || t	          |          |          }t          |           t          t          t          |d|j                                     S )NnvmlDeviceGetAccountingPidsr   )	r  !nvmlDeviceGetAccountingBufferSizer  rj  r  ra  listmapint)r  r  pidsr  r`  s        r  r  r    s    4V<<==EU[ ##D	 !>	?	?B
"VU5\\4
(
(CSCam,--...r  c                     t                      }t          d          } || t          |                    }t          |           t	          |j                  S )Nr   )r  rj  r  ra  r  r  )r  
bufferSizer  r`  s       r  r   r   &  sQ    J	 !D	E	EB
"VU:&&
'
'CSz   r  c                    t          |          }t          d          }t          d          } || |t          |          d           }|t          k    r|t
          k    rt          |          |j        dz  dz   |_        t          |j        z  } |            } || |t          |          |          }t          |           t          t          t          |d|j                                     S )Nr   nvmlDeviceGetRetiredPagesr   r   )_nvmlPageRetirementCause_tr  rj  r  r_  r-  r  r  r  ra  r  r  r  )r  sourceFilterc_sourcer   r  r`  
page_arrayc_pagess           r  r  r  -  s    ),77HQiiG	 !<	=	=B "VXuW~~t
4
4C 
			,	,	,nn
 MA%)GMw},JjllG
"VXuW~~w
7
7CSC7=122333r  c                    	 t          |          }t          d          }t          d          } || |t          |          d           }|t          k    r|t
          k    rt          |          |j        dz  dz   |_        t          |j        z  } |            t          |j        z  } |            	 || |t          |          	          }t          |           	fdt          |j                  D             S )Nr   nvmlDeviceGetRetiredPages_v2r   r   c                 f    g | ]-}t          |                   t          |                   d .S ))addressr@  )r  )rC  r  r  c_timess     r  rE  z0nvmlDeviceGetRetiredPages_v2.<locals>.<listcomp>[  s5    iiia#gaj//GAJIIiiir  )r	  r  rj  r  r_  r-  r  r  r  ra  r  )
r  r
  r  r   r  r`  r  times_arrayr  r  s
           @@r  r  r  D  s   ),77HQiiG	 !?	@	@B "VXuW~~t
4
4C 
			,	,	,nn
 MA%)GMw},JjllG-KkmmG
"VXuW~~w
@
@CSiiiiiSXY`YfSgSgiiiir  c                     t                      }t          d          } || t          |                    }t          |           t	          |j                  S )N&nvmlDeviceGetRetiredPagesPendingStatus)r  rj  r  ra  r  r  )r  	c_pendingr  r`  s       r  r  r  ]  sR    "$$I	 !I	J	JB
"VU9%%
&
&CSyr  c                     t                      }t          d          } || t          |          t          |                    }t	          |           t          |j                  S )NnvmlDeviceGetAPIRestriction)r  rj  _nvmlRestrictedAPI_tr  ra  r  r  )r  apiTypec_permissionr  r`  s        r  r  r  d  s^    %''L	 !>	?	?B
"V)'22E,4G4G
H
HCS|!"""r  c                     t          d          } || t          |          t          |                    }t          |           d S )NnvmlDeviceSetAPIRestriction)rj  r  r  ra  )r  r  isRestrictedr  r`  s        r  r  r  k  sH    	 !>	?	?B
"V)'224F|4T4T
U
UCS4r  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlDeviceGetBridgeChipInfo)r  rj  r  ra  )r  bridgeHierarchyr  r`  s       r  r   r   q  sH    133O	 !>	?	?B
"VU?++
,
,CSr  c           	         t          |          }t          |          }t          d          }t                      }t	          d          } || ||t          |          t          |          d           }|t          k    rt          |          |j        t          z  }	 |	            }
 || ||t          |          t          |          |
          }t          |           |j        |
d|j                 fS )Nr   nvmlDeviceGetSamples)_nvmlSamplingType_tr  r  rF  rj  r  r_  r  r  r5  ra  )r  sampling_typer6  c_sampling_typec_time_stampc_sample_countc_sample_value_typer  r`  sampleArray	c_sampless              r  r#  r#  x  s    )-88Oy))LAYYN*,,	 !7	8	8B "V_lE:M4N4NPUVdPePegk
l
lC 	|nn &7KI
"V_lU;N5O5OQVWeQfQfhq
r
rCS%y>3G1G'HIIr  c                     t          |          }t                      }t          d          } || |t          |                    }t	          |           |S )NnvmlDeviceGetViolationStatus)_nvmlPerfPolicyType_tr9  rj  r  ra  )r  perfPolicyTypec_perfPolicy_type
c_violTimer  r`  s         r  r-  r-    s[    -n==&((J	 !?	@	@B "V&j(9(9
:
:CSr  c                     t                      }t          d          } || t          |          t          |                    }t	          |           |j        S )NnvmlDeviceGetPcieThroughput)r  rj  _nvmlPcieUtilCounter_tr  ra  r  )r  counterrR  r  r`  s        r  r3  r3    sQ    XXF	 !>	?	?B
"V+G44eFmm
D
DCS<r  c                 b   t          d          }t          d          } || t          |          d           }|t          k    rt	          |          t
          |j        z  } |            } || t          |          |          }t          |           t          |d|j                           S )Nr   nvmlSystemGetTopologyGpuSet	r  rj  r  r_  r  r  r  ra  r  )	cpuNumberr   r  r`  r#  r$  s         r  r7  r7    s    QiiG	 !>	?	?B "Yg
-
-C
lnn!GM1LI
"Yg	
2
2CS	!GM/*+++r  c                 f   t          d          }t          d          } || |t          |          d           }|t          k    rt	          |          t
          |j        z  } |            } || |t          |          |          }t          |           t          |d|j                           S )Nr    nvmlDeviceGetTopologyNearestGpusr8  )r  levelr   r  r`  r#  r$  s          r  r;  r;    s    QiiG	 !C	D	DB "VUE'NND
1
1C
lnn "GM1LI
"VUE'NNI
6
6CS	!GM/*+++r  c                     t                      }t          d          } || |t          |                    }t          |           |j        S )N#nvmlDeviceGetTopologyCommonAncestor)_nvmlGpuTopologyLevel_trj  r  ra  r  )device1device2c_levelr  r`  s        r  r>  r>    sJ    %''G	 !F	G	GB
"WguW~~
.
.CS=r  c           	          t                      }t                      }t          d          } || ||t          |          t          |                    }t          |           |j        |j        fS )N%nvmlDeviceGetNvLinkUtilizationCounterr  )r  linkr5  c_rxcounterc_txcounterr  r`  s          r  rD  rD    sh    --K--K	 !H	I	IB
"VT7E+$6$6k8J8J
K
KCS{011r  c                 ^    t          d          } || |||          }t          |           d S )N(nvmlDeviceFreezeNvLinkUtilizationCounterrv  )r  rE  r5  freezer  r`  s         r  rI  rI    s8    	 !K	L	LB
"VT7F
+
+CS4r  c                 \    t          d          } || ||          }t          |           d S )N'nvmlDeviceResetNvLinkUtilizationCounterrv  )r  rE  r5  r  r`  s        r  rL  rL    s6    	 !J	K	KB
"VT7
#
#CS4r  c                 z    t          d          } || ||t          |          |          }t          |           d S )N%nvmlDeviceSetNvLinkUtilizationControlrj  r  ra  )r  rE  r5  controlresetr  r`  s          r  rN  rN    s@    	 !H	I	IB
"VT7E'NNE
:
:CS4r  c                     t                      }t          d          } || ||t          |                    }t          |           |S )N%nvmlDeviceGetNvLinkUtilizationControl)r  rj  r  ra  )r  rE  r5  	c_controlr  r`  s         r  rS  rS    sL    .00I	 !H	I	IB
"VT7E)$4$4
5
5CSr  c                     t                      }t          d          } || ||t          |                    }t          |           |j        S )NnvmlDeviceGetNvLinkCapabilityr	  )r  rE  
capabilityc_capResultr  r`  s         r  rV  rV    sM    ((K	 !@	A	AB
"VT:u['9'9
:
:CSr  c                     t                      }t          d          } || ||t          |                    }t          |           |j        S )NnvmlDeviceGetNvLinkErrorCounterr  )r  rE  r5  c_resultr  r`  s         r  rZ  rZ    sJ    }}H	 !B	C	CB
"VT7E(OO
4
4CS>r  c                 Z    t          d          } || |          }t          |           d S )N"nvmlDeviceResetNvLinkErrorCountersrv  )r  rE  r  r`  s       r  r]  r]    s4    	 !E	F	FB
"VT

CS4r  c                     t                      }t          d          } || |t          |                    }t          |           |S )N#nvmlDeviceGetNvLinkRemotePciInfo_v2r  )r  rE  c_pcir  r`  s        r   nvmlDeviceGetNvLinkRemotePciInfora    sE    OOE	 !F	G	GB
"VT5<<
(
(CSLr  c                     t                      }t          d          } || |t          |                    }t          |           |j        S )N#nvmlDeviceGetNvLinkRemoteDeviceType)_nvmlNvLinkDeviceType_trj  r  ra  r  )r  rE  rS  r  r`  s        r  rc  rc    sJ    $&&F	 !F	G	GB
"VT5==
)
)CS<r  c                     t                      }t          d          } || |t          |                    }t          |           |j        S )NnvmlDeviceGetNvLinkStater	  )r  rE  
c_isActiver  r`  s        r  rf  rf    sK    J	 !;	<	<B
"VT5,,
-
-CSr  c                     t                      }t          d          } || |t          |                    }t          |           |j        S )NnvmlDeviceGetNvLinkVersionr	  )r  rE  r  r  r`  s        r  ri  ri    sJ    I	 !=	>	>B
"VT5++
,
,CS?r  c                 t    t          d          } |t          |           |          }t          |           d S )NnvmlDeviceModifyDrainStaterj  pointerra  )pciInfonewStater  r`  s       r  rk  rk    s<    	 !=	>	>B
"WWx
(
(CS4r  c                     t                      }t          d          } |t          |           t          |                    }t	          |           |j        S )NnvmlDeviceQueryDrainState)r  rj  rm  r  ra  r  )rn  
c_newStater  r`  s       r  rq  rq    sQ    J	 !<	=	=B
"WWuZ00
1
1CSr  c                 r    t          d          } |t          |                     }t          |           d S )NnvmlDeviceRemoveGpurl  rn  r  r`  s      r  rt  rt  #  s:    	 !6	7	7B
"WW

CS4r  c                 r    t          d          } |t          |                     }t          |           d S )NnvmlDeviceDiscoverGpusrl  ru  s      r  rw  rw  )  s:    	 !9	:	:B
"WW

CS4r  c                    t           t          |          z  } |            }t          d          }t          |          D ]>\  }}	 |\  ||         _        ||         _        "# t          $ r |||         _        Y ;w xY w || t          t          |                    t          |                    }t          |           |S )NnvmlDeviceGetFieldValues
r=  lenrj  	enumerater>  r?  	TypeErrorc_int32r  ra  r  fieldIds
values_arrvaluesr  r  r>  r`  s           r  ry  ry  /  s    #c(mm3JZ\\F	 !;	<	<B)) ( (
7	(5<2VAYq	 1 1 	( 	( 	( 'F1I	( "VWS]]++U6]]
;
;CSM   A""A<;A<c                    t           t          |          z  } |            }t          d          }t          |          D ]>\  }}	 |\  ||         _        ||         _        "# t          $ r |||         _        Y ;w xY w || t          t          |                    t          |                    }t          |           |S )NnvmlDeviceClearFieldValuesrz  r  s           r  r  r  >  s    #c(mm3JZ\\F	 !=	>	>B)) ( (
7	(5<2VAYq	 1 1 	( 	( 	( 'F1I	( "VWS]]++U6]]
;
;CSMr  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetVirtualizationModer  )r  c_virtualization_moder  r`  s       r  r  r  M  sK    'MM	 !B	C	CB
"VU011
2
2CS &&r  c                 8    t          d          } || |          S )NnvmlDeviceSetVirtualizationModerj  )r  virtualization_moder  s      r  r  r  T  s#    	 !B	C	CB2f)***r  c                     t          d          }t          |_        t          d          } || t	          |                    }t          |           |j        S )Nr   "nvmlDeviceGetVgpuHeterogeneousMode)ra  VgpuHeterogeneousMode_v1r  rj  r  ra  r  )r  c_vgpuHeterogeneousModer  r`  s       r  r  r  X  sX    >qAA&>#	 !E	F	FB
"VU233
4
4CS"''r  c                     t          d          }t          |_        ||_        t	          d          } || t          |                    }t          |           t          S )Nr   "nvmlDeviceSetVgpuHeterogeneousMode)ra  r  r  r  rj  r  ra  r_  )r  heterogeneous_moder  r  r`  s        r  r  r  `  s^    >qAA&>##5 	 !E	F	FB
"VU233
4
4CSr  c                     t          d          }t          |_        t          d          } || t	          |                    }t          |           |j        S )Nr   nvmlVgpuInstanceGetPlacementId)rc  VgpuPlacementId_v1r  rj  r  ra  rd  )rq  c_placementr  r`  s       r  r  r  i  sU    ,Q//K,K	 !A	B	BB
"\5--
.
.CS""r  c                    t          d          }t          d          } || |t          |                    }t          |           |dk    r.t	                      }t
          |_        |j        |_        ||_	        n5|dk    rt                      }t          |_        nt          t                    t           |j        z  } |            |_        t          d          } || |t          |                    }t          |           |S )Nr   nvmlVgpuTypeGetMaxInstancesr   r   (nvmlDeviceGetVgpuTypeSupportedPlacements)r  rj  r  ra  rk  VgpuPlacementList_v2r  r  r  r  rf  VgpuPlacementList_v1r  r  rh  )	r  
vgpuTypeIdr  r  c_max_instancesr  r`  c_vgpu_placementsc_placementss	            r  r  r  q  s   QiiO
!"?
@
@B
"VZ!7!7
8
8CS!||8::$8!"1"7!%	A8::$8!!<===O11L%1\^^"
!"L
M
MB
"VZ'8!9!9
:
:CSr  c                    t          d          }t          d          } || |t          |                    }t          |           |dk    r't	                      }t
          |_        |j        |_        n |dk    rt                      }t          |_        t           |j        z  } |            |_        t          d          } || |t          |                    }t          |           |S )Nr   r  r   r   (nvmlDeviceGetVgpuTypeCreatablePlacements)r  rj  r  ra  rk  r  r  r  r  rf  r  rh  )r  r  r  r  r  r`  r  r  s           r  r  r    s    QiiO
!"?
@
@B
"VZ!7!7
8
8CS!||8::$8!"1"7	A8::$8!O11L%1\^^"
!"L
M
MB
"VZ'8!9!9
:
:CSr  c                     t                      }t          d          } |t          |           t          |                    }t	          |           |j        S )NnvmlGetVgpuDriverCapabilities)r  rj  _nvmlVgpuDriverCapability_tr  ra  r  )rW  rX  r  r`  s       r  r  r    sR    ((K	 !@	A	AB
"(44eK6H6H
I
ICSr  c                     t                      }t          d          } || t          |          t          |                    }t	          |           |j        S )NnvmlDeviceGetVgpuCapabilities)r  rj  _nvmlDeviceVgpuCapability_tr  ra  r  )r  rW  rX  r  r`  s        r  r  r    sT    ((K	 !@	A	AB
"V0<<eK>P>P
Q
QCSr  c                     t          d          } || t          |          |          }t          |           t          S )NnvmlDeviceSetVgpuCapabilities)rj  r  ra  r_  )r  rW  r  r  r`  s        r  r  r    s@    	 !@	A	AB
"V0<<e
D
DCSr  c                    t          d          }t          d          } || t          |          d           }|t          k    rg S |t          k    rxt
          |j        z  } |            } || t          |          |          }t          |           g }t          |j                  D ]}|	                    ||                    |S t          |          )Nr   nvmlDeviceGetSupportedVgpusr  rj  r  r_  r-  _nvmlVgpuTypeId_tr  ra  r  r  r  r  c_vgpu_countr  r`  vgpu_type_ids_arrayc_vgpu_type_idsvgpusr  s           r  r  r        !99L
!"?
@
@B
"VU<(($
/
/C|	
-
-
-/,2DD--// b|,,o>>|)** 	- 	-ALL+,,,, nnr  c                    t          d          }t          d          } || t          |          d           }|t          k    rg S |t          k    rxt
          |j        z  } |            } || t          |          |          }t          |           g }t          |j                  D ]}|	                    ||                    |S t          |          )Nr   nvmlDeviceGetCreatableVgpusr  r  s           r  r  r    r  r  c                     t          d          }t          d          } || t          |                    }t          |           |j        S )Nr   #nvmlVgpuTypeGetGpuInstanceProfileIdr	  )r  c_profile_idr  r`  s       r  r  r    sK    !99L
!"G
H
HB
"Z|,,
-
-CSr  c                     t          t                    }t          t                    }t          d          } || |t	          |                    }t          |           |j        S )NnvmlVgpuTypeGetClassr  NVML_DEVICE_NAME_BUFFER_SIZEr  rj  r  ra  r  )r  c_classc_buffer_sizer  r`  s        r  r  r    s]    "#?@@G788M
!"8
9
9B
"Z%"6"6
7
7CS=r  c                     t          t                    }t          t                    }t          d          } || |t	          |                    }t          |           |j        S )NnvmlVgpuTypeGetNamer  )r  r  r  r  r`  s        r  r  r    s]    !">??F788M
!"7
8
8B
"Z}!5!5
6
6CS<r  c                     t          d          }t          d          }t          d          } || t          |          t          |                    }t          |           |j        |j        fS )Nr   nvmlVgpuTypeGetDeviceIDr  )r  c_device_idc_subsystem_idr  r`  s        r  r  r    sh     ^^K ^^N
!";
<
<B
"Z{++U>-B-B
C
CCS~344r  c                     t          d          }t          d          } || t          |                    }t          |           |j        S )Nr   nvmlVgpuTypeGetFramebufferSizer  )r  	c_fb_sizer  r`  s       r  r  r    sJ    AI
!"B
C
CB
"Zy))
*
*CS?r  c                     t          d          }t          d          } || t          |                    }t          |           |j        S )Nr   nvmlVgpuTypeGetNumDisplayHeadsr	  )r  c_num_headsr  r`  s       r  r  r    sK    ))K
!"B
C
CB
"Z{++
,
,CSr  c                     t          d          }t          d          }t          d          } || dt          |          t          |                    }t          |           |j        |j        fS )Nr   nvmlVgpuTypeGetResolutionr	  )r  c_xdimc_ydimr  r`  s        r  r  r    sd    AYYFAYYF
!"=
>
>B
"ZE&MM5==
9
9CSL&,''r  c                     t          t                    }t          t                    }t          d          } || ||          }t	          |           |j        S )NnvmlVgpuTypeGetLicense)r  r  r  rj  ra  r  )r  	c_licenser  r  r`  s        r  r  r    sU    $%BCCI899M
!":
;
;B
"ZM
2
2CS?r  c                     t          d          }t          d          } || t          |                    }t          |           |j        S )Nr   nvmlVgpuTypeGetFrameRateLimitr	  )r  c_frl_configr  r`  s       r  r  r  &  sK    !99L
!"A
B
BB
"Z|,,
-
-CSr  c                     t          d          }t          d          } || t          |                    }t          |           |j        S )Nr   nvmlVgpuTypeGetGspHeapSizer	  )r  
c_gsp_heapr  r`  s       r  r  r  -  sK    J
!">
?
?B
"Zz**
+
+CSr  c                     t          d          }t          d          } || t          |                    }t          |           |j        S )Nr   nvmlVgpuTypeGetFbReservationr	  )r  c_fb_reservationr  r`  s       r  r  r  4  sM    ayy
!"@
A
AB
"Z/00
1
1CS!!r  c                     t                      }t          |_        t          d          } || t	          |                    }t          |           |S )N#nvmlVgpuInstanceGetRuntimeStateSize)r  VgpuRuntimeState_v1r  rj  r  ra  )rq  c_runtime_stater  r`  s       r  r  r  ;  sP    /11O1O
!"G
H
HB
"\511
2
2CSr  c                     t          d          }t          d          } || |t          |                    }t          |           |j        S )Nr   r  r	  )r  r  r  r  r`  s        r  r  r  C  sM    QiiO
!"?
@
@B
"VZ!7!7
8
8CS  r  c                     t          d          }t          d          } || t          |                    }t          |           |j        S )Nr    nvmlVgpuTypeGetMaxInstancesPerVmr	  )r  c_max_instances_per_vmr  r`  s       r  r  r  J  sM    #AYY
!"D
E
EB
"Z566
7
7CS!''r  c                     t          d          }t          |_        t          d          } || t	          |                    }t          |           |S )Nr   nvmlVgpuTypeGetBAR1Info)rm  VgpuTypeBar1Info_v1r  rj  r  ra  )r  
c_bar1Infor  r`  s       r  r  r  Q  sR    ,Q//J,J
!";
<
<B
"Zz**
+
+CSr  c                    t          d          }t          d          } || t          |          d           }|t          k    rg S |t          k    rxt
          |j        z  } |            } || t          |          |          }t          |           g }t          |j                  D ]}|	                    ||                    |S t          |          )Nr   nvmlDeviceGetActiveVgpus)r  rj  r  r_  r-  rv  r  ra  r  r  r  )r  r  r  r`  vgpu_instance_arrayc_vgpu_instancesr  r  s           r  r  r  Y  s    !99L
!"<
=
=B
"VU<(($
/
/C|	
-
-
-1L4FF..00 b|,,.>??|)** 	. 	.ALL)!,---- nnr  c                    t          t                    }t          t                    }t          d          }t	          d          } || t          |          |t          |                    }t          |           |j        |j        fS )Nr   nvmlVgpuInstanceGetVmID)r  r  r  r  rj  r  ra  r  )rq  c_vm_idr  c_vm_id_typer  r`  s         r  r  r  s  sx    "#?@@G899M1IIL
!";
<
<B
"\5>>=%:M:M
N
NCSM<-..r  c                     t          t                    }t          t                    }t          d          } || t	          |          |          }t          |           |j        S )NnvmlVgpuInstanceGetUUIDr  r  r  rj  r  ra  r  rq  r2  r  r  r`  s        r  r  r  }  s[    !">??F788M
!";
<
<B
"\5==-
8
8CS<r  c                     t          t                    }t          t                    }t          d          } || t	          |          |          }t          |           |j        S )NnvmlVgpuInstanceGetMdevUUIDr  r  s        r  r  r    s[    !">??F788M
!"?
@
@B
"\5==-
8
8CS<r  c                     t          t                    }t          t                    }t          d          } || t	          |          |          }t          |           |j        S )N"nvmlVgpuInstanceGetVmDriverVersion)r  r  r  rj  r  ra  r  )rq  c_driver_versionr  r  r`  s        r  r  r    s`    +,RSSABBM
!"F
G
GB
"\5!122M
B
BCS!!r  c                     t          d          }t          d          } || t          |                    }t          |           |j        S )Nr    nvmlVgpuInstanceGetLicenseStatusr	  )rq  c_license_statusr  r`  s       r  r  r    sM    ayy
!"D
E
EB
"\5!122
3
3CS!!r  c                     t          d          }t                      } || t          |                    }t          |           |S )N!nvmlVgpuInstanceGetLicenseInfo_v2)rj  r  r  ra  )rq  r  c_license_infor`  s       r  r  r    sH    
!"E
F
FB,..N
"\500
1
1CSr  c                      t          |           S r#  )r  )rq  s    r  nvmlVgpuInstanceGetLicenseInfor     s    ,\:::r  c                     t          d          }t          d          } || t          |                    }t          |           |j        S )Nr   !nvmlVgpuInstanceGetFrameRateLimitr	  )rq  c_frlr  r`  s       r  r  r    sH    1IIE
!"E
F
FB
"\5<<
(
(CS;r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlVgpuInstanceGetEccModer  rq  r  r  r`  s       r  r  r    sH    !!F	 !=	>	>B
"\5==
)
)CS<r  c                     t          d          }t          d          } || t          |                    }t          |           |j        S )Nr   nvmlVgpuInstanceGetTyper	  )rq  c_vgpu_typer  r`  s       r  r  r    sK    ))K
!";
<
<B
"\5--
.
.CSr  c                     t          d          }t          d          } || t          |                    }t          |           |j        S )Nr   "nvmlVgpuInstanceGetEncoderCapacityr  )rq  c_encoder_capacityr  r`  s       r  r  r    sM    $Q
!"F
G
GB
"\5!344
5
5CS##r  c                 8    t          d          } || |          S )N"nvmlVgpuInstanceSetEncoderCapacityr  )rq  encoder_capacityr  s      r  r  r    s#    
!"F
G
GB2l,---r  c                     t          d          }t          d          } || t          |                    }t          |           |j        S )Nr   nvmlVgpuInstanceGetFbUsager	  )rq  
c_fb_usager  r`  s       r  r  r    sK    J
!">
?
?B
"\5,,
-
-CSr  c                     t          d          }t          d          } || t          |          t          |                    }t	          |           |j        S )Nr   nvmlVgpuTypeGetCapabilities)r  rj  _nvmlVgpuCapability_tr  ra  r  )r  rW  c_cap_resultr  r`  s        r  r  r    sV    !99L
!"?
@
@B
"Z.z::E,<O<O
P
PCSr  c                     t          d          }t          d          } || t          |                    }t          |           |j        S )Nr    nvmlVgpuInstanceGetGpuInstanceIdr	  )rq  rL  r  r`  s       r  r  r    sH    !99D
!"D
E
EB
"\5;;
'
'CSJr  c           	          t          t                    }t          d          } || |t          t	          t                                        }t          |           |j        S )NnvmlVgpuInstanceGetGpuPciId)r  r  rj  r  r  ra  r  )rq  c_vgpuPciIdr  r`  s       r  r  r    sY    &'IJJK	 !>	?	?B
"\;f5W.X.X(Y(Y
Z
ZCSr  c                    t          d          }t          |          }t                      }t          d          } || |t	          |          t	          |          d           }|t
          k    rg S |t          k    r`|j        t          z  } |            } || |t	          |          t	          |          |          }t          |           |d|j                 S t          |          )Nr   nvmlDeviceGetVgpuUtilization)r  r  rF  rj  r  r_  r-  r  rp  ra  r  )	r  r6  r  r'  r)  r  r`  r*  r+  s	            r  r  r    s    !99Ly))L*,,
!"@
A
AB
"V\5)<#=#=u\?R?RTX
Y
YC|	
-
-
-"(+PPKMM	 bu-@'A'A5CVCVXabb<--.. nnr  c                    t          |          }t          d          }t          |_        t	                      |_        t          d          |_        ||_        t          d          } || t          |                    }|t          k    rg S |t          k    rW|j        t          z  } |            }||_         || t          |                    }t          |           |d|j                 S t!          |          )Nr   )nvmlDeviceGetVgpuInstancesUtilizationInfo)r  r|  VgpuInstancesUtilizationInfo_v1r  rF  r}  r  r~  r  rj  r  r_  r-  rx  r  ra  r  )r  r6  r'  c_vgpuUtilInfor  r`  r*  r+  s           r  r  r     s    y))L<Q??N<N#3#5#5N '-ayyN$'3N$
!"M
N
NB
"VU>**
+
+C|	
-
-
-$69__KMM	'0$ b~..//>;;<< nnr  c                     t                      }t          d          } || ||t          |                    }t          |           |j        S )NnvmlDeviceGetP2PStatus)_nvmlGpuP2PStatus_trj  r  ra  r  )r@  rA  p2pIndexc_p2pstatusr  r`  s         r  r#  r#    sO    %''K	 !9	:	:B
"Wghk(:(:
;
;CSr  c                     t                      }t          d          } || t          |                    }t          |           |S )N&nvmlDeviceGetGridLicensableFeatures_v4)r  rj  r  ra  )r  c_get_grid_licensable_featuresr  r`  s       r  r(  r(  %  sJ    %F%H%H"	 !I	J	JB
"VU9::
;
;CS*+r  c                      t          |           S r#  )r(  rY  s    r  #nvmlDeviceGetGridLicensableFeaturesr+  -  s    1&999r  c                     |d u}|st          t          z              }t          d          } || |          }t          |           |rt          n|j        S )NnvmlDeviceGetGspFirmwareVersion)r  "NVML_GSP_FIRMWARE_VERSION_BUF_SIZErj  ra  r_  r  )r  r  isUserDefinedr  r`  s        r  r-  r-  0  sd    4'M B>>AA	 !B	C	CB
"VW

CS(;<<gm;r  c                     t          |          t          u}|r|nt          |          }|r|nt          |          }t          d          } || ||          }t	          |           |rt
          n|j        |j        gS )NnvmlDeviceGetGspFirmwareModer  )r  	isEnableddefaultModere  isEnabledRefdefaultModeRefr  r`  s           r  r1  r1  9  s    y///K +A99y1A1AL$/G[[U;5G5GN	 !?	@	@B
"V\>
2
2CS&P<<Y_k>O,PPr  c                     t          d          }t          |          }t          d          } || |t          |                    }t	          |           |j        S )Nr   nvmlDeviceGetEncoderCapacity)r  _nvmlEncoderQueryType_trj  r  ra  r  )r  encoderQueryTyper  c_encoderQuery_typer  r`  s         r  r7  r7  B  s_    $Q12BCC	 !?	@	@B
"V(%0B*C*C
D
DCS##r  c                    t          d          }t          |          }t          d          } || |t          |          d           }|t          k    rg S |t
          k    rR|j        t          z  } |            } || |t          |          |          }t          |           |d|j                 S t          |          )Nr   #nvmlDeviceGetVgpuProcessUtilization)
r  r  rj  r  r_  r-  r  r  ra  r  )r  r6  r  r'  r  r`  r*  r+  s           r  r<  r<  K  s    !99Ly))L
!"G
H
HB
"V\5#6#6
=
=C|	
-
-
-"(+OOKMM	 bu\':':IFF<--.. nnr  c                    t          |          }t          d          }t          |_        t	          d          |_        ||_        t          d          } || t          |                    }|t          k    rg S |t          k    rW|j        t          z  } |            }||_         || t          |                    }t          |           |d|j                 S t          |          )Nr   )nvmlDeviceGetVgpuProcessesUtilizationInfo)r  r  VgpuProcessesUtilizationInfo_v1r  r  r  r  rj  r  r_  r-  r  r  ra  r  )r  r6  r'  c_vgpuProcUtilInfor  r`  r*  r+  s           r  r>  r>  d  s    y))L@CC!@*0))'+7(
!"M
N
NB
"VU-..
/
/C|	
-
-
-(9<aaKMM	/8, b12233->>?? nnr  c                 *   t          d          }t          d          }t          d          }t          d          } || t          |          t          |          t          |                    }t          |           |j        |j        |j        fS )Nr   nvmlDeviceGetEncoderStatsr  )r  c_encoderCountc_encodeFpsc_encoderLatencyr  r`  s         r  rB  rB    s     ^^Na..K"1~~	 !<	=	=B
"VU>**E+,>,>FV@W@W
X
XCS +"35E5KLLr  c                    t          d          }t          d          } || t          |          d           }|t          k    r|j        dk    rxt
          |j        z  } |            } || t          |          |          }t          |           g }t          |j                  D ]}|                    ||                    |S g S t          |          )Nr   nvmlDeviceGetEncoderSessions
r  rj  r  r_  r  r  ra  r  r  r  r  c_session_countr  r`  session_array
c_sessionssessionsr  s           r  rG  rG    s    QiiO
!"@
A
AB
"VU?++T
2
2C|!Q&&2_5JJM&J "VU?33Z@@CS!!!H?011 / /
1....OI nnr  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlDeviceGetFBCStatsr2  rj  r  ra  )r  
c_fbcStatsr  r`  s       r  rO  rO    sH    !##J	 !8	9	9B
"VU:&&
'
'CSr  c                    t          d          }t          d          } || t          |          d           }|t          k    r|j        dk    rxt
          |j        z  } |            } || t          |          |          }t          |           g }t          |j                  D ]}|                    ||                    |S g S t          |          )Nr   nvmlDeviceGetFBCSessions
r  rj  r  r_  r  r7  ra  r  r  r  rI  s           r  rS  rS    s    QiiO
!"<
=
=B
"VU?++T
2
2C|!Q&&.1FFM&J "VU?33Z@@CS!!!H?011 / /
1....OI nnr  c                 *   t          d          }t          d          }t          d          }t          d          } || t          |          t          |          t          |                    }t          |           |j        |j        |j        fS )Nr   nvmlVgpuInstanceGetEncoderStatsr  )rq  rC  rD  rE  r  r`  s         r  rV  rV    s    #AN#AK#A
!"C
D
DB
"\500%2D2DeL\F]F]
^
^CS +"35E5KLLr  c                    t          d          }t          d          } || t          |          d           }|t          k    r|j        dk    rxt
          |j        z  } |            } || t          |          |          }t          |           g }t          |j                  D ]}|                    ||                    |S g S t          |          )Nr   "nvmlVgpuInstanceGetEncoderSessionsrH  rq  rJ  r  r`  rK  rL  rM  r  s           r  rX  rX    s    QiiO
!"F
G
GB
"\5114
8
8C|!Q&&2_5JJM&J "\5#9#9:FFCS!!!H?011 / /
1....OI nnr  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlVgpuInstanceGetFBCStatsrP  )rq  rQ  r  r`  s       r  r[  r[    sH    !##J	 !>	?	?B
"\5,,
-
-CSr  c                    t          d          }t          d          } || t          |          d           }|t          k    r|j        dk    rxt
          |j        z  } |            } || t          |          |          }t          |           g }t          |j                  D ]}|                    ||                    |S g S t          |          )Nr   nvmlVgpuInstanceGetFBCSessionsrT  rY  s           r  r]  r]    s    QiiO
!"B
C
CB
"\5114
8
8C|!Q&&.1FFM&J "\5#9#9:FFCS!!!H?011 / /
1....OI nnr  c                 j   t          d          }t          |          }t          d          } || d t          |          |          }|t          k    rR|j        t          z  } |            } || |t          |          |          }t          |           |d|j                 S t          |          )Nr   nvmlDeviceGetProcessUtilization)	r  r  rj  r  r-  r  r  ra  r  )r  r6  r   r'  r  r`  r*  r+  s           r  r_  r_  	  s    QiiGy))L
!"C
D
DB
"VT5>><
8
8C+++m&FFKMM	 bE'NNLAA7=)) nnr  c                    t          |          }t          d          }t          |_        t	          d          |_        ||_        t          d          } || t          |                    }|t          k    rW|j        t          z  } |            }||_         || t          |                    }t          |           |d|j                 S t          |          )Nr   %nvmlDeviceGetProcessesUtilizationInfo)r  r  ProcessesUtilizationInfo_v1r  r  r  r  rj  r  r-  r  r  ra  r  )r  r6  r'  c_processesUtilInfor  r`  r*  r+  s           r  ra  ra    s    y))L=a@@"=.4Qii+,8)
!"I
J
JB
"VU.//
0
0C+++)=@aaKMM	,5) b23344.BBCC nnr  c                 N   t          d          }t                      }t          d          } || t          |          t          |                    }|t          k    r7 || t          |          t          |                    }t          |           nt          |          |S )NnvmlVgpuInstanceGetMetadatar   )rj  r  r  r  r-  ra  r  )rq  r  c_vgpuMetadatac_bufferSizer`  s        r  re  re  9  s    	 !>	?	?B)++N!99L "\500%2E2E
F
FC+++bu^44eL6I6IJJnnr  c                 N   t          d          }t                      }t          d          } || t          |          t          |                    }|t          k    r7 || t          |          t          |                    }t          |           nt          |          |S )NnvmlDeviceGetVgpuMetadatar   )rj  r  r  r  r-  ra  r  )r  r  c_vgpuPgpuMetadatarg  r`  s        r  ri  ri  G  s    	 !<	=	=B133!99L "VU-..l0C0C
D
DC+++b122E,4G4GHHnnr  c                     t          d          }t                      } |t          |           t          |          t          |                    }t          |           |S )NnvmlGetVgpuCompatibility)rj  r  r  ra  )vgpuMetadatapgpuMetadatar  c_vgpuPgpuCompatibilityr`  s        r  rl  rl  U  s\    	 !;	<	<B;==
"U<  %"5"5u=T7U7U
V
VCS""r  c                 r   t          d          }t          t                    }t          d          } || t	          |          t	          |                    }|t
          k    r7 || t	          |          t	          |                    }t          |           nt          |          |j        |j        fS )NnvmlDeviceGetPgpuMetadataStringr   )	rj  r  r  r  r  r-  ra  r  r  )r  r  c_pgpuMetadatarg  r`  s        r  rq  rq  \  s    	 !B	C	CB)*RSSN!99L "VU>**E,,?,?
@
@C+++b~..l0C0CDDnn ,"455r  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlDeviceGetVgpuSchedulerLog)r  rj  r  ra  )r  c_vgpu_sched_logr  r`  s       r  rt  rt  k  sJ    /11	 !@	A	AB
"VU+,,
-
-CSr  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlDeviceGetVgpuSchedulerState)r  rj  r  ra  )r  c_vgpu_sched_stater  r`  s       r  rw  rw  r  sJ    688	 !B	C	CB
"VU-..
/
/CSr  c                     t                      }t          d          } || t          |                    }t          |           |S )N&nvmlDeviceGetVgpuSchedulerCapabilities)r'  rj  r  ra  )r  c_vgpu_sched_capsr  r`  s       r  rz  rz  y  sJ    9;;	 !I	J	JB
"VU,--
.
.CSr  c                 ~    t          d          } || t          |                    }t          |           t          S )NnvmlDeviceSetVgpuSchedulerStaterj  r  ra  r_  )r  sched_stater  r`  s       r  r}  r}    s=    	 !B	C	CB
"VU;''
(
(CSr  c                 |    t          d          } |t          |                     }t          |           t          S )NnvmlSetVgpuVersionr~  )vgpuVersionr  r`  s      r  r  r    s;    	 !5	6	6B
"U;
 
 CSr  c                     | d up|d u}|st                      } t                      }t          d          } |t          |           t          |                    }t          |           |rt          n| j        | j        f|j        |j        fgS )NnvmlGetVgpuVersion)r  rj  r  ra  r_  r  r  )	supportedr  r/  r  r`  s        r  r  r    s    d*Dt0CM ('))	%''	 !5	6	6B
"U9uW~~
.
.CS( E<<	0D090D0F070B070B0D/E Er  c                     t                      }t          d          } || t          |                    }t          |           |j        S )N!nvmlVgpuInstanceGetAccountingModer  r  s       r  r  r    sH    !!F	 !D	E	EB
"\5==
)
)CS<r  c                 L   t                      }t          d          } || t          |          d           }|t          k    rP|j        t           z  } |            } || t          |          t          |                    }t          |           nt          |          ||fS )N!nvmlVgpuInstanceGetAccountingPids)r  rj  r  r-  r  ra  r  )rq  
c_pidCountr  r`  r*  
c_pidArrays         r  r  r    s    J	 !D	E	EB
"\5,,d
3
3C+++ &/ []]
buZ00%
2C2CDDnn
##r  c                     t                      }t          d          } || |t          |                    }t          |           |S )N"nvmlVgpuInstanceGetAccountingStats)r  rj  r  ra  )rq  r  c_accountingStatsr  r`  s        r  r  r    sL    /11	 !E	F	FB
"\3&7 8 8
9
9CSr  c                 b    t          d          } ||           }t          |           t          S )N#nvmlVgpuInstanceClearAccountingPidsr  )rq  r  r`  s      r  r  r    s3    	 !F	G	GB
"\

CSr  c                      t                      } t          d          } |t          |                     }t          |           | j        S )NnvmlGetExcludedDeviceCountr	  r
  s      r  r  r    sD    hhG	 !=	>	>B
"U7^^

CS=r  c                     t          |           }t                      }t          d          } ||t          |                    }t	          |           |S )N nvmlGetExcludedDeviceInfoByIndex)r  r  rj  r  ra  )r  r  infor  r`  s        r  r  r    sP    UmmG%''D	 !C	D	DB
"WeDkk
"
"CSKr  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetHostVgpuMode)_nvmlHostVgpuMode_trj  r  ra  r  )r  c_host_vgpu_moder  r`  s       r  r  r    sM    *,,	 !<	=	=B
"VU+,,
-
-CS!!r  c                     t                      }t          d          } || |t          |                    }t          |           |j        S )NnvmlDeviceSetMigModer	  )r  r  c_activationStatusr  r`  s        r  r  r    sM    	 !7	8	8B
"VT5!344
5
5CS##r  c                     t                      }t                      }t          d          } || t          |          t          |                    }t          |           |j        |j        gS )NnvmlDeviceGetMigModer	  )r  c_currentModec_pendingModer  r`  s        r  r  r    sd    HHMHHM	 !7	8	8B
"VU=))5+?+?
@
@CS!455r  c                    |dk    rt                      }t          d          }n8|dk    rt                      }t          d          }nt          t                     || |t          |                    }t          |           |S )Nr   $nvmlDeviceGetGpuInstanceProfileInfoVr   #nvmlDeviceGetGpuInstanceProfileInfo)rN  rj  rB  r  r3  r  ra  )r  profiler  r  r  r`  s         r  r  r    s    !||244$%KLL	A/11$%JKK5666
"VWeFmm
,
,CSMr  c                     t                      }t          d          } || |t          |                    }t          |           |j        S )N)nvmlDeviceGetGpuInstanceRemainingCapacityr	  )r  rT  r   r  r`  s        r  r  r    sH    hhG	 !L	M	MB
"VYg
/
/CS=r  c                 h    t          d          } || |||          }t          |           t          S )N-nvmlDeviceGetGpuInstancePossiblePlacements_v2r  )r  rT  placementsRefcountRefr  r`  s         r  *nvmlDeviceGetGpuInstancePossiblePlacementsr    s9    	 !P	Q	QB
"VYx
8
8CSr  c                     t                      }t          d          } || |t          |                    }t          |           |S )NnvmlDeviceCreateGpuInstancerh  rj  r  ra  )r  rT  
c_instancer  r`  s        r  r  r    sJ    $&&J	 !>	?	?B
"VYj 1 1
2
2CSr  c                     t                      }t          d          } || ||t          |                    }t          |           |S )N(nvmlDeviceCreateGpuInstanceWithPlacementr  )r  rT  rU  r  r  r`  s         r  r  r    sL    $&&J	 !K	L	LB
"VY	5+<+<
=
=CSr  c                 b    t          d          } ||           }t          |           t          S )NnvmlGpuInstanceDestroyr  )rg  r  r`  s      r  r  r  
  s1    	 !9	:	:B
"[//CSr  c                 h    t          d          } || |||          }t          |           t          S )NnvmlDeviceGetGpuInstancesr  )r  rT  gpuInstancesRefr  r  r`  s         r  r  r    s9    	 !<	=	=B
"VY
:
:CSr  c                     t                      }t          d          } || |t          |                    }t          |           |S )NnvmlDeviceGetGpuInstanceByIdr  )r  r  r  r  r`  s        r  r  r    sJ    $&&J	 !?	@	@B
"V]E*$5$5
6
6CSr  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlGpuInstanceGetInfo)rS  rj  r  ra  )rg  r  r  r`  s       r  r  r    sE    $&&F	 !9	:	:B
"[%--
(
(CSMr  c                    |dk    rt                      }t          d          }n8|dk    rt                      }t          d          }nt          t                     || ||t          |                    }t          |           |S )Nr   -nvmlGpuInstanceGetComputeInstanceProfileInfoVr   ,nvmlGpuInstanceGetComputeInstanceProfileInfo)rb  rj  r[  r  r3  r  ra  )r  r  
engProfiler  r  r  r`  s          r  r  r  $  s    !||688$%TUU	A355$%STT5666
"VWj%--
8
8CSMr  c                     t                      }t          d          } || |t          |                    }t          |           |j        S )N2nvmlGpuInstanceGetComputeInstanceRemainingCapacityr	  )rg  rT  r   r  r`  s        r  r  r  4  sH    hhG	 !U	V	VB
"[)U7^^
4
4CS=r  c                 h    t          d          } || |||          }t          |           t          S )N3nvmlGpuInstanceGetComputeInstancePossiblePlacementsr  )rg  rT  r  r  r  r`  s         r  r  r  ;  s9    	 !V	W	WB
"[)]H
=
=CSr  c                     t                      }t          d          } || |t          |                    }t          |           |S )N$nvmlGpuInstanceCreateComputeInstancec_nvmlComputeInstance_trj  r  ra  )rg  rT  r  r  r`  s        r  r  r  A  sJ    (**J	 !G	H	HB
"[)U:%6%6
7
7CSr  c                     t                      }t          d          } || ||t          |                    }t          |           |S )N1nvmlGpuInstanceCreateComputeInstanceWithPlacementr  )rg  rT  rU  r  r  r`  s         r  r  r  H  sL    (**J	 !T	U	UB
"[)Yj0A0A
B
BCSr  c                 b    t          d          } ||           }t          |           t          S )NnvmlComputeInstanceDestroyr  )computeInstancer  r`  s      r  r  r  O  s3    	 !=	>	>B
"_

CSr  c                 h    t          d          } || |||          }t          |           t          S )N"nvmlGpuInstanceGetComputeInstancesr  )rg  rT  computeInstancesRefr  r  r`  s         r  r  r  U  s:    	 !E	F	FB
"[)%8(
C
CCSr  c                     t                      }t          d          } || |t          |                    }t          |           |S )N%nvmlGpuInstanceGetComputeInstanceByIdr  )rg  r  r  r  r`  s        r  r  r  [  sK    (**J	 !H	I	IB
"[+U:->->
?
?CSr  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlComputeInstanceGetInfo_v2)rf  rj  r  ra  )r  r  r  r`  s       r  r  r  b  sE    (**F	 !@	A	AB
"_eFmm
,
,CSMr  c                      t          |           S r#  )r  )r  s    r  nvmlComputeInstanceGetInfor  i  s    (999r  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlDeviceIsMigDeviceHandle)r  rj  r  ra  )r  c_isMigDevicer  r`  s       r  r  r  l  sF    HHM	 !>	?	?B
"VU=))
*
*CSr  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetGpuInstanceIdr	  )r  c_gpuInstanceIdr  r`  s       r  r  r  s  sI    hhO	 !=	>	>B
"VU?++
,
,CS  r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetComputeInstanceIdr	  )r  c_computeInstanceIdr  r`  s       r  r  r  z  sK     ((	 !A	B	BB
"VU.//
0
0CS$$r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetMaxMigDeviceCountr	  )r  r   r  r`  s       r  r  r    F    hhG	 !A	B	BB
"VU7^^
$
$CS=r  c                     t          |          }t                      }t          d          } || |t          |                    }t	          |           |S )N#nvmlDeviceGetMigDeviceHandleByIndexr*  )r  r  r  	migDevicer  r`  s         r  r  r    sU    UmmG  I	 !F	G	GB
"VWeI..
/
/CSr  c                     t                      }t          d          } || t          |                    }t          |           |S )N,nvmlDeviceGetDeviceHandleFromMigDeviceHandle)r  rj  r  ra  )r  r  r  r`  s       r  r  r    sE    F	 !O	P	PB
"Yf
&
&CSMr  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlDeviceGetAttributes_v2)r  rj  r  ra  )r  c_attrsr  r`  s       r  r  r    sE    $&&G	 !=	>	>B
"VU7^^
$
$CSNr  c                      t          |           S r#  )r  )r  s    r  nvmlDeviceGetAttributesr    rZ  r  c           	      h   t          d          }t                      }t                      }t                      }t                      } || t          |          t          |          t          |          t          |                    }t          |           |j        |j        |j        |j        fS )NnvmlDeviceGetRemappedRowsr  )r  r  c_corrc_unc
c_bpending
c_bfailurer`  s          r  r  r    s    	 !<	=	=BXXFHHEJJ
"VU6]]E%LL%
2C2CU:EVEV
W
WCSL%+z'79IJJr  c                     t                      }t          d          } || t          |                    }t          |           |S )N!nvmlDeviceGetRowRemapperHistogram)r  rj  r  ra  )r  c_valsr  r`  s       r  r  r    sE    -//F	 !D	E	EB
"VU6]]
#
#CSMr  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetArchitecture)_nvmlDeviceArchitecture_trj  r  ra  r  )r  archr  r`  s       r  r  r    sH    $&&D	 !<	=	=B
"VU4[[
!
!CS:r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetBusType)_nvmlBusType_trj  r  ra  r  )r  	c_busTyper  r`  s       r  r  r    sJ      I	 !7	8	8B
"VU9%%
&
&CS?r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetIrqNumr	  )r  c_irqNumr  r`  s       r  r  r    sF    xxH	 !6	7	7B
"VU8__
%
%CS>r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetNumGpuCoresr	  )r  
c_numCoresr  r`  s       r  r   r     sI    J	 !;	<	<B
"VU:&&
'
'CSr  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetPowerSource)_nvmlPowerSource_trj  r  ra  r  )r  c_powerSourcer  r`  s       r  r  r    sK    &((M	 !;	<	<B
"VU=))
*
*CSr  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetMemoryBusWidthr	  )r  c_memBusWidthr  r`  s       r  r  r    sI    HHM	 !>	?	?B
"VU=))
*
*CSr  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetPcieLinkMaxSpeed)_nvmlPcieLinkMaxSpeed_trj  r  ra  r  r  r  r  r`  s       r  r
  r
    sH    %''G	 !@	A	AB
"VU7^^
$
$CS=r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )N$nvmlDeviceGetAdaptiveClockInfoStatus)_nvmlAdaptiveClockInfoStatus_trj  r  ra  r  )r  c_adaptiveClockInfoStatusr  r`  s       r  r  r    sM     > @ @	 !G	H	HB
"VU455
6
6CS$**r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetPcieSpeedr	  r  s       r  r  r    sF    hhG	 !9	:	:B
"VU7^^
$
$CS=r  c                     t          |          t          u}|r|nt          |          }t          d          } || |          }t	          |           |rt
          n|S )NnvmlDeviceGetDynamicPstatesInfo)rU  rp  r  rj  ra  r_  )r  c_dynamicpstatesinfore  dynamicpstatesinfoRefr  r`  s         r  r  r    sn    +,,4QQK4?`00UK_E`E`	 !B	C	CB
"V*
+
+CS&@<<,@@r  c                 f    t          d          } || ||          }t          |           t          S )NnvmlDeviceSetFanSpeed_v2r  )r  r  r  r  r`  s        r  r  r    s7    	 !;	<	<B
"VUE
"
"CSr  c                     t          |          t          u}|r|nt          |          }t          d          } || ||          }t	          |           |rt
          n|j        d d          S )NnvmlDeviceGetThermalSettings)rU  r|  r  rj  ra  r_  r}  )r  sensorindexc_thermalsettingsre  thermalsettingsRefr  r`  s          r  r  r     s|    ())1KKK.9W**uEV?W?W	 !?	@	@B
"V["4
5
5CS&G<<,=,DQQQ,GGr  c                 b   t          |          t          upt          |          t          u}|r|nt          |          }|r|nt          |          }t          d          } || t	          |          t	          |          ||          }	t          |	           |rt          n|j        |j        fS )N nvmlDeviceGetMinMaxClockOfPState)rU  r  r  rj  r  ra  r_  r  )
r  	clockTypepstateminClockMHzmaxClockMHzre  minClockMHzRefmaxClockMHzRefr  r`  s
             r  r  r    s    $$F2X[8I8IQW8WK$/G[[U;5G5GN$/G[[U;5G5GN	 !C	D	DB
"V%i002B62J2JN\j
k
kCS&R<<[->@Q,RRr  c                   6    e Zd ZdefdefdefdefdefdefgZdS )c_nvmlClockOffset_tr  rU  r!  clockOffsetMHzminClockOffsetMHzmaxClockOffsetMHzN)r  r	  r
  r  r  r  r2  rt  r  r  r  r'  r'    sF        	F	!"	>"	5!	e$	e$HHHr  r'  c                 F    t          d          } || |          }t          S )NnvmlDeviceGetClockOffsetsrj  r_  r  r  r  r`  s       r  r,  r,    '    	 !<	=	=B
"VT

Cr  c                 F    t          d          } || |          }t          S )NnvmlDeviceSetClockOffsetsr-  r.  s       r  r1  r1  "  r/  r  c                 <   g }t          t                    }t          t                     |j        z  }t          |j        z  } |            }t          d          } || ||          }t          |           |D ]"}|t          k    r|                    |           #|S )N'nvmlDeviceGetSupportedPerformanceStates)	r  NVML_MAX_GPU_PERF_PSTATESsizeofr  r  rj  ra  NVML_PSTATE_UNKNOWNr  )	r  pstatesr   c_sizepstates_array	c_pstatesr  r`  r  s	            r  r3  r3  '  s    G.//GF^^GM)F #W]2MI	 !J	K	KB
"VY
'
'CS " "'''NN5!!!Nr  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetGpcClkVfOffsetr~  rj  r  ra  r  r  offsetr  r`  s       r  r<  r<  :  F    YYF	 !>	?	?B
"VU6]]
#
#CS<r  c                     t          |          }t          d          } || |          }t          |           t          S )NnvmlDeviceSetGpcClkVfOffsetr~  rj  ra  r_  r  r?  c_offsetr  r`  s        r  rB  rB  A  @    vH	 !>	?	?B
"VX

CSr  c                 *   t          |          t          upt          |          t          u}|r|nt          |          }|r|nt          |          }t          d          } || ||          }t	          |           |rt
          n|j        |j        fS )N!nvmlDeviceGetGpcClkMinMaxVfOffsetrU  r2  r  rj  ra  r_  r  r  	minOffset	maxOffsetre  minOffsetRefmaxOffsetRefr  r`  s           r  rH  rH  H  s    	??%/RT)__E5QK +A99y1A1AL +A99y1A1AL	 !D	E	EB
"V\<
0
0CS&N<<Y_io,NNr  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetMemClkVfOffsetr=  r>  s       r  rP  rP  Q  r@  r  c                     t          |          }t          d          } || |          }t          |           t          S )NnvmlDeviceSetMemClkVfOffsetrC  rD  s        r  rR  rR  X  rF  r  c                 *   t          |          t          upt          |          t          u}|r|nt          |          }|r|nt          |          }t          d          } || ||          }t	          |           |rt
          n|j        |j        fS )N!nvmlDeviceGetMemClkMinMaxVfOffsetrI  rJ  s           r  rT  rT  _  s    	??%/RT)__E5QK +A99y1A1AL +A99y1A1AL	 !D	E	EB
"V\<
0
0CS&N<<Y_io,NNr  c                     t          |           }t          d          } ||          }t          |           t          S )N&nvmlSystemSetConfComputeGpusReadyStater  rj  ra  r_  )r  r  r  r`  s       r  rV  rV  i  s<    UmmG	 !I	J	JB
"W++CSr  c                      t                      } t          d          } |t          |                     }t          |           | j        S )N&nvmlSystemGetConfComputeGpusReadyStater	  r  r  r`  s      r  rY  rY  p  sD    hhG	 !I	J	JB
"U7^^

CS=r  c                      t                      } t          d          } |t          |                     }t          |           | S )N$nvmlSystemGetConfComputeCapabilities)r  rj  r  ra  )c_ccSysCapsr  r`  s      r  r\  r\  w  sF    /11K	 !G	H	HB
"U;
 
 CSr  c                      t                      } t          d          } |t          |                     }t          |           | S )NnvmlSystemGetConfComputeState)r  rj  r  ra  rZ  s      r  r_  r_  ~  sC    ,..G	 !@	A	AB
"U7^^

CSNr  c                 6    t          d          } ||           S )N nvmlSystemGetConfComputeSettingsr  )settingsr  s     r  ra  ra    s    	 !C	D	DB2h<<r  c                 d    t          d          } || |          }t          |           t          S )N*nvmlDeviceSetConfComputeUnprotectedMemSizer  r  c_ccMemSizer  r`  s       r  rd  rd    s5    	 !M	N	NB
"V[
!
!CSr  c                     t                      }t          d          } || t          |                    }t          |           |S )N#nvmlDeviceGetConfComputeMemSizeInfo)r  rj  r  ra  re  s       r  rh  rh    sH    022K	 !F	G	GB
"VU;''
(
(CSr  c                     t                      }t          d          } || t          |                    }t          |           |S )N,nvmlDeviceGetConfComputeProtectedMemoryUsage)r  rj  r  ra  )r  r-  r  r`  s       r  rj  rj    sE    H	 !O	P	PB
"VU8__
%
%CSOr  c                     t                      }t          d          } || t          |                    }t          |           |S )N&nvmlDeviceGetConfComputeGpuCertificate)r  rj  r  ra  )r  c_certr  r`  s       r  rl  rl    sE    .00F	 !I	J	JB
"VU6]]
#
#CSMr  c                     t                      }t          t          |          z  | }t          |d|           t	          d          } || t          |                    }t          |           |S )Nr  ,nvmlDeviceGetConfComputeGpuAttestationReport)r  rQ  r{  rV  rj  r  ra  )r  c_noncec_attestReportc_nonce_arrr  r`  s         r  ro  ro    so    <>>NS\\)W6KNG[111	 !O	P	PB
"VU>**
+
+CSr  c                     t          d          }t          |_        | |_        t	          d          } |t          |                    }t          |           t          S )Nr   0nvmlSystemSetConfComputeKeyRotationThresholdInfo)r  )ConfComputeSetKeyRotationThresholdInfo_v1r  r  rj  r  ra  r_  )max_atk_advc_keyRotationThrInfor  r`  s       r  rt  rt    s\    I!LL#L 0;-	 !S	T	TB
"U'((
)
)CSr  c                      t          d          } t          | _        t          d          } |t	          |                     }t          |           | S )Nr   0nvmlSystemGetConfComputeKeyRotationThresholdInfo)r  )ConfComputeGetKeyRotationThresholdInfo_v1r  rj  r  ra  )rw  r  r`  s      r  ry  ry    sS    I!LL#L 	 !S	T	TB
"U'((
)
)CSr  c                   B    e Zd Zdedz  fdedz  fdedz  fdedz  fgZdS r  r  r  r  r  r  r    r  r  c                       e Zd ZdS )struct_c_nvmlGpmSample_tNr  r  r  r  r}  r}    r  r  r}  c                   $    e Zd ZdefdefdefgZdS )c_metricInfo_t	shortNamelongNamer  N)r  r	  r
  r  rt  r  r  r  r  r    s-        	h	X	HHHr  r  c                   *    e Zd ZdefdefdefdefgZdS )c_nvmlGpmMetric_tmetricIdrC  r  
metricInfoN)r  r	  r
  r  rG  r/  r  rt  r  r  r  r  r  !  s5        	V	}%	(	~&	HHHr  r  c                   6    e Zd Zdefdefdefdefdeez  fgZdS )c_nvmlGpmMetricsGet_tr  
numMetricssample1sample2metricsN)r  r	  r
  r  c_nvmlGpmSample_tr  NVML_GPM_METRIC_MAXrt  r  r  r  r  r  )  sF        	F	v	%&	%&	%(;;<HHHr  r  c                       e Zd ZdefdefgZdS )c_nvmlGpmSupport_tr  isSupportedDeviceNr  r  r  r  r  r  4  s%        	F	f%HHHr  r  c                 r    t          d          } |t          |                     }t          |           | S )NnvmlGpmMetricsGetrO  )
metricsGetr  r`  s      r  r  r  >  s;    	 !4	5	5B
"U:

CSr  c                 X    t          d          } ||           }t          |           d S )NnvmlGpmSampleFreerv  	gpmSampler  r`  s      r  r  r  D  s0    	 !4	5	5B
"Y--CS
Fr  c                      t                      } t          d          } |t          |                     }t          |           | S )NnvmlGpmSampleAlloc)r  rj  r  ra  r  s      r  r  r  J  sF    !##I	 !5	6	6B
"U9

CSr  c                 Z    t          d          } || |          }t          |           |S )NnvmlGpmSampleGetrv  )r  r  r  r`  s       r  r  r  Q  s5    	 !3	4	4B
"VY

CSr  c                 \    t          d          } || ||          }t          |           |S )NnvmlGpmMigSampleGetrv  )r  r  r  r  r`  s        r  r  r  W  s7    	 !6	7	7B
"V]I
.
.CSr  c                     t                      }t          |_        t          d          } || t	          |                    }t          |           |S )NnvmlGpmQueryDeviceSupport)r  NVML_GPM_SUPPORT_VERSIONr  rj  r  ra  )r  
gpmSupportr  r`  s       r  r  r  ]  sP    #%%J1J	 !<	=	=B
"VU:&&
'
'CSr  c                     t          |          }t          d          } || |          }t          |           t          S )NnvmlGpmSetStreamingEnabledrW  )r  r  r  r  r`  s        r  r  r  e  s@    UmmG	 !=	>	>B
"VW

CSr  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlGpmQueryIfStreamingEnabledr	  )r  r  r  r`  s       r  r  r  l  r  r  i  c                       e Zd ZdefgZdS )c_nvmlNvLinkPowerThres_tlowPwrThresholdNr  r  r  r  r  r  }  s        	F#HHHr  r  c                     t                      }||_        t          d          } || t          |                    }t	          |           t
          S )N*nvmlDeviceSetNvLinkDeviceLowPowerThreshold)r  r  rj  r  ra  r_  )r  l1thresholdr  r  r`  s        r  r  r    sN    %''F(F	 !M	N	NB
"VU6]]
#
#CSr  c                   0    e Zd Zdeez  fdefdefdefgZdS )c_nvmlGpuFabricInfo_tclusterUuidr  cliqueIdr  N)	r  r	  r
  r  r  rG  rD  _nvmlGpuFabricState_trt  r  r  r  r  r    s<        	!==>	=!	X	'(	HHHr  r  i$  c                   L     e Zd Zdefdeez  fdefdefdefdefgZ	 fdZ
 xZS )c_nvmlGpuFabricInfoV_tr  r  r  r  r  
healthMaskc                 d    t          t          |                               t                     d S rM  )r  r  ro  nvmlGpuFabricInfo_v2rO  s    r  ro  zc_nvmlGpuFabricInfoV_t.__init__  s,    $d++44=Q4RRRRRr  )r  r	  r
  r  r  NVML_GPU_FABRIC_UUID_LENrG  rD  r  rt  ro  r  r  s   @r  r  r    s        	F	!99:	=!	X	'(	x HS S S S S S S S Sr  r  c                 d    t          d          } || |          }t          |           t          S )NnvmlDeviceGetGpuFabricInfor  r  gpuFabricInfor  r`  s       r  r  r    s5    	 !=	>	>B
"V]
#
#CSr  c                 d    t          d          } || |          }t          |           t          S )NnvmlDeviceGetGpuFabricInfoVr  r  s       r  r  r    s5    	 !>	?	?B
"V]
#
#CSr  c                 b    t          d          } ||           }t          |           t          S )NnvmlSystemSetNvlinkBwModer  r  r  r`  s      r  r  r    s1    	 !<	=	=B
"T((CSr  c                      t                      } t          d          } |t          |                     }t          |           | j        S )NnvmlSystemGetNvlinkBwModer	  r  s      r  r  r    sB    88D	 !<	=	=B
"U4[[//CS:r  c                   ,    e Zd ZdefdefdefgZddiZdS )c_nvmlPowerValue_v2_tr  
powerScopepowerValueMwr  r  N)r  r	  r
  r  _nvmlPowerScopeType_trt  r  r  r  r  r  r    s:        	F	,-	 H
 &!EEEr  r  i  c                     t          |          }t                      }t          |          |_        ||_        t          |          |_        t          d          } || t          |                    }t          S )N$nvmlDeviceSetPowerManagementLimit_v2)	r  r  r  r  r  r  rj  r  r_  )r  r  
powerLimitr  c_powerScopec_powerValuer  r`  s           r  r  r    sm    (44L(**L!'??L*L &z 2 2L	 !G	H	HB
"VU<((
)
)Cr  c                   p     e Zd Zdefdefdefdefdefdefdefdefd	efd
efdefdefdefgZ fdZ xZS )c_nvmlEccSramErrorStatus_v1_tr  aggregateUncParityaggregateUncSecDedaggregateCorvolatileUncParityvolatileUncSecDedvolatileCoraggregateUncBucketL2aggregateUncBucketSmaggregateUncBucketPcieaggregateUncBucketMcuaggregateUncBucketOtherbThresholdExceededc                 d    t          t          |                               t                     d S rM  )r  r  ro  nvmlEccSramErrorStatus_v1rO  s    r  ro  z&c_nvmlEccSramErrorStatus_v1_t.__init__  ,    +T22;;D];^^^^^r  )r  r	  r
  r  r  rt  ro  r  r  s   @r  r  r    s        	F	{+	{+	%	k*	k*	$	-	-	!;/	 +.	"K0	v&H _ _ _ _ _ _ _ _ _r  r  ih  c                 d    t          d          } || |          }t          |           t          S )NnvmlDeviceGetSramEccErrorStatusr  )r  r  r  r`  s       r  r  r    s5    	 !B	C	CB
"VV

CSr  c                   .     e Zd ZdefdefgZ fdZ xZS )c_nvmlDeviceCapabilities_v1_tr  capMaskc                 d    t          t          |                               t                     d S rM  )r  r  ro  nvmlDeviceCapabilities_v1rO  s    r  ro  z&c_nvmlDeviceCapabilities_v1_t.__init__!  r  r  r  r  s   @r  r  r    sX        	F	FH
_ _ _ _ _ _ _ _ _r  r  c                 8    t          d          } || |          S )NnvmlDeviceGetCapabilitiesr  )r  capsr  s      r  r  r  %  s"    	 !<	=	=B2fdr  c            	       ^     e Zd Zdefdedz  fdedz  fdefdefdefdefd	efgZ fd
Z xZS )c_nvmlPlatformInfo_v1_tr  ibGuidr   rackGuidchassisPhysicalSlotNumbercomputeSlotIndex	nodeIndexpeerTyperd  c                 d    t          t          |                               t                     d S rM  )r  r  ro  nvmlPlatformInfo_v1rO  s    r  ro  z c_nvmlPlatformInfo_v1_t.__init__5  s,    %t,,55>Q5RRRRRr  )r  r	  r
  r  r  rt  ro  r  r  s   @r  r  r  )  s        	F	6B;	Vb[!	$f-	V$	f	V	V	HS S S S S S S S Sr  r  i,  c                 d    t          d          } || |          }t          |           t          S )NnvmlDeviceGetPlatformInfor  )r  platformInfor  r`  s       r  r  r  9  s5    	 !<	=	=B
"V\
"
"CSr  c                       e Zd Zdedz  fgZdS )c_nvmlMask255_tmaskr   Nr  r  r  r  r  r  ?  s!        	!HHHr  r  c                   :     e Zd ZdefdefdefdefgZ fdZ xZS )#c_nvmlWorkloadPowerProfileInfo_v1_tr  rT  priorityconflictingmaskc                 d    t          t          |                               t                     d S rM  )r  r  ro  nvmlWorkloadPowerProfileInfo_v1rO  s    r  ro  z,c_nvmlWorkloadPowerProfileInfo_v1_t.__init___  s,    1488AAJiAjjjjjr  r  r	  r
  r  r  rt  ro  r  r  s   @r  r  r  W  sh        	F	f	V	O,	Hk k k k k k k k kr  r  i+ c                   :     e Zd Zdefdefdeez  fgZ fdZ xZ	S )+c_nvmlWorkloadPowerProfileProfilesInfo_v1_tr  perfProfilesMaskperfProfilec                 d    t          t          |                               t                     d S rM  )r  r  ro  'nvmlWorkloadPowerProfileProfilesInfo_v1rO  s    r  ro  z4c_nvmlWorkloadPowerProfileProfilesInfo_v1_t.__init__j  s,    94@@IIRyIzzzzzr  )
r  r	  r
  r  r  r   NVML_WORKLOAD_POWER_MAX_PROFILESrt  ro  r  r  s   @r  r  r  c  sg        	F	_-	;>^^_H{ { { { { { { { {r  r  id  c                   :     e Zd ZdefdefdefdefgZ fdZ xZS ).c_nvmlWorkloadPowerProfileCurrentProfiles_v1_tr  r 	  requestedProfilesMaskenforcedProfilesMaskc                 d    t          t          |                               t                     d S rM  )r  r	  ro  *nvmlWorkloadPowerProfileCurrentProfiles_v1rO  s    r  ro  z7c_nvmlWorkloadPowerProfileCurrentProfiles_v1_t.__init__v  s;    <dCCLLUL  	A  	A  	A  	A  	Ar  r  r  s   @r  r	  r	  n  sh        	F	_-	 /2	1	HA A A A A A A A Ar  r	  i$  c                   .     e Zd ZdefdefgZ fdZ xZS )0c_nvmlWorkloadPowerProfileRequestedProfiles_v1_tr  r	  c                 d    t          t          |                               t                     d S rM  )r  r	  ro  ,nvmlWorkloadPowerProfileRequestedProfiles_v1rO  s    r  ro  z9c_nvmlWorkloadPowerProfileRequestedProfiles_v1_t.__init__  s?    >EENN  XDN  	E  	E  	E  	E  	Er  r  r  s   @r  r	  r	  z  sX        	F	 /2H
E E E E E E E E Er  r	  c                 d    t          d          } || |          }t          |           t          S )N-nvmlDeviceWorkloadPowerProfileGetProfilesInfor  )r  profilesInfor  r`  s       r  r	  r	    s5    	 !P	Q	QB
"V\
"
"CSr  c                 d    t          d          } || |          }t          |           t          S )N0nvmlDeviceWorkloadPowerProfileGetCurrentProfilesr  )r  currentProfilesr  r`  s       r  r	  r	    s5    	 !S	T	TB
"V_
%
%CSr  c                 d    t          d          } || |          }t          |           t          S )N2nvmlDeviceWorkloadPowerProfileSetRequestedProfilesr  r  requestedProfilesr  r`  s       r  r	  r	    s6    	 !U	V	VB
"V&
'
'CSr  c                 d    t          d          } || |          }t          |           t          S )N4nvmlDeviceWorkloadPowerProfileClearRequestedProfilesr  r	  s       r  r	  r	    s6    	 !W	X	XB
"V&
'
'CSr  c                 d    t          d          } || |          }t          |           t          S )N#nvmlDeviceGetNvlinkSupportedBwModesr  )r  supportedBwModesr  r`  s       r  r	  r	    s6    	 !F	G	GB
"V%
&
&CSr  c                 d    t          d          } || |          }t          |           t          S )NnvmlDeviceGetNvlinkBwModer  )r  	getBwModer  r`  s       r  r	  r	    5    	 !<	=	=B
"VY

CSr  c                 d    t          d          } || |          }t          |           t          S )NnvmlDeviceSetNvlinkBwModer  )r  	setBwModer  r`  s       r  r#	  r#	    r!	  r  c                   .     e Zd ZdefdefgZ fdZ xZS )c_nvmlDramEncryptionInfo_tr  encryptionStatec                 d    t          t          |                               t                     d S rM  )r  r&	  ro  nvmlDramEncryptionInfo_v1rO  s    r  ro  z#c_nvmlDramEncryptionInfo_t.__init__  s,    ($//88AZ8[[[[[r  )r  r	  r
  r  r  rt  ro  r  r  s   @r  r&	  r&	    sY        	F	/0H
\ \ \ \ \ \ \ \ \r  r&	  c                     t                      }t                      }t          d          } || t          |          t          |                    }t          |           |j        |j        gS )NnvmlDeviceGetDramEncryptionMode)r&	  rj  r  ra  r'	  r   s        r  r+	  r+	    sh    ,..K/11N	 !B	C	CB
"VU;''~)>)>
?
?CS')GHHr  c                 ,    t          |           d         S rs  r+	  rY  s    r  &nvmlDeviceGetCurrentDramEncryptionModer.	        *622155r  c                 ,    t          |           d         S r(  r-	  rY  s    r  &nvmlDeviceGetPendingDramEncryptionModer1	    r/	  r  c                     t          d          }t                      }||_         || t          |                    }t	          |           d S )NnvmlDeviceSetDramEncryptionMode)rj  r&	  r'	  r  ra  )r  r  r  c_dramEncryptionModer`  s        r  r3	  r3	    sR    	 !B	C	CB577+/(
"VU/00
1
1CS4r  c                   .     e Zd ZdefdefgZ fdZ xZS )c_nvmlPowerSmoothingState_v1_tr  r  c                 d    t          t          |                               t                     d S rM  )r  r6	  ro  nvmlPowerSmoothingState_v1rO  s    r  ro  z'c_nvmlPowerSmoothingState_v1_t.__init__  s,    ,d33<<E_<`````r  r  r  s   @r  r6	  r6	    sX        	F	&H
a a a a a a a a ar  r6	  c                   :     e Zd ZdefdefdefdefgZ fdZ xZS ) c_nvmlPowerSmoothingProfile_v1_tr  rT  paramIdr  c                 d    t          t          |                               t                     d S rM  )r  r:	  ro  nvmlPowerSmoothingProfile_v1rO  s    r  ro  z)c_nvmlPowerSmoothingProfile_v1_t.__init__  s,    .55>>Gc>dddddr  )r  r	  r
  r  r/  rt  ro  r  r  s   @r  r:	  r:	    sh        	F	f	F	(	He e e e e e e e er  r:	  c                 Z    t          d          } || |          }t          |           d S )N-nvmlDevicePowerSmoothingActivatePresetProfilerv  r  r  r  r`  s       r  r?	  r?	    s5    	 !P	Q	QB
"VW

CSr  c                 Z    t          d          } || |          }t          |           d S )N0nvmlDevicePowerSmoothingUpdatePresetProfileParamrv  r@	  s       r  rB	  rB	    s5    	 !S	T	TB
"VW

CSr  c                 Z    t          d          } || |          }t          |           d S )N nvmlDevicePowerSmoothingSetStaterv  )r  r  r  r`  s       r  rD	  rD	    s5    	 !C	D	DB
"VU

CSr  r#  )r   r   )NN(L  ctypesctypes.utilr   	functoolsr   rN  r  	threadingrQ  r  r  NVML_FEATURE_DISABLEDNVML_FEATURE_ENABLEDrR  NVML_BRAND_UNKNOWNNVML_BRAND_QUADRONVML_BRAND_TESLANVML_BRAND_NVSNVML_BRAND_GRIDNVML_BRAND_GEFORCENVML_BRAND_TITANNVML_BRAND_NVIDIA_VAPPSNVML_BRAND_NVIDIA_VPCNVML_BRAND_NVIDIA_VCSNVML_BRAND_NVIDIA_VWSNVML_BRAND_NVIDIA_CLOUD_GAMINGNVML_BRAND_NVIDIA_VGAMINGNVML_BRAND_QUADRO_RTXNVML_BRAND_NVIDIA_RTXNVML_BRAND_NVIDIANVML_BRAND_GEFORCE_RTXNVML_BRAND_TITAN_RTXNVML_BRAND_COUNTr  #NVML_TEMPERATURE_THRESHOLD_SHUTDOWN#NVML_TEMPERATURE_THRESHOLD_SLOWDOWN"NVML_TEMPERATURE_THRESHOLD_MEM_MAX"NVML_TEMPERATURE_THRESHOLD_GPU_MAX'NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_MIN(NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_CURR'NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_MAX#NVML_TEMPERATURE_THRESHOLD_GPS_CURR NVML_TEMPERATURE_THRESHOLD_COUNTr  NVML_TEMPERATURE_GPUNVML_TEMPERATURE_COUNTr3  NVML_COMPUTEMODE_DEFAULT!NVML_COMPUTEMODE_EXCLUSIVE_THREADNVML_COMPUTEMODE_PROHIBITED"NVML_COMPUTEMODE_EXCLUSIVE_PROCESSNVML_COMPUTEMODE_COUNTrN  NVML_MEMORY_LOCATION_L1_CACHENVML_MEMORY_LOCATION_L2_CACHE"NVML_MEMORY_LOCATION_DEVICE_MEMORYNVML_MEMORY_LOCATION_DRAM"NVML_MEMORY_LOCATION_REGISTER_FILE#NVML_MEMORY_LOCATION_TEXTURE_MEMORY NVML_MEMORY_LOCATION_TEXTURE_SHMNVML_MEMORY_LOCATION_CBUNVML_MEMORY_LOCATION_SRAMNVML_MEMORY_LOCATION_COUNTNVML_NVLINK_MAX_LINKSNVML_NVLINK_MAX_LANES_nvmlNvLinkErrorCounter_tNVML_NVLINK_ERROR_DL_REPLAYNVML_NVLINK_ERROR_DL_RECOVERYNVML_NVLINK_ERROR_DL_CRC_FLITNVML_NVLINK_ERROR_DL_CRC_DATANVML_NVLINK_ERROR_DL_ECC_DATANVML_NVLINK_ERROR_COUNT _nvmlNvLinkEccLaneErrorCounter_tNVML_NVLINK_ERROR_DL_ECC_LANE0NVML_NVLINK_ERROR_DL_ECC_LANE1NVML_NVLINK_ERROR_DL_ECC_LANE2NVML_NVLINK_ERROR_DL_ECC_LANE3NVML_NVLINK_ERROR_DL_ECC_COUNT_nvmlNvLinkCapability_tNVML_NVLINK_CAP_P2P_SUPPORTEDNVML_NVLINK_CAP_SYSMEM_ACCESSNVML_NVLINK_CAP_P2P_ATOMICSNVML_NVLINK_CAP_SYSMEM_ATOMICSNVML_NVLINK_CAP_SLI_BRIDGENVML_NVLINK_CAP_VALIDNVML_NVLINK_CAP_COUNTr  !NVML_NVLINK_COUNTER_PKTFILTER_NOP"NVML_NVLINK_COUNTER_PKTFILTER_READ#NVML_NVLINK_COUNTER_PKTFILTER_WRITE#NVML_NVLINK_COUNTER_PKTFILTER_RATOM$NVML_NVLINK_COUNTER_PKTFILTER_NRATOM#NVML_NVLINK_COUNTER_PKTFILTER_FLUSH&NVML_NVLINK_COUNTER_PKTFILTER_RESPDATA(NVML_NVLINK_COUNTER_PKTFILTER_RESPNODATA!NVML_NVLINK_COUNTER_PKTFILTER_ALLr  NVML_NVLINK_COUNTER_UNIT_CYCLES NVML_NVLINK_COUNTER_UNIT_PACKETSNVML_NVLINK_COUNTER_UNIT_BYTES!NVML_NVLINK_COUNTER_UNIT_RESERVEDNVML_NVLINK_COUNTER_UNIT_COUNTrd  NVML_NVLINK_DEVICE_TYPE_GPUNVML_NVLINK_DEVICE_TYPE_IBMNPUNVML_NVLINK_DEVICE_TYPE_SWITCHNVML_NVLINK_DEVICE_TYPE_UNKNOWN_nvmlEccBitType_tNVML_SINGLE_BIT_ECCNVML_DOUBLE_BIT_ECCNVML_ECC_ERROR_TYPE_COUNTrF  NVML_VOLATILE_ECCNVML_AGGREGATE_ECCNVML_ECC_COUNTER_TYPE_COUNTrE   NVML_MEMORY_ERROR_TYPE_CORRECTED"NVML_MEMORY_ERROR_TYPE_UNCORRECTEDNVML_MEMORY_ERROR_TYPE_COUNTr  NVML_CLOCK_GRAPHICSNVML_CLOCK_SMNVML_CLOCK_MEMNVML_CLOCK_VIDEONVML_CLOCK_COUNTr  NVML_CLOCK_ID_CURRENTNVML_CLOCK_ID_APP_CLOCK_TARGETNVML_CLOCK_ID_APP_CLOCK_DEFAULT NVML_CLOCK_ID_CUSTOMER_BOOST_MAXNVML_CLOCK_ID_COUNTrd  NVML_DRIVER_WDDMNVML_DRIVER_WDMNVML_DRIVER_MCDMr4  r  NVML_PSTATE_0NVML_PSTATE_1NVML_PSTATE_2NVML_PSTATE_3NVML_PSTATE_4NVML_PSTATE_5NVML_PSTATE_6NVML_PSTATE_7NVML_PSTATE_8NVML_PSTATE_9NVML_PSTATE_10NVML_PSTATE_11NVML_PSTATE_12NVML_PSTATE_13NVML_PSTATE_14NVML_PSTATE_15r6  r  NVML_INFOROM_OEMNVML_INFOROM_ECCNVML_INFOROM_POWERNVML_INFOROM_DENNVML_INFOROM_COUNTrG  r_  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  NVML_ERROR_IN_USEr9  NVML_ERROR_NO_DATA!NVML_ERROR_VGPU_ECC_NOT_SUPPORTED!NVML_ERROR_INSUFFICIENT_RESOURCESNVML_ERROR_FREQ_NOT_SUPPORTEDr  NVML_ERROR_DEPRECATEDNVML_ERROR_NOT_READYNVML_ERROR_GPU_NOT_FOUNDNVML_ERROR_INVALID_STATEr:  r  NVML_FAN_NORMALNVML_FAN_FAILEDr  (NVML_FAN_POLICY_TEMPERATURE_CONTINOUS_SWNVML_FAN_POLICY_MANUALr  NVML_LED_COLOR_GREENNVML_LED_COLOR_AMBERr  NVML_GOM_ALL_ONNVML_GOM_COMPUTENVML_GOM_LOW_DPr	  9NVML_PAGE_RETIREMENT_CAUSE_MULTIPLE_SINGLE_BIT_ECC_ERRORS/NVML_PAGE_RETIREMENT_CAUSE_DOUBLE_BIT_ECC_ERROR NVML_PAGE_RETIREMENT_CAUSE_COUNTr  *NVML_RESTRICTED_API_SET_APPLICATION_CLOCKS+NVML_RESTRICTED_API_SET_AUTO_BOOSTED_CLOCKSNVML_RESTRICTED_API_COUNTr  NVML_BRIDGE_CHIP_PLXNVML_BRIDGE_CHIP_BRO4NVML_MAX_PHYSICAL_BRIDGErF  NVML_VALUE_TYPE_DOUBLENVML_VALUE_TYPE_UNSIGNED_INTNVML_VALUE_TYPE_UNSIGNED_LONG"NVML_VALUE_TYPE_UNSIGNED_LONG_LONG NVML_VALUE_TYPE_SIGNED_LONG_LONGNVML_VALUE_TYPE_SIGNED_INTNVML_VALUE_TYPE_UNSIGNED_SHORTNVML_VALUE_TYPE_COUNT_nvmlNvlinkVersion_tNVML_NVLINK_VERSION_INVALIDNVML_NVLINK_VERSION_1_0NVML_NVLINK_VERSION_2_0NVML_NVLINK_VERSION_2_2NVML_NVLINK_VERSION_3_0NVML_NVLINK_VERSION_3_1NVML_NVLINK_VERSION_4_0NVML_NVLINK_VERSION_5_0r.  NVML_PERF_POLICY_POWERNVML_PERF_POLICY_THERMALNVML_PERF_POLICY_SYNC_BOOSTNVML_PERF_POLICY_BOARD_LIMIT NVML_PERF_POLICY_LOW_UTILIZATIONNVML_PERF_POLICY_RELIABILITY!NVML_PERF_POLICY_TOTAL_APP_CLOCKS"NVML_PERF_POLICY_TOTAL_BASE_CLOCKSNVML_PERF_POLICY_COUNTr8  NVML_ENCODER_QUERY_H264NVML_ENCODER_QUERY_HEVCNVML_ENCODER_QUERY_AV1NVML_ENCODER_QUERY_UNKNOWN_nvmlFBCSessionType_tNVML_FBC_SESSION_TYPE_UNKNOWNNVML_FBC_SESSION_TYPE_TOSYSNVML_FBC_SESSION_TYPE_CUDANVML_FBC_SESSION_TYPE_VIDNVML_FBC_SESSION_TYPE_HWENC_nvmlDetachGpuState_tNVML_DETACH_GPU_KEEPNVML_DETACH_GPU_REMOVE_nvmlPcieLinkState_tNVML_PCIE_LINK_KEEPNVML_PCIE_LINK_SHUT_DOWNr$  NVML_TOTAL_POWER_SAMPLESNVML_GPU_UTILIZATION_SAMPLESNVML_MEMORY_UTILIZATION_SAMPLESNVML_ENC_UTILIZATION_SAMPLESNVML_DEC_UTILIZATION_SAMPLESNVML_PROCESSOR_CLK_SAMPLESNVML_MEMORY_CLK_SAMPLESNVML_MODULE_POWER_SAMPLESNVML_JPG_UTILIZATION_SAMPLESNVML_OFA_UTILIZATION_SAMPLESNVML_SAMPLINGTYPE_COUNTr4  NVML_PCIE_UTIL_TX_BYTESNVML_PCIE_UTIL_RX_BYTESNVML_PCIE_UTIL_COUNTr?  NVML_TOPOLOGY_INTERNALNVML_TOPOLOGY_SINGLENVML_TOPOLOGY_MULTIPLENVML_TOPOLOGY_HOSTBRIDGENVML_TOPOLOGY_NODENVML_TOPOLOGY_CPUNVML_TOPOLOGY_SYSTEM_nvmlGpuP2PCapsIndex_tNVML_P2P_CAPS_INDEX_READNVML_P2P_CAPS_INDEX_WRITENVML_P2P_CAPS_INDEX_NVLINKNVML_P2P_CAPS_INDEX_ATOMICSNVML_P2P_CAPS_INDEX_PROPNVML_P2P_CAPS_INDEX_PCINVML_P2P_CAPS_INDEX_UNKNOWNr$  NVML_P2P_STATUS_OK$NVML_P2P_STATUS_CHIPSET_NOT_SUPPORED%NVML_P2P_STATUS_CHIPSET_NOT_SUPPORTED!NVML_P2P_STATUS_GPU_NOT_SUPPORTED*NVML_P2P_STATUS_IOH_TOPOLOGY_NOT_SUPPORTED"NVML_P2P_STATUS_DISABLED_BY_REGKEYNVML_P2P_STATUS_NOT_SUPPORTEDNVML_P2P_STATUS_UNKNOWNr  NVML_DEVICE_ARCH_KEPLERNVML_DEVICE_ARCH_MAXWELLNVML_DEVICE_ARCH_PASCALNVML_DEVICE_ARCH_VOLTANVML_DEVICE_ARCH_TURINGNVML_DEVICE_ARCH_AMPERENVML_DEVICE_ARCH_ADANVML_DEVICE_ARCH_HOPPERNVML_DEVICE_ARCH_BLACKWELLNVML_DEVICE_ARCH_T23XNVML_DEVICE_ARCH_UNKNOWNr  NVML_BUS_TYPE_UNKNOWNNVML_BUS_TYPE_PCINVML_BUS_TYPE_PCIENVML_BUS_TYPE_FPCINVML_BUS_TYPE_AGPr  NVML_POWER_SOURCE_ACNVML_POWER_SOURCE_BATTERYNVML_POWER_SOURCE_UNDERSIZEDr  +NVML_ADAPTIVE_CLOCKING_INFO_STATUS_DISABLED*NVML_ADAPTIVE_CLOCKING_INFO_STATUS_ENABLED_nvmlClockLimitId_tNVML_CLOCK_LIMIT_ID_RANGE_STARTNVML_CLOCK_LIMIT_ID_TDPNVML_CLOCK_LIMIT_ID_UNLIMITEDr   NVML_PCIE_LINK_MAX_SPEED_INVALID!NVML_PCIE_LINK_MAX_SPEED_2500MBPS!NVML_PCIE_LINK_MAX_SPEED_5000MBPS!NVML_PCIE_LINK_MAX_SPEED_8000MBPS"NVML_PCIE_LINK_MAX_SPEED_16000MBPS"NVML_PCIE_LINK_MAX_SPEED_32000MBPS"NVML_PCIE_LINK_MAX_SPEED_64000MBPS_nvmlPcieAtomicsCapability_t NVML_PCIE_ATOMICS_CAP_FETCHADD32 NVML_PCIE_ATOMICS_CAP_FETCHADD64NVML_PCIE_ATOMICS_CAP_SWAP32NVML_PCIE_ATOMICS_CAP_SWAP64NVML_PCIE_ATOMICS_CAP_CAS32NVML_PCIE_ATOMICS_CAP_CAS64NVML_PCIE_ATOMICS_CAP_CAS128NVML_PCIE_ATOMICS_OPS_MAXrj  NVML_AFFINITY_SCOPE_NODENVML_AFFINITY_SCOPE_SOCKET_nvmlDeviceGpuRecoveryAction_tNVML_GPU_RECOVERY_ACTION_NONE"NVML_GPU_RECOVERY_ACTION_GPU_RESET$NVML_GPU_RECOVERY_ACTION_NODE_REBOOT"NVML_GPU_RECOVERY_ACTION_DRAIN_P2P(NVML_GPU_RECOVERY_ACTION_DRAIN_AND_RESETnvmlFlagDefaultnvmlFlagForceNVML_INIT_FLAG_NO_GPUSNVML_INIT_FLAG_NO_ATTACHNVML_MAX_GPC_COUNTr  r  r  r  r  r  rQ  ra  r]  'NVML_DEVICE_GPU_PART_NUMBER_BUFFER_SIZEro  r  r  r  r  r  r5  r  r  +NVML_DEVICE_GPU_FRU_PART_NUMBER_BUFFER_SIZEr>  !NVML_DEVICE_PCI_BUS_ID_LEGACY_FMTNVML_DEVICE_PCI_BUS_ID_FMTr  rs  NVML_VALUE_NOT_AVAILABLE_uintNVML_FI_DEV_ECC_CURRENTNVML_FI_DEV_ECC_PENDINGNVML_FI_DEV_ECC_SBE_VOL_TOTALNVML_FI_DEV_ECC_DBE_VOL_TOTALNVML_FI_DEV_ECC_SBE_AGG_TOTALNVML_FI_DEV_ECC_DBE_AGG_TOTALNVML_FI_DEV_ECC_SBE_VOL_L1NVML_FI_DEV_ECC_DBE_VOL_L1NVML_FI_DEV_ECC_SBE_VOL_L2NVML_FI_DEV_ECC_DBE_VOL_L2NVML_FI_DEV_ECC_SBE_VOL_DEVNVML_FI_DEV_ECC_DBE_VOL_DEVNVML_FI_DEV_ECC_SBE_VOL_REGNVML_FI_DEV_ECC_DBE_VOL_REGNVML_FI_DEV_ECC_SBE_VOL_TEXNVML_FI_DEV_ECC_DBE_VOL_TEXNVML_FI_DEV_ECC_DBE_VOL_CBUNVML_FI_DEV_ECC_SBE_AGG_L1NVML_FI_DEV_ECC_DBE_AGG_L1NVML_FI_DEV_ECC_SBE_AGG_L2NVML_FI_DEV_ECC_DBE_AGG_L2NVML_FI_DEV_ECC_SBE_AGG_DEVNVML_FI_DEV_ECC_DBE_AGG_DEVNVML_FI_DEV_ECC_SBE_AGG_REGNVML_FI_DEV_ECC_DBE_AGG_REGNVML_FI_DEV_ECC_SBE_AGG_TEXNVML_FI_DEV_ECC_DBE_AGG_TEXNVML_FI_DEV_ECC_DBE_AGG_CBUNVML_FI_DEV_RETIRED_SBENVML_FI_DEV_RETIRED_DBENVML_FI_DEV_RETIRED_PENDING*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L0*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L1*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L2*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L3*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L4*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L5-NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_TOTAL*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L0*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L1*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L2*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L3*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L4*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L5-NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_TOTAL(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L0(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L1(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L2(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L3(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L4(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L5+NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_TOTAL*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L0*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L1*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L2*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L3*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L4*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L5-NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_TOTAL"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L0"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L1"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L2"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L3"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L4"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L5%NVML_FI_DEV_NVLINK_BANDWIDTH_C0_TOTAL"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L0"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L1"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L2"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L3"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L4"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L5%NVML_FI_DEV_NVLINK_BANDWIDTH_C1_TOTALNVML_FI_DEV_PERF_POLICY_POWERNVML_FI_DEV_PERF_POLICY_THERMAL"NVML_FI_DEV_PERF_POLICY_SYNC_BOOST#NVML_FI_DEV_PERF_POLICY_BOARD_LIMIT'NVML_FI_DEV_PERF_POLICY_LOW_UTILIZATION#NVML_FI_DEV_PERF_POLICY_RELIABILITY(NVML_FI_DEV_PERF_POLICY_TOTAL_APP_CLOCKS)NVML_FI_DEV_PERF_POLICY_TOTAL_BASE_CLOCKSNVML_FI_DEV_MEMORY_TEMP$NVML_FI_DEV_TOTAL_ENERGY_CONSUMPTION NVML_FI_DEV_NVLINK_SPEED_MBPS_L0 NVML_FI_DEV_NVLINK_SPEED_MBPS_L1 NVML_FI_DEV_NVLINK_SPEED_MBPS_L2 NVML_FI_DEV_NVLINK_SPEED_MBPS_L3 NVML_FI_DEV_NVLINK_SPEED_MBPS_L4 NVML_FI_DEV_NVLINK_SPEED_MBPS_L5$NVML_FI_DEV_NVLINK_SPEED_MBPS_COMMONNVML_FI_DEV_NVLINK_LINK_COUNTNVML_FI_DEV_RETIRED_PENDING_SBENVML_FI_DEV_RETIRED_PENDING_DBENVML_FI_DEV_PCIE_REPLAY_COUNTER(NVML_FI_DEV_PCIE_REPLAY_ROLLOVER_COUNTER*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L6*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L7*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L8*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L9+NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L10+NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L11*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L6*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L7*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L8*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L9+NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L10+NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L11(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L6(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L7(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L8(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L9)NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L10)NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L11*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L6*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L7*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L8*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L9+NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L10+NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L11"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L6"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L7"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L8"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L9#NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L10#NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L11"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L6"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L7"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L8"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L9#NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L10#NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L11 NVML_FI_DEV_NVLINK_SPEED_MBPS_L6 NVML_FI_DEV_NVLINK_SPEED_MBPS_L7 NVML_FI_DEV_NVLINK_SPEED_MBPS_L8 NVML_FI_DEV_NVLINK_SPEED_MBPS_L9!NVML_FI_DEV_NVLINK_SPEED_MBPS_L10!NVML_FI_DEV_NVLINK_SPEED_MBPS_L11%NVML_FI_DEV_NVLINK_THROUGHPUT_DATA_TX%NVML_FI_DEV_NVLINK_THROUGHPUT_DATA_RX$NVML_FI_DEV_NVLINK_THROUGHPUT_RAW_TX$NVML_FI_DEV_NVLINK_THROUGHPUT_RAW_RXNVML_FI_DEV_REMAPPED_CORNVML_FI_DEV_REMAPPED_UNCNVML_FI_DEV_REMAPPED_PENDINGNVML_FI_DEV_REMAPPED_FAILURE#NVML_FI_DEV_NVLINK_REMOTE_NVLINK_ID)NVML_FI_DEV_NVSWITCH_CONNECTED_LINK_COUNT*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L0*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L1*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L2*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L3*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L4*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L5*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L6*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L7*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L8*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L9+NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L10+NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L11-NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_TOTAL"NVML_FI_DEV_NVLINK_ERROR_DL_REPLAY$NVML_FI_DEV_NVLINK_ERROR_DL_RECOVERYNVML_FI_DEV_NVLINK_ERROR_DL_CRCNVML_FI_DEV_NVLINK_GET_SPEEDNVML_FI_DEV_NVLINK_GET_STATENVML_FI_DEV_NVLINK_GET_VERSION"NVML_FI_DEV_NVLINK_GET_POWER_STATE&NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD'NVML_FI_DEV_PCIE_L0_TO_RECOVERY_COUNTERNVML_FI_DEV_C2C_LINK_COUNTNVML_FI_DEV_C2C_LINK_GET_STATUSNVML_FI_DEV_C2C_LINK_GET_MAX_BW)NVML_FI_DEV_PCIE_COUNT_CORRECTABLE_ERRORS$NVML_FI_DEV_PCIE_COUNT_NAKS_RECEIVED%NVML_FI_DEV_PCIE_COUNT_RECEIVER_ERRORNVML_FI_DEV_PCIE_COUNT_BAD_TLP NVML_FI_DEV_PCIE_COUNT_NAKS_SENTNVML_FI_DEV_PCIE_COUNT_BAD_DLLP&NVML_FI_DEV_PCIE_COUNT_NON_FATAL_ERROR"NVML_FI_DEV_PCIE_COUNT_FATAL_ERROR&NVML_FI_DEV_PCIE_COUNT_UNSUPPORTED_REQ!NVML_FI_DEV_PCIE_COUNT_LCRC_ERROR!NVML_FI_DEV_PCIE_COUNT_LANE_ERROR&NVML_FI_DEV_IS_RESETLESS_MIG_SUPPORTEDNVML_FI_DEV_POWER_AVERAGENVML_FI_DEV_POWER_INSTANTNVML_FI_DEV_POWER_MIN_LIMITNVML_FI_DEV_POWER_MAX_LIMITNVML_FI_DEV_POWER_DEFAULT_LIMITNVML_FI_DEV_POWER_CURRENT_LIMITNVML_FI_DEV_ENERGY!NVML_FI_DEV_POWER_REQUESTED_LIMIT'NVML_FI_DEV_TEMPERATURE_SHUTDOWN_TLIMIT'NVML_FI_DEV_TEMPERATURE_SLOWDOWN_TLIMIT&NVML_FI_DEV_TEMPERATURE_MEM_MAX_TLIMIT&NVML_FI_DEV_TEMPERATURE_GPU_MAX_TLIMITNVML_FI_DEV_PCIE_COUNT_TX_BYTESNVML_FI_DEV_PCIE_COUNT_RX_BYTES5NVML_FI_DEV_IS_MIG_MODE_INDEPENDENT_MIG_QUERY_CAPABLE*NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD_MAX%NVML_FI_DEV_NVLINK_COUNT_XMIT_PACKETS#NVML_FI_DEV_NVLINK_COUNT_XMIT_BYTES$NVML_FI_DEV_NVLINK_COUNT_RCV_PACKETS"NVML_FI_DEV_NVLINK_COUNT_RCV_BYTES%NVML_FI_DEV_NVLINK_COUNT_VL15_DROPPED0NVML_FI_DEV_NVLINK_COUNT_MALFORMED_PACKET_ERRORS.NVML_FI_DEV_NVLINK_COUNT_BUFFER_OVERRUN_ERRORS#NVML_FI_DEV_NVLINK_COUNT_RCV_ERRORS*NVML_FI_DEV_NVLINK_COUNT_RCV_REMOTE_ERRORS+NVML_FI_DEV_NVLINK_COUNT_RCV_GENERAL_ERRORS4NVML_FI_DEV_NVLINK_COUNT_LOCAL_LINK_INTEGRITY_ERRORS&NVML_FI_DEV_NVLINK_COUNT_XMIT_DISCARDS8NVML_FI_DEV_NVLINK_COUNT_LINK_RECOVERY_SUCCESSFUL_EVENTS4NVML_FI_DEV_NVLINK_COUNT_LINK_RECOVERY_FAILED_EVENTS-NVML_FI_DEV_NVLINK_COUNT_LINK_RECOVERY_EVENTS&NVML_FI_DEV_NVLINK_COUNT_RAW_BER_LANE0&NVML_FI_DEV_NVLINK_COUNT_RAW_BER_LANE1 NVML_FI_DEV_NVLINK_COUNT_RAW_BER)NVML_FI_DEV_NVLINK_COUNT_EFFECTIVE_ERRORS&NVML_FI_DEV_NVLINK_COUNT_EFFECTIVE_BER&NVML_FI_DEV_NVLINK_COUNT_SYMBOL_ERRORS#NVML_FI_DEV_NVLINK_COUNT_SYMBOL_BER*NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD_MIN,NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD_UNITS0NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD_SUPPORTEDNVML_FI_DEV_RESET_STATUS"NVML_FI_DEV_DRAIN_AND_RESET_STATUS&NVML_FI_DEV_PCIE_OUTBOUND_ATOMICS_MASK%NVML_FI_DEV_PCIE_INBOUND_ATOMICS_MASK#NVML_FI_DEV_GET_GPU_RECOVERY_ACTION&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_0&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_1&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_2&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_3&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_4&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_5&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_6&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_7&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_8&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_9'NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_10'NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_11'NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_12'NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_13'NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_14'NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_15NVML_FI_PWR_SMOOTHING_ENABLEDNVML_FI_PWR_SMOOTHING_PRIV_LVL+NVML_FI_PWR_SMOOTHING_IMM_RAMP_DOWN_ENABLED&NVML_FI_PWR_SMOOTHING_APPLIED_TMP_CEIL'NVML_FI_PWR_SMOOTHING_APPLIED_TMP_FLOOR3NVML_FI_PWR_SMOOTHING_MAX_PERCENT_TMP_FLOOR_SETTING3NVML_FI_PWR_SMOOTHING_MIN_PERCENT_TMP_FLOOR_SETTING=NVML_FI_PWR_SMOOTHING_HW_CIRCUITRY_PERCENT_LIFETIME_REMAINING-NVML_FI_PWR_SMOOTHING_MAX_NUM_PRESET_PROFILES/NVML_FI_PWR_SMOOTHING_PROFILE_PERCENT_TMP_FLOOR*NVML_FI_PWR_SMOOTHING_PROFILE_RAMP_UP_RATE,NVML_FI_PWR_SMOOTHING_PROFILE_RAMP_DOWN_RATE0NVML_FI_PWR_SMOOTHING_PROFILE_RAMP_DOWN_HYST_VAL+NVML_FI_PWR_SMOOTHING_ACTIVE_PRESET_PROFILE6NVML_FI_PWR_SMOOTHING_ADMIN_OVERRIDE_PERCENT_TMP_FLOOR1NVML_FI_PWR_SMOOTHING_ADMIN_OVERRIDE_RAMP_UP_RATE3NVML_FI_PWR_SMOOTHING_ADMIN_OVERRIDE_RAMP_DOWN_RATE7NVML_FI_PWR_SMOOTHING_ADMIN_OVERRIDE_RAMP_DOWN_HYST_VALNVML_FI_MAXNVML_NVLINK_STATE_INACTIVENVML_NVLINK_STATE_ACTIVENVML_NVLINK_STATE_SLEEP*NVML_NVLINK_LOW_POWER_THRESHOLD_UNIT_100US)NVML_NVLINK_LOW_POWER_THRESHOLD_UNIT_50US!NVML_GPU_VIRTUALIZATION_MODE_NONE(NVML_GPU_VIRTUALIZATION_MODE_PASSTHROUGH!NVML_GPU_VIRTUALIZATION_MODE_VGPU&NVML_GPU_VIRTUALIZATION_MODE_HOST_VGPU&NVML_GPU_VIRTUALIZATION_MODE_HOST_VSGArf  Lockrd  r  r  rv  _nvmlVgpuVmIdType_tNVML_VGPU_VM_ID_DOMAIN_IDNVML_VGPU_VM_ID_UUIDr  &NVML_GRID_LICENSE_FEATURE_CODE_UNKNOWN#NVML_GRID_LICENSE_FEATURE_CODE_VGPU)NVML_GRID_LICENSE_FEATURE_CODE_NVIDIA_RTX+NVML_GRID_LICENSE_FEATURE_CODE_VWORKSTATION%NVML_GRID_LICENSE_FEATURE_CODE_GAMING&NVML_GRID_LICENSE_FEATURE_CODE_COMPUTErQ  _nvmlGridLicenseExpiryStatus_t&NVML_GRID_LICENSE_EXPIRY_NOT_AVAILABLE NVML_GRID_LICENSE_EXPIRY_INVALIDNVML_GRID_LICENSE_EXPIRY_VALID'NVML_GRID_LICENSE_EXPIRY_NOT_APPLICABLE"NVML_GRID_LICENSE_EXPIRY_PERMANENTr  NVML_VGPU_CAP_NVLINK_P2PNVML_VGPU_CAP_GPUDIRECT"NVML_VGPU_CAP_MULTI_VGPU_EXCLUSIVENVML_VGPU_CAP_EXCLUSIVE_TYPENVML_VGPU_CAP_EXCLUSIVE_SIZENVML_VGPU_CAP_COUNTr  -NVML_VGPU_DRIVER_CAP_HETEROGENEOUS_MULTI_VGPU NVML_VGPU_DRIVER_CAP_WARM_UPDATENVML_VGPU_DRIVER_CAP_COUNTr  *NVML_DEVICE_VGPU_CAP_FRACTIONAL_MULTI_VGPU5NVML_DEVICE_VGPU_CAP_HETEROGENEOUS_TIMESLICE_PROFILES2NVML_DEVICE_VGPU_CAP_HETEROGENEOUS_TIMESLICE_SIZES*NVML_DEVICE_VGPU_CAP_READ_DEVICE_BUFFER_BW+NVML_DEVICE_VGPU_CAP_WRITE_DEVICE_BUFFER_BW%NVML_DEVICE_VGPU_CAP_DEVICE_STREAMING%NVML_DEVICE_VGPU_CAP_MINI_QUARTER_GPU-NVML_DEVICE_VGPU_CAP_COMPUTE_MEDIA_ENGINE_GPU NVML_DEVICE_VGPU_CAP_WARM_UPDATE+NVML_DEVICE_VGPU_CAP_HOMOGENEOUS_PLACEMENTSNVML_DEVICE_VGPU_CAP_COUNTr  1NVML_VGPU_INSTANCE_GUEST_INFO_STATE_UNINITIALIZED/NVML_VGPU_INSTANCE_GUEST_INFO_STATE_INITIALIZEDr  NVML_VGPU_VM_COMPATIBILITY_NONENVML_VGPU_VM_COMPATIBILITY_COLD$NVML_VGPU_VM_COMPATIBILITY_HIBERNATE NVML_VGPU_VM_COMPATIBILITY_SLEEPNVML_VGPU_VM_COMPATIBILITY_LIVEr  "NVML_VGPU_COMPATIBILITY_LIMIT_NONE)NVML_VGPU_COMPATIBILITY_LIMIT_HOST_DRIVER*NVML_VGPU_COMPATIBILITY_LIMIT_GUEST_DRIVER!NVML_VGPU_COMPATIBILITY_LIMIT_GPU#NVML_VGPU_COMPATIBILITY_LIMIT_OTHERr  NVML_HOST_VGPU_MODE_NON_SRIOVNVML_HOST_VGPU_MODE_SRIOV _nvmlConfComputeGpusReadyState_t'NVML_CC_ACCEPTING_CLIENT_REQUESTS_FALSE&NVML_CC_ACCEPTING_CLIENT_REQUESTS_TRUE_nvmlConfComputeGpuCaps_t"NVML_CC_SYSTEM_GPUS_CC_NOT_CAPABLENVML_CC_SYSTEM_GPUS_CC_CAPABLE_nvmlConfComputeCpuCaps_tNVML_CC_SYSTEM_CPU_CAPS_NONENVML_CC_SYSTEM_CPU_CAPS_AMD_SEV!NVML_CC_SYSTEM_CPU_CAPS_INTEL_TDX#NVML_CC_SYSTEM_CPU_CAPS_AMD_SEV_SNP$NVML_CC_SYSTEM_CPU_CAPS_AMD_SNP_VTOM_nvmlConfComputeDevToolsMode_t NVML_CC_SYSTEM_DEVTOOLS_MODE_OFFNVML_CC_SYSTEM_DEVTOOLS_MODE_ONNVML_CC_SYSTEM_MULTIGPU_NONE&NVML_CC_SYSTEM_MULTIGPU_PROTECTED_PCIE&NVML_CC_SYSTEM_ENVIRONMENT_UNAVAILABLENVML_CC_SYSTEM_ENVIRONMENT_SIMNVML_CC_SYSTEM_ENVIRONMENT_PROD_nvmlConfComputeCcFeature_tNVML_CC_SYSTEM_FEATURE_DISABLEDNVML_CC_SYSTEM_FEATURE_ENABLED0_nvmlConfComputeCcKeyRotationThreshAttackerAdv_t2NVML_CC_KEY_ROTATION_THRESH_ATTACKER_ADVANTAGE_MIN2NVML_CC_KEY_ROTATION_THRESH_ATTACKER_ADVANTAGE_MAXr.  r  r  r  r>  r]  ra  r&  rc  rj  objectrl  r{  r  	Structurer  r  r  r  r  r  nvmlC2cModeInfo_v1r  r  r  r  r  r  r  nvmlPciInfoExt_v1r  r  r  r  r  r  r  r  nvmlMemory_v2r  r  r  r  r   rz  c_nvmlProcessInfo_tr  NVML_PROCESS_MODE_COMPUTENVML_PROCESS_MODE_GRAPHICSNVML_PROCESS_MODE_MPSr  r
  r  nvmlProcessDetailList_v1r  r  r  r   r$  Unionr'  r5  r9  r=  rR  rN  rI  rX  rT  r_  r\  ra  r  rc  r  rf  r  !NVML_VGPU_PGPU_HETEROGENEOUS_MODENVML_VGPU_PGPU_HOMOGENEOUS_MODErk  r  rm  r  rp  rx  r|  r   r  r  r  r?  r  r  r  NVML_GRID_LICENSE_STATE_UNKNOWN%NVML_GRID_LICENSE_STATE_UNINITIALIZED/NVML_GRID_LICENSE_STATE_UNLICENSED_UNRESTRICTED-NVML_GRID_LICENSE_STATE_UNLICENSED_RESTRICTED"NVML_GRID_LICENSE_STATE_UNLICENSED NVML_GRID_LICENSE_STATE_LICENSEDr  r  r  r  r  rb  r  r  r  r  r  r  r  r  r  r  r  r  r  nvmlEventTypeSingleBitEccErrornvmlEventTypeDoubleBitEccErrornvmlEventTypePStatenvmlEventTypeXidCriticalErrornvmlEventTypeClocknvmlEventTypePowerSourceChangenvmlEventMigConfigChange#nvmlEventTypeSingleBitEccErrorStorm nvmlEventTypeDramRetirementEvent"nvmlEventTypeDramRetirementFailure nvmlEventTypeNonFatalPoisonErrornvmlEventTypeFatalPoisonError nvmlEventTypeGpuUnavailableErrornvmlEventTypeGpuRecoveryActionnvmlEventTypeNonenvmlEventTypeAllnvmlClocksEventReasonGpuIdle.nvmlClocksEventReasonApplicationsClocksSetting&nvmlClocksEventReasonUserDefinedClocksnvmlClocksEventReasonSwPowerCapnvmlClocksEventReasonHwSlowdownnvmlClocksEventReasonSyncBoost&nvmlClocksEventReasonSwThermalSlowdown&nvmlClocksEventReasonHwThermalSlowdown)nvmlClocksEventReasonHwPowerBrakeSlowdown(nvmlClocksEventReasonDisplayClockSettingnvmlClocksEventReasonNonenvmlClocksEventReasonAllnvmlClocksThrottleReasonGpuIdle1nvmlClocksThrottleReasonApplicationsClocksSetting)nvmlClocksThrottleReasonUserDefinedClocks"nvmlClocksThrottleReasonSwPowerCap"nvmlClocksThrottleReasonHwSlowdown!nvmlClocksThrottleReasonSyncBoost)nvmlClocksThrottleReasonSwThermalSlowdown)nvmlClocksThrottleReasonHwThermalSlowdown,nvmlClocksThrottleReasonHwPowerBrakeSlowdown+nvmlClocksThrottleReasonDisplayClockSettingnvmlClocksThrottleReasonNonenvmlClocksThrottleReasonAllr  r  r  r  r  r  "NVML_VGPU_SCHEDULER_POLICY_UNKNOWN&NVML_VGPU_SCHEDULER_POLICY_BEST_EFFORT&NVML_VGPU_SCHEDULER_POLICY_EQUAL_SHARE&NVML_VGPU_SCHEDULER_POLICY_FIXED_SHAREr0  r  NVML_VGPU_SCHEDULER_ARR_DEFAULTNVML_VGPU_SCHEDULER_ARR_DISABLENVML_VGPU_SCHEDULER_ARR_ENABLEr  r  r  r  r  r  r  r   r"  r$  r'  r2  r7  NVML_DEVICE_MIG_DISABLENVML_DEVICE_MIG_ENABLE!NVML_GPU_INSTANCE_PROFILE_1_SLICE!NVML_GPU_INSTANCE_PROFILE_2_SLICE!NVML_GPU_INSTANCE_PROFILE_3_SLICE!NVML_GPU_INSTANCE_PROFILE_4_SLICE!NVML_GPU_INSTANCE_PROFILE_7_SLICE!NVML_GPU_INSTANCE_PROFILE_8_SLICE!NVML_GPU_INSTANCE_PROFILE_6_SLICE&NVML_GPU_INSTANCE_PROFILE_1_SLICE_REV1&NVML_GPU_INSTANCE_PROFILE_2_SLICE_REV1&NVML_GPU_INSTANCE_PROFILE_1_SLICE_REV2%NVML_GPU_INSTANCE_PROFILE_1_SLICE_GFX%NVML_GPU_INSTANCE_PROFILE_2_SLICE_GFX%NVML_GPU_INSTANCE_PROFILE_4_SLICE_GFXNVML_GPU_INSTANCE_PROFILE_COUNTr>  rB  rP  rN  rS  rW  rh  %NVML_COMPUTE_INSTANCE_PROFILE_1_SLICE%NVML_COMPUTE_INSTANCE_PROFILE_2_SLICE%NVML_COMPUTE_INSTANCE_PROFILE_3_SLICE%NVML_COMPUTE_INSTANCE_PROFILE_4_SLICE%NVML_COMPUTE_INSTANCE_PROFILE_7_SLICE%NVML_COMPUTE_INSTANCE_PROFILE_8_SLICE%NVML_COMPUTE_INSTANCE_PROFILE_6_SLICE*NVML_COMPUTE_INSTANCE_PROFILE_1_SLICE_REV1#NVML_COMPUTE_INSTANCE_PROFILE_COUNT+NVML_COMPUTE_INSTANCE_ENGINE_PROFILE_SHARED*NVML_COMPUTE_INSTANCE_ENGINE_PROFILE_COUNTrY  r[  rd  rb  rf  rs  NVML_GPU_UTILIZATION_DOMAIN_GPUNVML_GPU_UTILIZATION_DOMAIN_FBNVML_GPU_UTILIZATION_DOMAIN_VIDNVML_GPU_UTILIZATION_DOMAIN_BUSrj  rp  r~  NVML_THERMAL_TARGET_NONENVML_THERMAL_TARGET_GPUNVML_THERMAL_TARGET_MEMORY NVML_THERMAL_TARGET_POWER_SUPPLYNVML_THERMAL_TARGET_BOARDNVML_THERMAL_TARGET_VCD_BOARDNVML_THERMAL_TARGET_VCD_INLETNVML_THERMAL_TARGET_VCD_OUTLETNVML_THERMAL_TARGET_ALLNVML_THERMAL_TARGET_UNKNOWNNVML_THERMAL_CONTROLLER_NONE$NVML_THERMAL_CONTROLLER_GPU_INTERNALNVML_THERMAL_CONTROLLER_ADM1032NVML_THERMAL_CONTROLLER_ADT7461NVML_THERMAL_CONTROLLER_MAX6649NVML_THERMAL_CONTROLLER_MAX1617NVML_THERMAL_CONTROLLER_LM99NVML_THERMAL_CONTROLLER_LM89NVML_THERMAL_CONTROLLER_LM64NVML_THERMAL_CONTROLLER_G781NVML_THERMAL_CONTROLLER_ADT7473!NVML_THERMAL_CONTROLLER_SBMAX6649 NVML_THERMAL_CONTROLLER_VBIOSEVTNVML_THERMAL_CONTROLLER_OS'NVML_THERMAL_CONTROLLER_NVSYSCON_CANOAS%NVML_THERMAL_CONTROLLER_NVSYSCON_E551 NVML_THERMAL_CONTROLLER_MAX6649R NVML_THERMAL_CONTROLLER_ADT7473SNVML_THERMAL_CONTROLLER_UNKNOWNru  r|  r  NVML_THERMAL_COOLER_SIGNAL_NONE!NVML_THERMAL_COOLER_SIGNAL_TOGGLE#NVML_THERMAL_COOLER_SIGNAL_VARIABLE NVML_THERMAL_COOLER_SIGNAL_COUNTr  NVML_THERMAL_COOLER_TARGET_NONENVML_THERMAL_COOLER_TARGET_GPU!NVML_THERMAL_COOLER_TARGET_MEMORY'NVML_THERMAL_COOLER_TARGET_POWER_SUPPLY&NVML_THERMAL_COOLER_TARGET_GPU_RELATEDr  r  r  r  r  r  r  r  r  r  r  r  *NVML_CC_CEC_ATTESTATION_REPORT_NOT_PRESENT&NVML_CC_CEC_ATTESTATION_REPORT_PRESENTr  r  r  r  r  r  r  r  ru  r  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r   r'  r+  r-  r1  r7  r9  r<  rB  rA  rE  rH  rG  rK  rN  rQ  rW  rU  r\  r`  rc  rh  rp  rs  ru  ry  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r%  r)  r+  r/  r2  r5  r9  r<  r?  rA  rD  rJ  rM  rQ  rT  rY  r[  r^  r`  rc  ri  rl  rn  rq  rx  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r   r#  r-  r3  r7  r;  r>  rD  rI  rL  rN  rS  rV  rZ  r]  ra  rc  rf  ri  rk  rq  rt  rw  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r#  r(  r+  r-  r1  r7  r<  r>  rB  rG  rO  rS  rV  rX  r[  r]  r_  ra  re  ri  rl  rq  rt  rw  rz  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r
  r  r  r  r  r  r  r'  nvmlClockOffset_v1r,  r1  r3  r<  rB  r2  rH  rP  rR  rT  rV  rY  r\  r_  ra  rd  rh  rj  rl  ro  rt  ry  NVML_GPM_METRIC_GRAPHICS_UTILNVML_GPM_METRIC_SM_UTILNVML_GPM_METRIC_SM_OCCUPANCYNVML_GPM_METRIC_INTEGER_UTILNVML_GPM_METRIC_ANY_TENSOR_UTIL NVML_GPM_METRIC_DFMA_TENSOR_UTIL NVML_GPM_METRIC_HMMA_TENSOR_UTIL NVML_GPM_METRIC_IMMA_TENSOR_UTILNVML_GPM_METRIC_DRAM_BW_UTILNVML_GPM_METRIC_FP64_UTILNVML_GPM_METRIC_FP32_UTILNVML_GPM_METRIC_FP16_UTILNVML_GPM_METRIC_PCIE_TX_PER_SECNVML_GPM_METRIC_PCIE_RX_PER_SECNVML_GPM_METRIC_NVDEC_0_UTILNVML_GPM_METRIC_NVDEC_1_UTILNVML_GPM_METRIC_NVDEC_2_UTILNVML_GPM_METRIC_NVDEC_3_UTILNVML_GPM_METRIC_NVDEC_4_UTILNVML_GPM_METRIC_NVDEC_5_UTILNVML_GPM_METRIC_NVDEC_6_UTILNVML_GPM_METRIC_NVDEC_7_UTILNVML_GPM_METRIC_NVJPG_0_UTILNVML_GPM_METRIC_NVJPG_1_UTILNVML_GPM_METRIC_NVJPG_2_UTILNVML_GPM_METRIC_NVJPG_3_UTILNVML_GPM_METRIC_NVJPG_4_UTILNVML_GPM_METRIC_NVJPG_5_UTILNVML_GPM_METRIC_NVJPG_6_UTILNVML_GPM_METRIC_NVJPG_7_UTILNVML_GPM_METRIC_NVOFA_0_UTILNVML_GPM_METRIC_NVOFA_1_UTIL'NVML_GPM_METRIC_NVLINK_TOTAL_RX_PER_SEC'NVML_GPM_METRIC_NVLINK_TOTAL_TX_PER_SEC$NVML_GPM_METRIC_NVLINK_L0_RX_PER_SEC$NVML_GPM_METRIC_NVLINK_L0_TX_PER_SEC$NVML_GPM_METRIC_NVLINK_L1_RX_PER_SEC$NVML_GPM_METRIC_NVLINK_L1_TX_PER_SEC$NVML_GPM_METRIC_NVLINK_L2_RX_PER_SEC$NVML_GPM_METRIC_NVLINK_L2_TX_PER_SEC$NVML_GPM_METRIC_NVLINK_L3_RX_PER_SEC$NVML_GPM_METRIC_NVLINK_L3_TX_PER_SEC$NVML_GPM_METRIC_NVLINK_L4_RX_PER_SEC$NVML_GPM_METRIC_NVLINK_L4_TX_PER_SEC$NVML_GPM_METRIC_NVLINK_L5_RX_PER_SEC$NVML_GPM_METRIC_NVLINK_L5_TX_PER_SEC$NVML_GPM_METRIC_NVLINK_L6_RX_PER_SEC$NVML_GPM_METRIC_NVLINK_L6_TX_PER_SEC$NVML_GPM_METRIC_NVLINK_L7_RX_PER_SEC$NVML_GPM_METRIC_NVLINK_L7_TX_PER_SEC$NVML_GPM_METRIC_NVLINK_L8_RX_PER_SEC$NVML_GPM_METRIC_NVLINK_L8_TX_PER_SEC$NVML_GPM_METRIC_NVLINK_L9_RX_PER_SEC$NVML_GPM_METRIC_NVLINK_L9_TX_PER_SEC%NVML_GPM_METRIC_NVLINK_L10_RX_PER_SEC%NVML_GPM_METRIC_NVLINK_L10_TX_PER_SEC%NVML_GPM_METRIC_NVLINK_L11_RX_PER_SEC%NVML_GPM_METRIC_NVLINK_L11_TX_PER_SEC%NVML_GPM_METRIC_NVLINK_L12_RX_PER_SEC%NVML_GPM_METRIC_NVLINK_L12_TX_PER_SEC%NVML_GPM_METRIC_NVLINK_L13_RX_PER_SEC%NVML_GPM_METRIC_NVLINK_L13_TX_PER_SEC%NVML_GPM_METRIC_NVLINK_L14_RX_PER_SEC%NVML_GPM_METRIC_NVLINK_L14_TX_PER_SEC%NVML_GPM_METRIC_NVLINK_L15_RX_PER_SEC%NVML_GPM_METRIC_NVLINK_L15_TX_PER_SEC%NVML_GPM_METRIC_NVLINK_L16_RX_PER_SEC%NVML_GPM_METRIC_NVLINK_L16_TX_PER_SEC%NVML_GPM_METRIC_NVLINK_L17_RX_PER_SEC%NVML_GPM_METRIC_NVLINK_L17_TX_PER_SECr  r}  r  r  r  r  NVML_GPM_METRICS_GET_VERSIONr  r  r  r  r  r  r  r  r  r  "NVML_NVLINK_POWER_STATE_HIGH_SPEEDNVML_NVLINK_POWER_STATE_LOW#NVML_NVLINK_LOW_POWER_THRESHOLD_MIN#NVML_NVLINK_LOW_POWER_THRESHOLD_MAX%NVML_NVLINK_LOW_POWER_THRESHOLD_RESET'NVML_NVLINK_LOW_POWER_THRESHOLD_DEFAULTr  r  r  r  #NVML_GPU_FABRIC_STATE_NOT_SUPPORTED!NVML_GPU_FABRIC_STATE_NOT_STARTED!NVML_GPU_FABRIC_STATE_IN_PROGRESSNVML_GPU_FABRIC_STATE_COMPLETEDr  5NVML_GPU_FABRIC_HEALTH_MASK_DEGRADED_BW_NOT_SUPPORTED,NVML_GPU_FABRIC_HEALTH_MASK_DEGRADED_BW_TRUE-NVML_GPU_FABRIC_HEALTH_MASK_DEGRADED_BW_FALSE-NVML_GPU_FABRIC_HEALTH_MASK_SHIFT_DEGRADED_BW-NVML_GPU_FABRIC_HEALTH_MASK_WIDTH_DEGRADED_BW8NVML_GPU_FABRIC_HEALTH_MASK_ROUTE_RECOVERY_NOT_SUPPORTED/NVML_GPU_FABRIC_HEALTH_MASK_ROUTE_RECOVERY_TRUE0NVML_GPU_FABRIC_HEALTH_MASK_ROUTE_RECOVERY_FALSE0NVML_GPU_FABRIC_HEALTH_MASK_SHIFT_ROUTE_RECOVERY0NVML_GPU_FABRIC_HEALTH_MASK_WIDTH_ROUTE_RECOVERY9NVML_GPU_FABRIC_HEALTH_MASK_ROUTE_UNHEALTHY_NOT_SUPPORTED0NVML_GPU_FABRIC_HEALTH_MASK_ROUTE_UNHEALTHY_TRUE1NVML_GPU_FABRIC_HEALTH_MASK_ROUTE_UNHEALTHY_FALSE1NVML_GPU_FABRIC_HEALTH_MASK_SHIFT_ROUTE_UNHEALTHY1NVML_GPU_FABRIC_HEALTH_MASK_WIDTH_ROUTE_UNHEALTHYANVML_GPU_FABRIC_HEALTH_MASK_ACCESS_TIMEOUT_RECOVERY_NOT_SUPPORTED8NVML_GPU_FABRIC_HEALTH_MASK_ACCESS_TIMEOUT_RECOVERY_TRUE9NVML_GPU_FABRIC_HEALTH_MASK_ACCESS_TIMEOUT_RECOVERY_FALSE9NVML_GPU_FABRIC_HEALTH_MASK_SHIFT_ACCESS_TIMEOUT_RECOVERY9NVML_GPU_FABRIC_HEALTH_MASK_WIDTH_ACCESS_TIMEOUT_RECOVERYr  r  r  r  NVML_GPU_NVLINK_BW_MODE_FULLNVML_GPU_NVLINK_BW_MODE_OFFNVML_GPU_NVLINK_BW_MODE_MINNVML_GPU_NVLINK_BW_MODE_HALF NVML_GPU_NVLINK_BW_MODE_3QUARTERNVML_GPU_NVLINK_BW_MODE_COUNTr  r  r  NVML_POWER_SCOPE_GPUNVML_POWER_SCOPE_MODULENVML_POWER_SCOPE_MEMORYr  nvmlPowerValue_v2r  r  r  r  NVML_DEV_CAP_EGMr  r  r  r  r  r  r  r	  NVML_POWER_PROFILE_MAX_PNVML_POWER_PROFILE_MAX_QNVML_POWER_PROFILE_COMPUTENVML_POWER_PROFILE_MEMORY_BOUNDNVML_POWER_PROFILE_NETWORKNVML_POWER_PROFILE_BALANCED NVML_POWER_PROFILE_LLM_INFERENCENVML_POWER_PROFILE_LLM_TRAININGNVML_POWER_PROFILE_RBMNVML_POWER_PROFILE_DCPCIENVML_POWER_PROFILE_HMMA_SPARSENVML_POWER_PROFILE_HMMA_DENSE NVML_POWER_PROFILE_SYNC_BALANCEDNVML_POWER_PROFILE_HPCNVML_POWER_PROFILE_MIGNVML_POWER_PROFILE_MAXr  r  r	  r  r
	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r#	  r)	  r&	  r+	  r.	  r1	  r3	  %NVML_POWER_SMOOTHING_MAX_NUM_PROFILES+NVML_POWER_SMOOTHING_ADMIN_OVERRIDE_NOT_SET4NVML_POWER_SMOOTHING_PROFILE_PARAM_PERCENT_TMP_FLOOR/NVML_POWER_SMOOTHING_PROFILE_PARAM_RAMP_UP_RATE1NVML_POWER_SMOOTHING_PROFILE_PARAM_RAMP_DOWN_RATE7NVML_POWER_SMOOTHING_PROFILE_PARAM_RAMP_DOWN_HYSTERESISr8	  r6	  r=	  r:	  r?	  rB	  rD	  r  r  r  <module>r     sL  J     $ $ $ $ $ $       



 				          !" !" !" !"!"!" !" !" !" !" !# !# !? !# !# !# !# !# !# % +, #+, #+, "+, "+, '+, (+, '+, #+,  "     %& %& !%& %& "%&   !  ! %& " %& "&' ##$       . "   !  !  !  !  #)  !" !" !" !" !"    !  !  !  !  !  !  ! (. %+. !+. "+. #+. #+/ $+/ #+/ &+/ (+/ !%+ "$% $%  $% $% !$%   "& "& "& "&           %&  %& "%&     #$ #$ #$ #$  #$                   '('( '( '( '( '( '( '( '( '( ') ') ') ') ') ') ') ') ') "') ') ') ') !') !') ') $') ') ') ') '*   +, (+,     "#"# "## <= 9<= /<=   <= *<= +<=          ! %& "#$   !"                 #$    $& !%' "          !               "#                        &       
      '( $(L %$% !,- *$% "   "         !  &        ) ) ) !' .8 +-7 * ", ", ",   %/  %/ !%/ !%/ !%/ "%/ "%/ "% $(  $(  $( $( $( $( $( $%    !' '( '( "'( $'( "+, (       02 '/1 /1 /1 &/1 $/1 /1 /1 /1 #/1 '/1 %/1 "/1 %/2 /1 /0 #/5vf~~/C #/2 (/3 +/3  '9 !&8 %0[__ " &r

 
 $% #$  $% #$ #$ #$ #$ #$ #$ #% #% #% #% #% #% #% #% #% #% #% #% #% #% #% #% #% #% #%  $& #% #%  02 */1 */1 */1 */1 */1 *02 - 02 */1 */1 */1 */1 */1 *02 - 02 (/1 (/1 (/1 (/1 (/1 (/1 + 02 */1 */1 */1 */1 */1 *02 - )+ "(* "(* "(* "(* "(* "(* % )+ "(* "(* "(* "(* "(* "(* % -/ ,. ,. ",. #,. ',. #,. (,. )   (* $ (*  ')  ')  ')  ')  ')  ') $ !#  #% "$  #% +- ( 02 */1 */1 */1 */2 +/2 + 03 */2 */2 */2 */2 +/2 + 03 (/2 (/2 (/2 (/2 )/2 ) 03 */2 */2 */2 */2 +/2 + ), "(+ "(+ "(+ "(+ #(+ # ), "(+ "(+ "(+ "(+ #(+ # (+  '*  '*  '*  '* !'* ! ), %(+ %(+ $(+ $ #& "% "% "%  '* # -0 ) 14 *03 *03 *03 *03 *03 *03 *03 *03 *03 *03 +03 +03 -03 "03 $03 03 03 03 03 "03 &03 '03 03 03 03 )03 $03 %03 03  03 03 &03 "03 &03 !03 !03 &03 03 03 03 03 03 03 03 !03 '03 '03 &03 &03 03 := 5:= *;> %;> #;> $;> ";> %;> 0;> .;> #;> *;> +;> 4;> &;> 8;> 4;> -;> &;> &;>  ;> );> &;> &;> #;> *;> ,;> 0;> ;> ";> &;> %;> #;> &;> &;> &;> &;> &;> &;> &;> &;> &;> &;> ';> ';> ';> ';> ';> 'BE BE BE +BE &BE 'BE 3BE 3BE =BE -BE /BE *BE ,BE 0BE +BE 6BE 1BE 3BE 7 !     -. *-. ) ,- !+, (+, !+, &+, & in          & ./ &./ #./ )./ +./ %./ &!( ,. &,.  ,. ,. ',. " ./ ./ ./ "./ ./ ./ $ 23 -23  23 $ 9: *9: 59: 29: *9: +9: %9: %9: -9:  9: +9; " 45 145 /# *- *- *- $*-  *- (. %.1 ".1 ).1 *.1 !.8 # "# "# #)  *+ ')* &" %& "!" "   "# $% !&' #'( $!' #$  "#   )* &)* &!" "# $ "# !" 39 057 257 2 &* "	 	 	 	 	y 	 	 	+) +) +) +) +)	 +) +) +)Z5 5 5
> > >2        !%   0' ' ' ' ' ' ' '  	 	 		 	 	 	 	) 	 	 	w*++2B 2B 2B 2B 2B) 2B 2B 2Bh    *       0   
      *       )       -       /   	 	 	 	 	I 	 	 	.//    -   .      *   .    '   .    (;    &     !4       %8   " " " " "( " " "" " " " "+ " " " " " " " ", " " "    I   
        "& & & & &0 & & & 0 ,         y   , , , , ,#6 , , , 9 $     0       "5       0   # # # # #- # # #    +   	 	 	 	 	E 	 	 	    (       /   	 	 	 	 	, 	 	 	 (* $ ) g g g g g(; g g g # Y Y Y Y Y!4 Y Y Y # Y Y Y Y Y!4 Y Y Y    ':    %     !4         #6    ! &' !&'     #6    !     "5          ,?   
 
 
 
 
-@ 
 
 
    .A    #- 
 
 
 
 
+> 
 
 
    ,?       .A    #-      3      	 	 	 	 	 3 	 	 	 34 23 %23 /23 -23 "23      1   
 
 
 
 
0 
 
 
    ':   
 
 
 
 
(; 
 
 
    *=    ) 	 	 	 	 	 3 	 	 	    ':       (;       ':       (;       ':       (;       $7       %8       #6    % 	 	 	 	 	i 	 	 	7233 &8 &8 &8 &8 &8 &8 &8 &8 #&8  &8 "&8  &8 &8  &8 &8 (9*H)I*H)I +>)> +=	)=
 +I)I +H)H +C)C +N)N +K	)K +M
)M +K)K +H)H +K)K +I)I & -? 1C .1_ &,> ,> ,> ,> &,> &,> ),> (,> 2K2N3O2`3a 3R3R 3R	3R
 3Q3Q 3Y3Y 3Y3Y 3\3\ 3[	3[  0B 4F 14e )/A "/A "/A !/A )/A )/A ,/A +/A 2N2Q3R2c3d 3U3U 3U	3U
 3T3T 3\3\ 3\3\ 3_3_ 3^	3^ $ $ $ $ $+ $ $ $	 	 	 	 	1 	 	 	    )   
    .   	 	 	 	 	2 	 	 	    I    +, "*+ &*+ &*+ & /0 *.1 !$% $% $%     #6       /   
    %       $7       2       $7       &9       2   
    U       $7   
 
 
 
 
(; 
 
 
    y       ,       ), !), !), !), !), !), !), !), &), &), &), %), %), %),     9   
    Y    !+ g g g g g(; g g g&    i   	 	 	 	 	 	 	 	g899 -0 %-0 %-0 %-0 %-0 %-0 %-0 %-0 *-0 #.1 +-0 *    y   

 
 
 
 
 
 
 
 %/ !o o o o o,? o o o"    )     %& %& %& %& * * * * *9 * * *
c c c c cI c c c $%  $% $% $% $%  $% $% $& $& $& $& *+ *+ $*+ *+ *+ *+ *+ *+ *+ *+ *, *, !*,  *, *, '*, %*,  *,  *, # # # # #y # # #Y Y Y Y Y Y Y Y  )* )* !)* #)*   ,2 ,2 ,2 !,2 ',JMn,n  rY  -Y &    ,     G G G	 	 	 	 	Y 	 	 	!'"@AA 
 
 
 
 
Y 
 
 
    y    +1 *0 $*. *0 #*0 '-. *-. &    Y    $-  m m m m m9 m m m    I   
    Y   
    	       i       Y    -6 )    Y    -6 )  6
 
 
  "   "  "  "D  "                        .                                        !4    #       )<    "+ ! ! !        . . .       ,2688 	 	 	 	                              3 3 3          + + +              8  6        .               28FFHH M M M M DJ688 C C C C      0        7I > > > >      . . .        0 0 0        5 5 54 4 44 4 4
 
 
 
    * * *5 5 5+ + ++ + +" " "    	 	 	  2 2 22 2 22 2 22 2 2  5 5 5/ / // / /     >     D ; ; ;  <     D < < < > > >     D     D! ! !F9 9 9                         4F3E3G3G 9 9 9 9                4 4 4  $ $ $                            / / /! ! !4 4 4.k k k2     # # #    J J J(    , , , , , ,"  2 2 2                                  ' ' '+ + +( ( (  # # #   0   *        4  4           5 5 5    ( ( (       " " "  ! ! !( ( (    4 / / /       " " "" " "  ; ; ;      $ $ $. . .              4  <  , , ,: : :< < < < 4:688 Q Q Q Q$ $ $  2  :M M M  4    4M M M  4    4  ,  4    # # # 6 6 6          E E E E  $ $ $        " " "$ $ $6 6 6    (K $                    1] -                : : :  ! ! !% % %        . . .K K K                + + +   B_A^A`A` A A A A   IcHbHdHd H H H H MSFHHbhbhbjbj S S S S    -       
  
  &     9>5577 O O O O     9>5577 O O O O                            /0 ./ ./ ./ ./ ./  ./  ./  .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 '.0 '.0 $.0 $.0 $.0 $.0 $.0 $.0 $.0 $.0 $.0 $.0 $.0 $.0 $.0 $.0 $.0 $.0 $.0 $.0 $.0 $.0 %.0 %.0 %.0 %.0 %.0 %.0 %.0 %.0 %.0 %.0 %.0 %.0 %.0 %.0 %.0 %.0     *   	 	 	 	 	y 	 	 	G455     Y       +       /     !     ,                      ), "(+ *- #*0 #*4 %*O '    y   
     &' #&' !&' !&'     /    9: 589 ,89 -89 -8< -=> 8=> /=> 0=> 0=A 0=> 9=> 0=> 1=> 1=A 1DE ADE 8DE 9DE 9DH 9! S S S S S0 S S S     %( $' $' $' $'  $'          " " " " "/ " " "  Qb    _ _ _ _ _$7 _ _ _( &     % _ _ _ _ _$7 _ _ _  S S S S S1 S S S         )   
 '*  &' &' &' &' &' &' &'  &' &' &' &( &( &(  &( &( &( "+ 	k 	k 	k 	k 	k*= 	k 	k 	k +4 '{ { { { {2E { { { .7 *	A 	A 	A 	A 	A5H 	A 	A 	A 09 ,E E E E E7J E E E               ' \ \ \ \ \!4 \ \ \I I I6 6 66 6 6   ;< %:D +:; 4:; /:; 1:; 7$ a a a a a%8 a a a ' 	e 	e 	e 	e 	e': 	e 	e 	e  
  
    r  