
    `iM,                    L   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&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Z e	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	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Zld/Zmd0Znd/Zod/ZpdZqd0Zrd&Zsd/Ztd/ZudZvdZwdZxdZydZzdZ{ e|e	          d1z   Z}d1Z~dZd2Zd3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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ZsdZtd ZudZvdZwdZxdZydZzdZ{dZ|dZ}d	Z~d
ZdZdZdZdZdZd1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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d-Zd.Zd/Zd Zd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ǐd0ZȐd1Zɐd2Zʐd3Ze	Zd ZdZdZdZdZd	Ze	Zd ZdZdZe	Zd Zd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d4Ze	Zd ZdZe	Zd ZdZe	Zd ZdZe	Zd ZdZdZ dZdZe	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dTZdZ G d5 d6e          Z G d7 d8e          Zd9 Zd: Z e             d; Z e            Zd< Z G d= d>e          Zd? Zd@ Z G dA dBe           Z! e"e!          Z# G dC dDe           Z$ G dE dFe$          Z% G dG dHe$          Z&dIZ' G dJ dKe$          Z( G dL dMe$          Z) G dN dOe$          Z* G dP dQe$          Z+ G dR dSe           Z, e"e,          Z- G dT dUe$          Z.dVZ/ G dW dXe$          Z0 G dY dZe$          Z1 G d[ d\e$          Z2d]Z3 G d^ d_e$          Z4 G d` dae$          Z5 G db dce$          Z6 G dd dee$          Z7dfZ8 G dg dhe$          Z9 G di dje           Z:dZ; G dk dle           Z< G dm dne$          Z=e=Z>e>Z?e	Z@d ZAdZBdZC G do dpe           ZD G dq dre$          ZEeEZFdsZG G dt due$          ZH G dv dwe$          ZI G dx dye$          ZJ G dz d{e$          ZK G d| d}e$          ZL G d~ deM          ZN G d de$          ZO G d de$          ZP G d de$          ZQdZRdZS G d de$          ZTdZU G d de$          ZVdZW G d de$          ZX G d de$          ZYdIZZ G d de$          Z[dIZ\ G d de$          Z]ds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ds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ds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dIZd>ZdZd ZdZdZ G dɄ dʐeM          ZdːZ G d̄ d͐e$          ZdZ G d΄ dϐe$          ZdZ G dЄ dѐe$          ZdIZ G d҄ dӐe$          ZdZdZdZdZd	ZduZ G dԄ dՐe$          Z G dք dאe$          ZdؐZ G dل dڐe$          ZdېZ G d܄ dݐe$          Zdބ Zd ZdZdZdIZ G d߄ de$          Zd ZdZdZdvZdwZdxZdِZdZdZdZdZdZdZdZdZ G d de$          Z G d de$          Z G d de$          Z G d de$          Zd ZdIZ G d de$          Z G d de           Z e"e          ZdZdZdZdZdZdZd1ZŐdZƐdZd2ZȐdZɐdZʐdZːdZd Z͐e͐ez  ez  ez  ez  ez  ez  ez  ez  ez  ez  ez  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  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 e"e          ZdZdZdZdZ G d  de$          ZdZ G d de$          Zds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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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 G d de$          Z G d  d!eM          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-eM          Z G d. d/e$          Z G d0 d1e$          Z G d2 d3e$          ZdZ G d4 d5e$          ZdZ G d6 d7e$          ZdZ G d8 d9e$          ZdsZ G d: d;e$          Z dsZ! G d< d=e$          Z"d>Z# G d? d@e$          Z$dZ% G dA dBe           Z& G dC dDe$          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; G dE dFe           Z< G dG dHe           Z=dIZ> G dJ dKe$          Z? G dL dMe           Z@ G dN dOe           ZA e"eA          ZBd ZCdZDdZEdZFdZGd	ZHd
ZIdZJdZKd ZLdZM G dP dQe           ZN G dR dSe           ZOdTZP G dU dVe$          ZQ G dW dXe           ZRdZSd ZTdZUdZVdZW G dY dZe           ZX G d[ d\e           ZYdZZd Z[dZ\dZ]dZ^dZ_dZ`dZadZbdZcd5Zdd ZedZfdZgdZhdZid	Zjd
ZkdZldZmdZndZodZpdZqdZrdZsdZtdZudZvd5Zw G d] d^e           Zx G d_ d`e           Zye	Zzd Z{dZ|dZ}dZ~e	ZdZdZdZdZeez  ez  Z G da dbe$          ZdZdc Z G dd dee           Z e"e          Z G df dge           Z G dh die           ZdZdjZdZdZdZd ZdZ G dk dle           ZdmZ G dn doe           Z G dp dqe           Z G dr dse           Z G dt due           Z G dv dwe           Z G dx dye           ZdZ G dz 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 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ed             Z G d de$          ZdZed             Z G d de$          ZdZed             Zd Zd ZÐd ZĐd ZŐd ZƐed             Zǐed             Z e	            f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Ԑ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 G dǄ dȐe$          ZdZdɄ Zdʄ Zd˄ Zd̄ Z e	             e	            fd̈́Z e	            fd΄Zdτ Z G dЄ dѐe$          ZdZd҄ Zef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 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 Z0 e<            fdZ1d Z2d Z3d Z4d Z5d Z6d Z7d Z8d Z9d Z:d Z;d Z<d Z=d Z>d Z?d Z@d  ZAd! ZBd" ZCd# ZDd$ ZEd% ZFd& ZGd' ZHd( ZId) ZJd* ZKd+ ZLd, ZMd- ZNd. ZOd/ ZPd0 ZQd1 ZRd2 ZSd3 ZTd4 ZUd5 ZVd6 ZWd7 ZXd8 ZYd9 ZZd: Z[d; Z\d< Z]d= Z^d> Z_d? Z`d@ ZadA ZbdB ZcdC ZddD ZedE ZfdF ZgdG ZhdH ZidI ZjdJ ZkdK ZldL ZmdM ZndN ZoddOZpd0dPZqdQ ZrdR ZsdS ZtdT ZudU ZvdV ZwedW             ZxedX             ZydY ZzdZ Z{d[ Z|d\ Z}ed]             Z~d^ Zd_ Zd` Zda Zdb Zdc Zdd Zde Zedf             Zedg             Zedh             Zedi             Zdj Zdk Zdl Zdm Zdn Zdo Zdp Zdq Zdr Zds Zdt Zedu             Zdv Zdw Zdx Zdy Zdz 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 Zd 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Ɛd1dZǐd ZȐeǐZɐeȐZʐd Zːd Z̐d Z͐d Zΐd Zϐd ZАd Zѐd ZҐd1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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 eY            fd̈́Zd΄ Z ey            fdτZ e	             e	            fdЄZe	Zd ZdZdZdZ G dф dҐe$          Zdӄ ZdԄ Z G dՄ d֐e$          ZdsZdׄ Zd؄ Z dل Zdڄ Zdۄ Z e             e            fd܄Zd݄ Z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d	Zd
ZdZdZdZdZdZdZ dZ!dZ"d&Z#d6Z$dZ%d7Z&d8Z'd9Z(d:Z)d;Z*d(Z+d>Z,d?Z-d@Z.dAZ/dBZ0dCZ1dDZ2d)Z3dGZ4dPZ5dQZ6dRZ7dSZ8dZ9dTZ:dUZ;dVZ<dWZ=dXZ>dYZ?dZZ@d[ZAd\ZBd]ZCd^ZDd_ZEd`ZFdaZGdbZHd/ZIdcZJddZKdeZLdfZMdgZNdhZOdiZPdjZQdkZRdlZSdmZTdnZUdoZVdpZWdqZXd0ZYdrZZduZ[dvZ\dwZ]dxZ^dyZ_dz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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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ZdZ G d dFe$          Z% G d de           Z e"eʦ          Z G d d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/ d0e$          Zd ZdZdZd Zd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eZdZdZd ZdZ	dZ
dZd1Z G d2 d3e$          ZeZ G d4 d5e$          Zd6Zd7 Zd8 Zd ZdZdZdZdZd	Zd9 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"dAZ#dB Z$dZ%dIZ& G dC dDe$          Z'dE Z( G dF dGe$          Z) G dH dIe$          Z*dJZ+dKZ,dL Z-dZ. G dM dNe$          Z/ G dO dPe$          Z0dZ1d Z2dZ3dZ4dZ5dZ6d	Z7d
Z8dZ9dZ:dZ;dZ<dZ=dZ>dZ?dZ@dZAdJZB G dQ dRe$          ZCdSZD G dT dUe$          ZEdVZF G dW dXe$          ZGdYZH G dZ d[e$          ZId ZJdZKdZLdZMdYZN G d\ d]e$          ZOd^ ZPd_ ZQd` ZRda ZSdb ZTdc ZUdd ZVde ZWdIZX G df dge$          ZYdh ZZdi Z[dj Z\dk Z]dZ^d	Z_d+Z`d ZadZbdZcdZddZed	Zfd
ZgdZhdIZi G dl dme$          ZjdsZk G dn doe$          Zldp Zmdq Zndr Zo G ds dte$          Zp G du dve$          ZqdZrdw Zsdx Ztdy Zudz Zved{             Zwd| Zxd} Zyd ZzdZ{dZ|dZ}dZ~dZdZdZdZd~ZdZ G d de$          Zd Zd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  i  i  i  i  i  i  i  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__     Z/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/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  nvmlExceptionClassrC    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 )	al  
    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 it's 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_rF   _c                       fd}|S )Nc                 >    t                               |           }|S r(  )r  r  )r  argsr  vals      r  newz9_extractNVMLErrorsAsClasses.<locals>.gen_new.<locals>.new(  s    ''S11
r  r  )rQ  rR  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_valrS  new_error_classs          r  _extractNVMLErrorsAsClassesrc    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  _nvmlCheckReturnrg  2  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,  rZ  releaseAttributeErrorr8  )names    r  _nvmlGetFunctionPointerrp  9  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(  )r\  )r%  
dictionaryrI  s      r  __init__znvmlFriendlyObject.__init__R  s4     	, 	,AD!Z]++++	, 	,r  c                 4    | j                                         S r(  )__dict__r&  r$  s    r  r&  znvmlFriendlyObject.__str__U  s    }$$&&&r  N)r  r  r  ru  r&  r  r  r  rr  rr  Q  s2        , , ,' ' ' ' 'r  rr  c                     i }| j         D ]H}|d         }t          | |          }t          |t                    r|                                n|||<   It          |          }|S Nr   )_fields_rZ  
isinstancebytesdecoderr  )structdrI  keyr  r  s         r  nvmlStructToFriendlyObjectr  X  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	  )rz  rw  rT  version_infor\  encode)r  modelrI  r  r  s        r  nvmlFriendlyObjectToStructr  c  sm    ^ ' 'dS!t##E3////E3&&&&Lr  c                       e Zd ZdS )struct_c_nvmlUnit_tNr  r  r  r  r  r  o  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 fomratting 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, ))rz  rZ  _fmt_append	__class__r  join)r%  resultrI  r  r  fmts         r  r&  z_PrintableStructure.__str__  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__r{  r|  r"  r}  )r%  ro  resr  s      r  r  z$_PrintableStructure.__getattribute__  s_    '..??EE
 c5!! 	 #s## 
::<<
r  c                     t          |t                    r|                                }t          t          |                               ||           d S r(  )r{  r"  r  r  r  __setattr__)r%  ro  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  s  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_tro  r-   idserialfirmwareVersionNr  r  r  c_charrz  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_uintrz  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_trz  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  rz  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_trz  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  rz  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_SIZErz  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  rz  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  rz  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_SIZErz  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_SIZErz  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_trz  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_ulonglongrz  r  r  r  r  r  r  1  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  rz  r  r  r  r  r  r  9  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  E  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  M  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_DOMAINSrz  r  r  r  r   r   T  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  e  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  rz  r  r  r  r  r  w  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  rz  r  r  r  r  r  r    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_tr[  	fwVersionN)r  r  r  _nvmlBridgeChipType_tr  rz  r  r  r  r  r    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  rz  r  r  r  r  r    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  rz  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  rz  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  rz  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_ushortrz  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-  rz  r  r  r  r;  r;    s%        	k"	&HHHr  r;  c                       e Zd ZdefdefgZdS )c_nvmlViolationTime_treferenceTimeviolationTimeNr$  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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-  rz  r  r  r  rC  rC    sN        	H	H	g	 	&'	}%	- HHHr  rC  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  rO  ru  nvmlNvlinkSupportedBwModes_v1r%  r  s    r  ru  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_MODESrz  ru  r  r  s   @r  rO  rO    sf        	F	GBBC	!Hg g g g g g g g gr  rO  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 rS  )r  rZ  ru  nvmlNvlinkGetBwMode_v1rU  s    r  ru  z#c_nvmlNvlinkGetBwMode_v1_t.__init__  ,    ($//88AW8XXXXXr  r  r  r  r  rW  rz  ru  r  r  s   @r  rZ  rZ    s`        	F	F	7HY Y Y Y Y Y Y Y Yr  rZ  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  bSetBestr\  c                 d    t          t          |                               t                     d S rS  )r  rb  ru  nvmlNvlinkSetBwMode_v1rU  s    r  ru  z#c_nvmlNvlinkSetBwMode_v1_t.__init__  r_  r  r`  r  s   @r  rb  rb    s`        	F	V	7HY Y Y Y Y Y Y Y Yr  rb  c                       e Zd ZdefdefgZdS ) c_nvmlVgpuHeterogeneousMode_v1_tr  r  Nr  r  r  r  rg  rg    s%        	F	HHHr  rg  c                       e Zd ZdefdefgZdS )c_nvmlVgpuPlacementId_v1_tr  placementIdNr  r  r  r  ri  ri    s%        	F	HHHr  ri  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  rz  r  r  r  rl  rl    s=        	F	&	&!	)	HHHr  rl  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  rm  r  rn  r  Nro  r  r  r  rq  rq    sE        	F	&!	&	)	HHHr  rq  i   c                       e Zd ZdefdefgZdS )c_nvmlVgpuTypeBar1Info_v1_tr  bar1SizeNr  r  r  r  rs  rs    s%        	F	[!HHHr  rs  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vgpuInstancer<  smUtilmemUtilencUtildecUtilN)r  r  r  _nvmlVgpuInstance_tr  r-  rz  r  r  r  rv  rv  $  sF        	,-	k"	=!	M"	M"	M"HHHr  rv  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_tr<  rw  rx  ry  rz  r{  jpgUtilofaUtilN)r  r  r  r  r|  r-  rz  r  r  r  r~  r~  .  sV        	k"	,-	=!	M"	M"	M"	M"	M"	HHHr  r~  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  rL  r  r  r~  rz  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_trw  r  processNamer<  rx  ry  rz  r{  N)	r  r  r  r|  r  r  NVML_VGPU_NAME_BUFFER_SIZEr  rz  r  r  r  r  r  E  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  r<  rw  r  rx  ry  rz  r{  r  r  N)	r  r  r  r  r  r  r|  r  rz  r  r  r  r  r  Q  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  rz  r  r  r  r  r  _  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  i  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  rJ  c_uint16rW  rz  r  r  r  r  r  q  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  rW  r  r  rz  r  r  r  r  r    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  rw  	codecTypehResolutionvResolution
averageFpsencodeLatencyNr  r  r  r  r|  rz  r  r  r  r  r    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  r<  rx  ry  rz  r{  Nr  r  r  r  r  r    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_tr<  r  rx  ry  rz  r{  r  r  Nr  r  r  r  r  rz  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  rz  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  rz  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  r8  r  r  #NVML_GRID_LICENSE_FEATURE_MAX_COUNTrz  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  rz  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  r8  r  r  r  rz  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  r8  r  r  r  rz  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  r8  r  r  r  rz  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  r8  rz  r  r  r  r  r    s%        	F	e$HHHr  r  c                   *    e Zd Zdeez  fdeez  fgZdS )c_nvmlUUIDValue_tr"  r|  N)r  r  r  r  NVML_DEVICE_UUID_ASCII_LENc_ubyteNVML_DEVICE_UUID_BINARY_LENrz  r  r  r  r  r    s1        	&556	'778HHHr  r  i4  c                   4     e Zd ZdefdefdefgZ fdZ xZS )c_nvmlUUID_tr  r[  r  c                 d    t          t          |                               t                     d S rS  )r  r  ru  nvmlUUID_v1rU  s    r  ru  zc_nvmlUUID_t.__init__  s*    lD!!**;*?????r  )r  r  r  r  r  rz  ru  r  r  s   @r  r  r    sa        	F		#$H@ @ @ @ @ @ @ @ @r  r  c                   .     e Zd ZdefdefgZ fdZ xZS )c_nvmlPdi_tr  r  c                 d    t          t          |                               t                     d S rS  )r  r  ru  
nvmlPdi_v1rU  s    r  ru  zc_nvmlPdi_t.__init__&  s*    k4  ))*)=====r  r  r  r  r  r  rz  ru  r  r  s   @r  r  r     sO        	F	+H
> > > > > > > > >r  r  c                   4     e Zd ZdefdefdefgZ fdZ xZS )c_nvmlRepairStatus_tr  bChannelRepairPendingbTpcRepairPendingc                 d    t          t          |                               t                     d S rS  )r  r  ru  nvmlRepairStatus_v1rU  s    r  ru  zc_nvmlRepairStatus_t.__init__1  s,    "D))22;N2OOOOOr  r  r  r  r  rz  ru  r  r  s   @r  r  r  *  s`        	F	 &)	f%HP P P P P P P P Pr  r  c                   .     e Zd ZdefdefgZ fdZ xZS )c_nvmlNvLinkInfo_v1_tr  isNvleEnabledc                 d    t          t          |                               t                     d S rS  )r  r  ru  nvmlNvLinkInfo_v1rU  s    r  ru  zc_nvmlNvLinkInfo_v1_t.__init__;  ,    #T**33<M3NNNNNr  r  r  s   @r  r  r  5  sX        	F	&!H
O O O O O O O O Or  r  c                   *    e Zd ZdefdefdefdefgZdS )c_nvmlNvlinkFirmwareVersion_t	ucodeTypemajorminorsubMinorN)r  r  r  rW  r  rz  r  r  r  r  r  E  s5        	g	&	&	V	HHHr  r  c                   $    e Zd Zdeez  fdefgZdS )c_nvmlNvlinkFirmwareInfo_tr  numValidEntriesN)r  r  r  r  #NVML_NVLINK_FIRMWARE_VERSION_LENGTHr  rz  r  r  r  r  r  M  s,        	9<__`	F#HHHr  r  iL c                   4     e Zd ZdefdefdefgZ fdZ xZS )c_nvmlNvLinkInfo_v2_tr  r  firmwareInfoc                 d    t          t          |                               t                     d S rS  )r  r  ru  nvmlNvLinkInfo_v2rU  s    r  ru  zc_nvmlNvLinkInfo_v2_t.__init__[  r  r  )r  r  r  r  r  rz  ru  r  r  s   @r  r  r  T  sa        	F	&!	34HO O O O O O O O Or  r  i  c                   <     e Zd Zdefdefdeez  fgZd fd	Z xZS )c_nvmlPRMTLV_v1_tdataSizer  datar   c                 \    t          t          |                               |d           d S )Nr   )r  r  )r  r  ru  )r%  r  r  s     r  ru  zc_nvmlPRMTLV_v1_t.__init__f  s-    &&//a/HHHHHr  r+   )	r  r  r  rJ  r  NVML_PRM_DATA_MAX_SIZErz  ru  r  r  s   @r  r  r  `  sl        	X	8	112H
I I I I I I I I I Ir  r  c                 t    t          d          } || t          |                    }t          |           d S )NnvmlDeviceReadWritePRM_v1rp  byrefrg  handlec_infofnrf  s       r  r
  r
  i  s;    	 !<	=	=B
"VU6]]
#
#CSr  c                   .     e Zd ZdefdefgZ fdZ xZS )c_nvmlDeviceAddressingMode_tr  r  c                 d    t          t          |                               t                     d S rS  )r  r  ru  nvmlDeviceAddressingMode_v1rU  s    r  ru  z%c_nvmlDeviceAddressingMode_t.__init__{  s,    *D11::C^:_____r  r  r  s   @r  r  r  u  sX        	F	&H
` ` ` ` ` ` ` ` `r  r  i-  i.  i/  i0  i1  i2  i3  i  c                   *     e Zd ZdefgZd fd	Z xZS )c_nvmlPRMCounterInput_v1_t	localPortr   c                 Z    t          t          |                               |           d S )N)r  )r  r  ru  )r%  portr  s     r  ru  z#c_nvmlPRMCounterInput_v1_t.__init__  s+    ($//8848HHHHHr  r+   )r  r  r  rJ  rz  ru  r  r  s   @r  r  r    sV        	hHI I I I I I I I I Ir  r  c                   4     e Zd ZdefdefdefgZ fdZ xZS )c_nvmlPRMCounterValue_v1_tr  
outputTypeoutputValuec                 n    t          t          |                               t          j                   d S )N)r  )r  r  ru  pynvmlre  rU  s    r  ru  z#c_nvmlPRMCounterValue_v1_t.__init__  s.    ($//88@S8TTTTTr  )	r  r  r  rM  rL  r-  rz  ru  r  r  s   @r  r  r    sa        	=!	'(	&H
U U U U U U U U Ur  r  c                   :     e Zd ZdefdefdefgZedf fd	Z xZ	S )c_nvmlPRMCounter_v1_t	counterId
inputValuer  Nc                 \    t          t          |                               ||           d S )N)r"  r#  )r  r!  ru  )r%  ctrIdinDatar  s      r  ru  zc_nvmlPRMCounter_v1_t.__init__  s.    #T**33ePV3WWWWWr  )
r  r  r  rJ  r  r  rz  NVML_PRM_COUNTER_ID_NONEru  r  r  s   @r  r!  r!    so        	h	12	23H
 6d X X X X X X X X X Xr  r!  c                   B     e Zd Zdefd ee          fgZd fd	Z xZS )c_nvmlPRMCounterList_v1_tnumCounterscountersNc                 \    t          t          |                               ||           d S )N)r*  r+  )r  r)  ru  )r%  numctrsr  s      r  ru  z"c_nvmlPRMCounterList_v1_t.__init__  s.    '..77CRV7WWWWWr  r(  )	r  r  r  rJ  r  r!  rz  ru  r  r  s   @r  r)  r)    si        	!	WW2334HX X X X X X X X X Xr  r)  c                 t    t          d          } || t          |                    }t          |           d S )NnvmlDeviceReadPRMCounters_v1r  r  s       r  r0  r0    s;    	 !?	@	@B
"VU6]]
#
#CSr  c                   .     e Zd ZdefdefgZ fdZ xZS )c_nvmlUnrepairableMemory_v1_tr  unrepairableMemoryc                 d    t          t          |                               t                     d S rS  )r  r2  ru  nvmlUnrepairableMemory_v1rU  s    r  ru  z&c_nvmlUnrepairableMemory_v1_t.__init__  ,    +T22;;D];^^^^^r  r  r  s   @r  r2  r2    sX        	F	v&H_ _ _ _ _ _ _ _ _r  r2  c                       e Zd ZdS )struct_c_nvmlEventSet_tNr  r  r  r  r8  r8    r  r  r8  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  rz  r  r  r  r  r;  r;    sI        	>"	k"	k"	&!	f%H (#EEEr  r;  c                       e Zd ZdS )struct_c_nvmlSystemEventSet_tNr  r  r  r  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_nvmlSystemEventSetCreateRequest_v1_tr  setc                 d    t          t          |                               t                     d S rS  )r  rB  ru  "nvmlSystemEventSetCreateRequest_v1rU  s    r  ru  z/c_nvmlSystemEventSetCreateRequest_v1_t.__init__7  s,    4d;;DDMoDpppppr  r  r  r  r  c_nvmlSystemEventSet_trz  ru  r  r  s   @r  rB  rB  1  sY        	F	&'H
q q q q q q q q qr  rB  c                   .     e Zd ZdefdefgZ fdZ xZS )$c_nvmlSystemEventSetFreeRequest_v1_tr  rC  c                 d    t          t          |                               t                     d S rS  )r  rI  ru   nvmlSystemEventSetFreeRequest_v1rU  s    r  ru  z-c_nvmlSystemEventSetFreeRequest_v1_t.__init__A  ,    2D99BBKkBlllllr  rF  r  s   @r  rI  rI  ;  sY        	F	&'H
m m m m m m m m mr  rI  c                   4     e Zd ZdefdefdefgZ fdZ xZS )%c_nvmlSystemRegisterEventRequest_v1_tr  
eventTypesrC  c                 d    t          t          |                               t                     d S rS  )r  rN  ru  !nvmlSystemRegisterEventRequest_v1rU  s    r  ru  z.c_nvmlSystemRegisterEventRequest_v1_t.__init__L  ,    3T::CCLmCnnnnnr  )	r  r  r  r  r  rG  rz  ru  r  r  s   @r  rN  rN  E  sa        	F	{#	&'Ho o o o o o o o or  rN  c                   &    e Zd ZdefdefgZddiZdS )c_nvmlSystemEventData_v1_tr<  gpuIdr  N)r  r  r  r  r  rz  r  r  r  r  rT  rT  O  s1        	k"	&H (#EEEr  rT  c                   X     e Zd Zdefdefdefd ee          fdefdefgZ fdZ xZ	S )$c_nvmlSystemEventSetWaitRequest_v1_tr  	timeoutmsrC  r  r  numEventc                 d    t          t          |                               t                     d S rS  )r  rW  ru   nvmlSystemEventSetWaitRequest_v1rU  s    r  ru  z-c_nvmlSystemEventSetWaitRequest_v1_t.__init__a  rL  r  )
r  r  r  r  rG  r  rT  rz  ru  r  r  s   @r  rW  rW  W  s        	F	f	&'	3445	V	VHm m m m m m m m mr  rW  c                 X    t          d          } ||           }t          |           dS )zx
    C API binding for c_nvmlSystemEventSetFree
    :param req: reference of c_nvmlSystemEventSetCreateRequest_v1_t
    nvmlSystemEventSetCreateNrp  rg  reqr  rf  s      r  c_nvmlSystemEventSetCreatera  e  3    
 
!!;	<	<B
"S''CSr  c                 X    t          d          } ||           }t          |           dS )zv
    C API binding for c_nvmlSystemEventSetFree
    :param req: reference of c_nvmlSystemEventSetFreeRequest_v1_t
    nvmlSystemEventSetFreeNr^  r_  s      r  c_nvmlSystemEventSetFreere  n  s3    
 
!!9	:	:B
"S''CSr  c                 X    t          d          } ||           }t          |           dS )zw
    C API binding for nvmlSystemRegisterEvents
    :param req: reference of c_nvmlSystemRegisterEventRequest_v1_t
    nvmlSystemRegisterEventsNr^  r_  s      r  c_nvmlSystemRegisterEventsrh  w  rb  r  c                 r    t          d          } ||           }|t          k    r|S t          |           dS )zt
    C API binding for nvmlSystemEventSetWait
    :param req: reference of c_nvmlSystemEventSetWaitRequest_v1_t
    nvmlSystemEventSetWaitN)rp  r5  rg  r_  s      r  c_nvmlSystemEventSetWaitrk    sD    
 
!!9	:	:B
"S''C
   
Sr  c                     | t           k    rt          t                    t                      }| |_        d|_        t          t          |                     |j        st          t                    |j        S )z
    Create an NVML system event set.
    :param version: The version of the request.
    :return: A ctypes pointer to the created c_nvmlSystemEventSet_t structure.
    N)	rE  r  $NVML_ERROR_ARGUMENT_VERSION_MISMATCHrB  r  rC  ra  r  r>  )r  r`  s     r  r]  r]    sp     444<=== 1
2
2CCKCGuSzz*** 7 +)***7Nr  c                     | t           k    rt          t                    t                      }| |_        ||_        t          t          |                     dS )z
    Free an NVML system event set.
    :param version: The version of the request.
    :param setHandle: A ctypes pointer to a c_nvmlSystemEventSet_t structure.
    N)rK  r  rm  rI  r  rC  re  r  )r  	setHandler`  s      r  rd  rd    sR     222<===
.
0
0CCKCGU3ZZ(((((r  c                     | t           k    rt          t                    t                      }| |_        ||_        ||_        t          t          |                     dS )z
    Register events for an NVML system event set.
    :param version: The version of the request.
    :param eventTypes: A bitmask of event types to register.
    :param setHandle: A ctypes pointer to a c_nvmlSystemEventSet_t structure.
    N)	rQ  r  rm  rN  r  rO  rC  rh  r  )r  rO  ro  r`  s       r  rg  rg    sY     333<===
/
1
1CCKCNCGuSzz*****r  c                    | t           k    rt          t                    t                      }| |_        ||_        ||_        ||_        ||_        t          t          |                    }|t          k    rg S g }t          |j                  D ]0}|                    ||         j        ||         j        d           1|S )a  
    Wait for events in an NVML system event set.
    :param version: The version of the request.
    :param setHandle: A ctypes pointer to a c_nvmlSystemEventSet_t structure.
    :param timeoutMs: Timeout in milliseconds.
    :param eventData: A ctypes array of c_nvmlSystemEventData_v1_t for event data.
    :param eventDataSize: Number of c_nvmlSystemEventData_v1_t in evenData array..
    :return: A list of dictionaries containing event data.
    )r<  rU  )r[  r  rm  rW  r  rX  rC  r  r  rk  r  r5  rangerY  r  r<  rU  )	r  ro  	timeoutMsr=  eventDataSizer`  rf  eventsis	            r  rj  rj    s     222<===
.
0
0CCKCMCGCH CL
"5::
.
.C
   	 F3<    "1/q\'
 
 	 	 	 	 Mr  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  rx  rx    sQ        	6"	f%	;'		k"	f	VaZ HHHr  rx  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    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_SIZErz  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_SIZErz  r  r  r  r  r  	  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_trz  r  r  r  r  r  	  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  rz  r  r  r  r  r  1	  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_trF  timeRunTotaltimeRunswRunlistIdtargetTimeSlicecumulativePreemptionTimeNr  r  r  r  r  r  7	  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_ENTRIESrz  r  r  r  r  r  A	  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  rz  r  r  r  r  r  K	  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  r  c                       e Zd ZdefgZdS )c_nvmlVgpuSchedSetData_tr  Nr  r  r  r  r  r  X	  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  rz  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  rz  r  r  r  r  r  c	  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_COUNTrz  r  r  r  r  r  j	  s[        	)S ST	'	'	'	'	'	'	'	HHHr  r  c                   6    e Zd Zdefdefd ee          fgZdS )c_nvmlVgpuTypeIdInfo_v1_tr  	vgpuCountvgpuTypeIdsNro  r  r  r  r  r  v	  s5        	F	f	(HHHr  r  c                   $    e Zd ZdefdefdefgZdS )c_nvmlVgpuTypeMaxInstance_v1_tr  
vgpuTypeIdmaxInstancePerGINr  r  r  r  r  r  	  s-        	F	v	V$HHHr  r  c                   6    e Zd Zdefdefd ee          fgZdS )!c_nvmlActiveVgpuInstanceInfo_v1_tr  r  vgpuInstancesNro  r  r  r  r  r  	  s5        	F	f	''&//*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_nvmlVgpuSchedulerState_v1_tr  r  r  r  r  Nr  r  r  r  r  r  	  s>        	F	V	F#	&!	:;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_nvmlVgpuSchedulerStateInfo_v1_tr  r  r  r  r  Nr  r  r  r  r  r  	  s>        	F#	F#	F#	F#	78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ez  fgZdS )	c_nvmlVgpuSchedulerLogInfo_v1_tr  r  r  r  r  r  r  Nr  r  r  r  r  r  	  sU        	F#	F#	F#	F#	78	F#	9<]]^HHHr  r  i% 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_nvmlVgpuCreatablePlacementInfo_v1_tr  r  r  rn  rm  Nro  r  r  r  r  r  	  sE        	F	v	&	)	&!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  r  r  	  s-         &)v&!6*HHHr  r  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  rw  displayOrdinalsessionTypesessionFlagshMaxResolutionvMaxResolutionr  r  r  r  Nr  r  r  r  r  r  	  su        	f		,-	6"		 	6"	6"			v	6"HHHr  r  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  r  r  	  sl        v!6*v& &)&/"F+((f%V$-HHHr  r  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  r  r  r  r  r  r  r  r  r  r  ro  c                 d    t          t          |                               t                     d S rS  )r  r   ru  nvmlGpuInstanceProfileInfo_v2rU  s    r  ru  z*c_nvmlGpuInstanceProfileInfo_v2_t.__init__
  rV  r  )
r  r  r  r  r  r  NVML_DEVICE_NAME_V2_BUFFER_SIZErz  ru  r  r  s   @r  r   r    
  s        F#v!6*v& &)&/"F+((f%V$-"AABHg g g g g g g g gr  r   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  rz  r  r  r  r  r  
  s5        >*vf%:;HHHr  r  c                       e Zd ZdS )struct_c_nvmlGpuInstance_tNr  r  r  r  r	  r	  
  r  r  r	  c                       e Zd ZdefdefgZdS ) c_nvmlComputeInstancePlacement_tr  r  Nr  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_nvmlComputeInstanceProfileInfo_tr  r  r  r  sharedCopyEngineCountsharedDecoderCountsharedEncoderCountsharedJpegCountsharedOfaCountNr  r  r  r  r  r  0
  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  r  r  r  r  r  r  r  r  ro  c                 d    t          t          |                               t                     d S rS  )r  r  ru  !nvmlComputeInstanceProfileInfo_v2rU  s    r  ru  z.c_nvmlComputeInstanceProfileInfo_v2_t.__init__L
  rR  r  )	r  r  r  r  r  r  rz  ru  r  r  s   @r  r  r  >
  s        F#vv& &)&/(&1%v.%v."F+!6*"AABHo o o o o o o o or  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_nvmlComputeInstanceInfo_tr  gpuInstancer  r  r  N)r  r  r  r>  c_nvmlGpuInstance_tr  r  rz  r  r  r  r  r  O
  s>        >* 34vf%>?	HHHr  r  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  r  r  \
  s7        vq)v&((*HHHr  r  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  r  NVML_MAX_GPU_UTILIZATIONSrz  r  r  r  r"  r"  a
  s-        &! DG` `ac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_nvmlGpuThermalSensor_t
controllerdefaultMinTempdefaultMaxTempcurrentTemptargetN)r  r  r  r8  rz  r  r  r  r'  r'  
  s=        u%!5)!5)&5!	#HHHr  r'  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  r'   NVML_MAX_THERMAL_SENSORS_PER_GPUrz  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_trz  r  r  r  r2  r2  
  s7        F#&!$&:;!45HHHr  r2  c                     t                      }t          |_        d|_        t	          d          } || t          |                    }t          |           |j        |j        gS )Nr   nvmlDeviceGetCoolerInfo)	r2  nvmlCoolerInfo_v1r  r3  rp  r  rg  r4  r5  )r  c_coolerInfor  rf  s       r  r9  r9  
  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_nvmlDeviceAttributesr  r  r  r  r  r  gpuInstanceSliceCountcomputeInstanceSliceCountr  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  rC  rC  
  s;         F# 	HHHr  rC  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  rJ  rJ  
  s-        'f%(HHHr  rJ  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  rK  rL  rM  multiGpuModec                 d    t          t          |                               t                     d S rS  )r  rO  ru   nvmlSystemConfComputeSettings_v1rU  s    r  ru  z-c_nvmlSystemConfComputeSettings_v1_t.__init__
  rL  r  r  r  s   @r  rO  rO  
  sp        F#'f%((	Hm m m m m m m m mr  rO  c                       e Zd ZdefdefgZdS )c_nvmlConfComputeSystemCaps_tcpuCapsgpusCapsNr  r  r  r  rT  rT  
  s%        F#V$HHHr  rT  c                       e Zd ZdefdefgZdS )c_nvmlConfComputeMemSizeInfo_tprotectedMemSizeKibunprotectedMemSizeKibNr$  r  r  r  rX  rX  
  s%        &4(+6HHHr  rX  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  rW  NVML_GPU_CERT_CHAIN_SIZE$NVML_GPU_ATTESTATION_CERT_CHAIN_SIZErz  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  rW  NVML_CC_GPU_CEC_NONCE_SIZE#NVML_CC_GPU_ATTESTATION_REPORT_SIZE'NVML_CC_GPU_CEC_ATTESTATION_REPORT_SIZErz  r  r  r  rd  rd  
  sW        0&9(&1+V4'$>>?$g0S&ST'3Z)Z[HHHr  rd  c                       e Zd ZdefdefgZdS ).c_nvmlConfComputeSetKeyRotationThresholdInfo_tr  maxAttackerAdvantageNr  r  r  r  r6  rz  r  r  r  ro  ro  
  s%        F#'1HHHr  ro  c                       e Zd ZdefdefgZdS ).c_nvmlConfComputeGetKeyRotationThresholdInfo_tr  attackerAdvantageNrq  r  r  r  rs  rs    s%        F#$g.HHHr  rs  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  )r{  r"  r  )rH  args     r  rJ  z4convertStrBytes.<locals>.wrapper.<locals>.<listcomp>  s3    NNN#
3 4 4=

#NNNr  )r{  r|  r"  r}  )rP  kwargsr  funcs      r  wrapperz convertStrBytes.<locals>.wrapper  sk     ONNNNdD#F## c5!! 	 #s## 
::<<
r  r	  )r   rT  r  rz  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  )rP  ry  rz  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  #  s8    
4[[h h h h [h Nr  c                     t                       t          d          } ||           }t          |           t                                           t
          dz  at                                           d S )NnvmlInitWithFlagsr   )_LoadNvmlLibraryrp  rg  rj  rk  _nvmlLib_refcountrm  )r#  r  rf  s      r  r  r  0  so    
 
!!4	5	5B
"U))CS 4r  c                  $    t          d           d S ry  )r  r  r  r  nvmlInitr  A  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)rl  rj  rk  rT  platformCDLLospathr  getenvOSErrorrg  r7  rm  )oses    r  r  r  E  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   )rp  rg  rj  rk  r  rm  )r  rf  s     r  r  r  g  sl     
!	0	0B
"$$CS 	Q4r  c                 R    t          d          }t          |_         ||           }|S )Nr#  )rp  c_char_prestype)r  r  rf  s      r  r#  r#  x  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_SIZErp  r  rg  r  	c_versionr  rf  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r8  rp  r  rg  r  c_cuda_versionr  rf  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 )Nr9  nvmlSystemGetProcessName)r  rp  r  rg  r  )r  c_namer  rf  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  rp  r  rg  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  rp  r  re  r2  r  r  r*  rg  )c_counthicsr  rf  	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  rp  r  r  r  rg  )c_branchInfor  rf  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  rp  r  rg  r  r  r  rf  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_trp  r  rg  )r3  c_indexunitr  rf  s        r  r  r    sN    UmmG>>D	 !;	<	<B
"WeDkk
"
"CSKr  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlUnitGetUnitInfo)r  rp  r  rg  r  r  r  rf  s       r  r  r    sE    F	 !6	7	7B
"T5==
!
!CSMr  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlUnitGetLedState)r  rp  r  rg  )r  c_stater  rf  s       r  r  r    sE    !!G	 !6	7	7B
"T5>>
"
"CSNr  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlUnitGetPsuInfo)r  rp  r  rg  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  r[  c_tempr  rf  s        r  r  r    sN    XXF	 !9	:	:B
"T6$<<v
/
/CS<r  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlUnitGetFanSpeedInfo)r  rp  r  rg  )r  c_speedsr  rf  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  rp  r  r2  re  rg  r  )r  r  r  rf  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  rp  r  rg  )r  r  device_array	c_devicesr  rf  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>  rp  r  rg  )r3  r  r  r  rf  s        r  nvmlDeviceGetHandleByIndexr    sP    UmmGF	 !@	A	AB
"WeFmm
$
$CSMr  c                     t          |           }t                      }t          d          } ||t          |                    }t	          |           |S )NnvmlDeviceGetHandleBySerialr  r>  rp  r  rg  )r  c_serialr  r  rf  s        r  r  r    sT     HF	 !>	?	?B
"XuV}}
%
%CSMr  c                     t          |           }t                      }t          d          } ||t          |                    }t	          |           |S )NnvmlDeviceGetHandleByUUIDr  )r  c_uuidr  r  rf  s        r  r  r  )  sP    d^^FF	 !<	=	=B
"VU6]]
#
#CSMr  c                 Z   t                      }||_        |t          k    r| |j        _        n+|t
          k    r t          |j        j        | t                     t                      }t          d          } |t          |          t          |                    }t          |           |S )NnvmlDeviceGetHandleByUUIDV)r  r[  NVML_UUID_TYPE_ASCIIr  r"  NVML_UUID_TYPE_BINARYmemmover|  r  r>  rp  r  rg  )r  r[  r  r  r  rf  s         r  r  r  2  s    ^^FFK###	&	&	&"D*EFFFF	 !=	>	>B
"U6]]E&MM
*
*CSMr  c                     t          |           }t                      }t          d          } ||t          |                    }t	          |           |S )N nvmlDeviceGetHandleByPciBusId_v2r  )pciBusIdc_busIdr  r  rf  s        r  nvmlDeviceGetHandleByPciBusIdr  @  sR    x  GF	 !C	D	DB
"WeFmm
$
$CSMr  c                     t          t                    }t          d          } || |t          t                              }t	          |           |j        S )NnvmlDeviceGetName)r  r  rp  r  rg  r  )r  r  r  rf  s       r  r  r  I  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_SIZErz  r  r  r  r  r  Q  +        	F	445HHHr  r  i c                     t                      }t          |_        t          d          } || t	          |                    }t          |           |j        S )NnvmlDeviceGetPerformanceModes)r  nvmlDevicePerfModes_v1r  rp  r  rg  r"  )r  	perfModesr  rf  s       r  r  r  Y  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  r  r  b  r  r  r  c                     t                      }t          |_        t          d          } || t	          |                    }t          |           |j        S )NnvmlDeviceGetCurrentClockFreqs)r  nvmlDeviceCurrentClockFreqs_v1r  rp  r  rg  r"  )r  currentClockFreqsr  rf  s       r  r  r  j  sV    :<< >	 !A	B	BB
"VU,--
.
.CS  r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetBoardIdr  )r  c_idr  rf  s       r  r  r  s  sF    88D	 !7	8	8B
"VU4[[
!
!CS:r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetMultiGpuBoardr  )r  
c_multiGpur  rf  s       r  r  r  z  sI    J	 !=	>	>B
"VU:&&
'
'CSr  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetBrand)_nvmlBrandType_trp  r  rg  r  )r  c_typer  rf  s       r  r  r    sH    F	 !5	6	6B
"VU6]]
#
#CS<r  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlDeviceGetC2cModeInfoV)r  rp  r  rg  r  s       r  nvmlDeviceGetC2cModeInfoV1r    sE    #%%F	 !<	=	=B
"VU6]]
#
#CSMr  c                      t          |           S r(  )r  r  s    r  r  r        %f---r  c                     t          t                    }t          d          } || |t          t                              }t	          |           |j        S )NnvmlDeviceGetBoardPartNumber)r  #NVML_DEVICE_PART_NUMBER_BUFFER_SIZErp  r  rg  r  )r  c_part_numberr  rf  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_SIZErp  r  rg  r  )r  r  r  rf  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)r[  r  r  rp  rg  r  )r  moduleIdisReferencemoduleIdRefr  rf  s         r  r  r    sh    x...K)>((uXK	 !8	9	9B
"V[
!
!C 
~r  c                     t           |z  } |            }t          d          } || |t          |          t          |                    }t	          |           |S )NnvmlDeviceGetMemoryAffinityr  rp  r  _nvmlAffinityScope_trg  )r  nodeSetSizescopeaffinity_array
c_affinityr  rf  s          r  r  r    sa     ;.N!!J	 !>	?	?B
"V[%
"3"35I%5P5P
Q
QCSr  c                     t           |z  } |            }t          d          } || |t          |          t          |                    }t	          |           |S )N#nvmlDeviceGetCpuAffinityWithinScoper  )r  
cpuSetSizer  r  r  r  rf  s          r  r   r     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  rp  r  rg  )r  r!  r  r  r  rf  s         r  r#  r#    sV     :-N!!J	 !;	<	<B
"VZz!2!2
3
3CSr  c                 X    t          d          } ||           }t          |           d S )NnvmlDeviceSetCpuAffinityr^  r  r  rf  s      r  r%  r%    s0    	 !;	<	<B
"V**CS4r  c                 X    t          d          } ||           }t          |           d S )NnvmlDeviceClearCpuAffinityr^  r&  s      r  r(  r(    s0    	 !=	>	>B
"V**CS4r  c                     t          d          }t                      } || t          |                    }t          |           |j        S )NnvmlDeviceGetNumaNodeIdrp  r8  r  rg  r  )r  r  noderf  s       r  r*  r*    sF    	 !:	;	;B77D
"VU4[[
!
!CS:r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetAddressingMode)r  rp  r  rg  r  )r  c_moder  rf  s       r  r.  r.    sH    )++F	 !>	?	?B
"VU6]]
#
#CS<r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetMinorNumberr  )r  c_minor_numberr  rf  s       r  r1  r1    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_SIZErp  r  rg  r  )r  r  r  rf  s       r  r4  r4    r  r  c                     t          t                    }t          d          } || t          |          |t	          t                              }t          |           |j        S )NnvmlDeviceGetInforomVersion)r  'NVML_DEVICE_INFOROM_VERSION_BUFFER_SIZErp  _nvmlInforomObject_tr  rg  r  )r  infoRomObjectr  r  rf  s        r  r7  r7    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  r8  rp  r  rg  r  r  r  r  rf  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  rf  s       r  r?  r?    sI    J	 !L	M	MB
"VU:&&
'
'CSr  c                 X    t          d          } ||           }t          |           d S )NnvmlDeviceValidateInforomr^  r&  s      r  rB  rB  	  s0    	 !<	=	=B
"V**CS4r  c                     t                      }t                      }t          d          } || t          |          t          |                    }t	          |           |j        |j        gS )NnvmlDeviceGetLastBBXFlushTime)r  r6  rp  r  rg  r  )r  c_timestampc_durationUsr  rf  s        r  rD  rD    sd    --K99L	 !@	A	AB
"VU;''|)<)<
=
=CS|122r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetDisplayMode_nvmlEnableState_trp  r  rg  r  r  r/  r  rf  s       r  rH  rH    H    !!F	 !;	<	<B
"VU6]]
#
#CS<r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetDisplayActiverI  rK  s       r  rN  rN    sH    !!F	 !=	>	>B
"VU6]]
#
#CS<r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetPersistenceModerI  )r  r  r  rf  s       r  rP  rP  &  sH     ""G	 !?	@	@B
"VU7^^
$
$CS=r  c                 Z    t          d          } || |          }t          |           d S )NnvmlDeviceGetPciInfoExtr^  r  s       r  rR  rR  -  s4    	 !:	;	;B
"VV

CS4r  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlDeviceGetPciInfo_v3r  rp  r  rg  r  s       r  rT  rT  3  sC    __F	 !:	;	;B
"VU6]]
#
#CSMr  c                      t          |           S r(  )rT  r	  s    r  nvmlDeviceGetPciInforW  :  s    "6***r  c                     t                      }t          d          } || t          |          t          |                    }t	          |           |j        S )NnvmlDeviceGetClockInfor  rp  _nvmlClockType_tr  rg  r  r  r[  c_clockr  rf  s        r  rY  rY  =  sQ    hhG	 !9	:	:B
"V%d++U7^^
<
<CS=r  c                     t                      }t          d          } || t          |          t          |                    }t	          |           |j        S )NnvmlDeviceGetMaxClockInforZ  r\  s        r  r_  r_  E  sQ    hhG	 !<	=	=B
"V%d++U7^^
<
<CS=r  c                     t                      }t          d          } || t          |          t          |                    }t	          |           |j        S )NnvmlDeviceGetApplicationsClockrZ  r\  s        r  ra  ra  N  sQ    hhG	 !A	B	BB
"V%d++U7^^
<
<CS=r  c                     t                      }t          d          } || t          |          t          |                    }t	          |           |j        S )N"nvmlDeviceGetMaxCustomerBoostClockrZ  r\  s        r  rc  rc  U  sQ    hhG	 !E	F	FB
"V%d++U7^^
<
<CS=r  c                     t                      }t          d          } || t          |          t          |          t	          |                    }t          |           |j        S )NnvmlDeviceGetClock)r  rp  r[  _nvmlClockId_tr  rg  r  )r  r[  r  r]  r  rf  s         r  re  re  \  s[    hhG	 !5	6	6B
"V%d++^B-?-?w
P
PCS=r  c                     t                      }t          d          } || t          |          t          |                    }t	          |           |j        S )N%nvmlDeviceGetDefaultApplicationsClockrZ  r\  s        r  rh  rh  e  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  rp  r  re  r2  r  rg  rr  r  r  )r  r  r  rf  clocks_arrayc_clocksprocsrv  s           r  rj  rj  m  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   $nvmlDeviceGetSupportedGraphicsClocksrk  )	r  memoryClockMHzr  r  rf  rl  rm  rn  rv  s	            r  rp  rp    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  rf  s       r  rs  rs    sF    hhG	 !8	9	9B
"VU7^^
$
$CS=r  c                     t                      }t          d          } || |t          |                    }t          |           |j        S )NnvmlDeviceGetFanSpeed_v2r  r  fanrt  r  rf  s        r  rv  rv    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  rx  r  Nr  r  r  r  rz  rz    s,        	F		&HHHr  rz  c                     t                      }d|_        t          |_        t	          d          } || t          |                    }t          |           |j        S )Nr   nvmlDeviceGetFanSpeedRPM)rz  rx  nvmlFanSpeedInfo_v1r  rp  r  rg  r  )r  
c_fanSpeedr  rf  s       r  r|  r|    sZ    %''JJN,J	 !;	<	<B
"VU:&&
'
'CSr  c                     t                      }t          d          } || |t          |                    }t          |           |j        S )NnvmlDeviceGetTargetFanSpeedr  rw  s        r  r  r    sH    hhG	 !>	?	?B
"VS%..
)
)CS=r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetNumFansr  )r  	c_numFansr  rf  s       r  r  r    sH    I	 !7	8	8B
"VU9%%
&
&CS?r  c                 d    t          d          } || |          }t          |           t          S )NnvmlDeviceSetDefaultFanSpeed_v2rp  rg  re  )r  r3  r  rf  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r[  r  r  rp  rg  re  r  )r  minSpeedmaxSpeedr  minSpeedRefmaxSpeedRefr  rf  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  rx  fanControlPolicyr  fanControlPolicyRefr  rf  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)rp  _nvmlFanControlPolicy_trg  re  )r  rx  r  r  rf  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_tr8  rz  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  rp  r  rg  r  r  r/  r  r  rf  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  rm  )r  r/  r  s      r  r  r     s-    $$$)&&999<===r  c                     t                      }t          d          } || t          |          t          |                    }t	          |           |j        S )NnvmlDeviceGetTemperature)r  rp  r  r  rg  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  rp  _nvmlTemperatureThresholds_tr  rg  r  )r  	thresholdr  r  rf  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  rp  r  r  rg  )r  r  tempr  r  rf  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  rp  r  rg  r  )r  c_marginTempInfor  rf  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_trp  r  rg  r  r  c_pstater  rf  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 nvmlDeviceGetPowerManagementModerI  )r  
c_pcapModer  rf  s       r  r  r  5  sK    #%%J	 !C	D	DB
"VU:&&
'
'CSr  c                     t                      }t          d          } || t          |                    }t          |           |j        S )N!nvmlDeviceGetPowerManagementLimitr  r  c_limitr  rf  s       r  r  r  <  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  rf  s        r  r  r  D  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  M  sF    hhG	 !K	L	LB
"VU7^^
$
$CS=r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetEnforcedPowerLimitr  r  s       r  r  r  V  sF    hhG	 !B	C	CB
"VU7^^
$
$CS=r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetPowerUsager  )r  c_wattsr  rf  s       r  r  r  ]  sF    hhG	 !:	;	;B
"VU7^^
$
$CS=r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )N#nvmlDeviceGetTotalEnergyConsumption)c_uint64rp  r  rg  r  )r  c_millijoulesr  rf  s       r  r  r  d  sI    JJM	 !F	G	GB
"VU=))
*
*CSr  c                     t                      }t                      }t          d          } || t          |          t          |                    }t          |           |j        |j        gS )NnvmlDeviceGetGpuOperationMode)_nvmlGpuOperationMode_trp  r  rg  r  r  c_currStatec_pendingStater  rf  s        r  r  r  l  sh    )++K,..N	 !@	A	AB
"VU;''~)>)>
?
?CS~344r  c                 ,    t          |           d         S ry  r  r	  s    r  $nvmlDeviceGetCurrentGpuOperationModer  u      (0033r  c                 ,    t          |           d         S Nr   r  r	  s    r  $nvmlDeviceGetPendingGpuOperationModer  y  r  r  c                     |st                      }t          d          }n$t                      }||_        t          d          } || t	          |                    }t          |           |S )NnvmlDeviceGetMemoryInfonvmlDeviceGetMemoryInfo_v2)r  rp  r  r  r  rg  )r  r  c_memoryr  rf  s        r  r  r  |  sq     C!##$%>??$&&"$%ABB
"VU8__
%
%CSOr  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlDeviceGetBAR1MemoryInfo)r  rp  r  rg  )r  c_bar1_memoryr  rf  s       r  r  r    sH    &((M	 !>	?	?B
"VU=))
*
*CSr  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetComputeMode)_nvmlComputeMode_trp  r  rg  r  rK  s       r  r  r    rL  r  c                     t                      }t                      }t          d          } || t          |          t          |                    }t          |           |j        |j        fS )N"nvmlDeviceGetCudaComputeCapabilityr  )r  c_majorc_minorr  rf  s        r  r  r    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nvmlDeviceGetEccModerI  r  s        r  r  r    sh    $&&K'))N	 !7	8	8B
"VU;''~)>)>
?
?CS~344r  c                 ,    t          |           d         S ry  r  r	  s    r  nvmlDeviceGetCurrentEccModer        ''**r  c                 ,    t          |           d         S r  r  r	  s    r  nvmlDeviceGetPendingEccModer    r  r  c                     t                      }t          d          } || t          |                    }t          |           |j        gS )NnvmlDeviceGetDefaultEccModerI  )r  c_defaultStater  rf  s       r  r  r    sN    '))N	 !>	?	?B
"VU>**
+
+CS !!r  c                     t                      }t          d          } || t          |          t          |          t	          |                    }t          |           |j        S )NnvmlDeviceGetTotalEccErrors)r  rp  _nvmlMemoryErrorType_t_nvmlEccCounterType_tr  rg  r  )r  	errorTypecounterTyper  r  rf  s         r  r  r    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  rp  r  r  r  rg  )r  r  r  c_countsr  rf  s         r  r  r    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  rp  r  r  _nvmlMemoryLocation_tr  rg  r  )r  r  r  locationTyper  r  rf  s          r  r  r    sn    mmG	 !B	C	CB
"V#I..";//"<007^^	 C
 S=r  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlDeviceGetUtilizationRates)r&  rp  r  rg  )r  c_utilr  rf  s       r  r  r    sE     ""F	 !@	A	AB
"VU6]]
#
#CSMr  c                     t                      }t                      }t          d          } || t          |          t          |                    }t          |           |j        |j        gS )NnvmlDeviceGetEncoderUtilizationr  r  r   c_samplingPeriodr  rf  s        r  r  r    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  r  s        r  r  r    r  r  c                     t                      }t                      }t          d          } || t          |          t          |                    }t          |           |j        |j        gS )NnvmlDeviceGetJpgUtilizationr  r  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  r  s        r  r  r    r
  r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetPcieReplayCounterr  )r  c_replayr  rf  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_trp  r  rg  r  )r  c_currModelc_pendingModelr  rf  s        r  r  r     sh    $&&K'))N	 !;	<	<B
"VU;''~)>)>
?
?CS~344r  c                 ,    t          |           d         S ry  r  r	  s    r  nvmlDeviceGetCurrentDriverModelr  	      #F++A..r  c                 ,    t          |           d         S r  r  r	  s    r  nvmlDeviceGetPendingDriverModelr    r  r  c                     t          t                    }t          d          } || |t          t                              }t	          |           |j        S )NnvmlDeviceGetVbiosVersion)r  %NVML_DEVICE_VBIOS_VERSION_BUFFER_SIZErp  r  rg  r  r=  s       r  r  r    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  rp  r  re  r2  r  r  rg  rr  r  r  "NVML_VALUE_NOT_AVAILABLE_ulonglongr  r  	r  r  r  rf  
proc_arrayc_procsrn  rv  r  s	            r  r  r    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  rp  r  re  r2  r  c_nvmlProcessInfo_v3_trg  rr  r  r  r!  r  r  r"  s	            r  r&  r&  9  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(  )r&  r	  s    r  $nvmlDeviceGetComputeRunningProcessesr*  [  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   r   r"  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   r'  r"  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          |           S r(  )r.  r	  s    r  %nvmlDeviceGetGraphicsRunningProcessesr0    s    3F;;;r  c                      t          |           S r(  )*nvmlDeviceGetMPSComputeRunningProcesses_v3r	  s    r  'nvmlDeviceGetMPSComputeRunningProcessesr3    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   r   r"  s	            r  r5  r5       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   r2  r   r   r'  r"  s	            r  r2  r2    r6  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  rp  r  re  r2  r  r  castr  r  rg  rr  r  r!  r  r  r  r  )
r  r  r  c_processDetailListr  rf  r$  rn  rv  r  s
             r  r9  r9    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%nvmlDeviceGetAutoBoostedClocksEnabledrI  )r  c_isEnabledc_defaultIsEnabledr  rf  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)rp  r  rg  )r  r  r  rf  s       r  rB  rB    s<    	 !6	7	7B
"T?5))
*
*CS4r  c                 t    t          d          } || t          |                    }t          |           d S )NnvmlDeviceSetPersistenceModerp  rJ  rg  r  r  r  rf  s       r  rD  rD    s=    	 !?	@	@B
"V'--
.
.CS4r  c                 t    t          d          } || t          |                    }t          |           d S )NnvmlDeviceSetComputeMode)rp  r  rg  rF  s       r  rH  rH  $  s=    	 !;	<	<B
"V'--
.
.CS4r  c                 t    t          d          } || t          |                    }t          |           d S )NnvmlDeviceSetEccModerE  rF  s       r  rJ  rJ  *  s=    	 !7	8	8B
"V'--
.
.CS4r  c                 t    t          d          } || t          |                    }t          |           d S )NnvmlDeviceClearEccErrorCounts)rp  r  rg  )r  r  r  rf  s       r  rL  rL  0  s=    	 !@	A	AB
"V*;77
8
8CS4r  c                 t    t          d          } || t          |                    }t          |           d S )NnvmlDeviceSetDriverModel)rp  r  rg  )r  r  r  rf  s       r  rN  rN  6  s=    	 !;	<	<B
"V'..
/
/CS4r  c                 t    t          d          } || t          |                    }t          |           d S )N%nvmlDeviceSetAutoBoostedClocksEnabledrE  )r  enabledr  rf  s       r  rP  rP  <  s=    	 !H	I	IB
"V'00
1
1CS4r  c                     t          d          } || t          |          t          |                    }t          |           d S )N,nvmlDeviceSetDefaultAutoBoostedClocksEnabled)rp  rJ  r  rg  )r  rQ  r#  r  rf  s        r  rS  rS  C  sE    	 !O	P	PB
"V'00&--
@
@CS4r  c                     t          d          } || t          |          t          |                    }t          |           d S )NnvmlDeviceSetGpuLockedClocksrp  r  rg  )r  minGpuClockMHzmaxGpuClockMHzr  rf  s        r  rU  rU  J  sF    	 !?	@	@B
"VVN++VN-C-C
D
DCS4r  c                 X    t          d          } ||           }t          |           d S )NnvmlDeviceResetGpuLockedClocksr^  r&  s      r  rZ  rZ  P  s0    	 !A	B	BB
"V**CS4r  c                     t          d          } || t          |          t          |                    }t          |           d S )NnvmlDeviceSetMemoryLockedClocksrV  )r  minMemClockMHzmaxMemClockMHzr  rf  s        r  r\  r\  V  sF    	 !B	C	CB
"VVN++VN-C-C
D
DCS4r  c                 X    t          d          } ||           }t          |           d S )N!nvmlDeviceResetMemoryLockedClocksr^  r&  s      r  r`  r`  \  0    	 !D	E	EB
"V**CS4r  c                     t          |          t          u}|r|nt          |          }t          d          } || |          }t	          |           |rt
          n|S )NnvmlDeviceGetClkMonStatus)r[  r   r  rp  rg  re  )r  c_clkMonInfor  c_clkMonInfoRefr  rf  s         r  rc  rc  b  sg    |$$,>>K&1Jllu\7J7JO	 !<	=	=B
"V_
%
%CS&8<<L8r  c                     t          d          } || t          |          t          |                    }t          |           d S )NnvmlDeviceSetApplicationsClocksrV  )r  r^  maxGraphicsClockMHzr  rf  s        r  rg  rg  l  sG    	 !B	C	CB
"VVN++V4G-H-H
I
ICS4r  c                 X    t          d          } ||           }t          |           d S )N!nvmlDeviceResetApplicationsClocksr^  r&  s      r  rj  rj  t  ra  r  c                 t    t          d          } || t          |                    }t          |           d S )N!nvmlDeviceSetPowerManagementLimitrV  )r  limitr  rf  s       r  rl  rl  {  s:    	 !D	E	EB
"VVE]]
#
#CS4r  c                 t    t          d          } || t          |                    }t          |           d S )NnvmlDeviceSetGpuOperationMode)rp  r  rg  rF  s       r  ro  ro    s=    	 !@	A	AB
"V,T22
3
3CS4r  c                      t          d          } t                      } | t          |                    }t          |           |S )NnvmlEventSetCreate)rp  c_nvmlEventSet_tr  rg  )r  eventSetrf  s      r  rq  rq    sC    	 !5	6	6B!!H
"U8__

CSOr  c                 v    t          d          } || t          |          |          }t          |           d S )NnvmlDeviceRegisterEvents)rp  r  rg  )r  rO  rs  r  rf  s        r  ru  ru    s>    	 !;	<	<B
"V[,,h
7
7CS4r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )N nvmlDeviceGetSupportedEventTypesr  rp  r  rg  r  )r  c_eventTypesr  rf  s       r  rw  rw    sI    ==L	 !C	D	DB
"VU<((
)
)CSr  c                     t          d          }t                      } || t          |          t          |                    }t	          |           |S )NnvmlEventSetWait_v2)rp  r;  r  r  rg  )rs  rX  r  r  rf  s        r  r{  r{    sO    	 !6	7	7BD
"XuT{{F9$5$5
6
6CSKr  c                 "    t          | |          S r(  )r{  )rs  rX  s     r  nvmlEventSetWaitr}    s    x333r  c                 X    t          d          } ||           }t          |           d S )NnvmlEventSetFreer^  )rs  r  rf  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  onSameBoardrf  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rp  r  r  rg  r  r  r  genrf  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  widthrf  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+nvmlDeviceGetSupportedClocksThrottleReasonsrx  r  	c_reasonsr  rf  s       r  r  r    sH    }}I	 !N	O	OB
"VU9%%
&
&CS?r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )N(nvmlDeviceGetSupportedClocksEventReasonsrx  r  s       r  r  r    sH    }}I	 !K	L	LB
"VU9%%
&
&CS?r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )N)nvmlDeviceGetCurrentClocksThrottleReasonsrx  r  s       r  r  r    sH    }}I	 !L	M	MB
"VU9%%
&
&CS?r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )N&nvmlDeviceGetCurrentClocksEventReasonsrx  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  rf  s       r  r  r    sF    	 !5	6	6BhhG
"VU7^^
$
$CS=r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetAccountingModerI  rK  s       r  r  r  	  sH    !!F	 !>	?	?B
"VU6]]
#
#CS<r  c                 t    t          d          } || t          |                    }t          |           d S )NnvmlDeviceSetAccountingModerE  rF  s       r  r  r    s=    	 !>	?	?B
"V'--
.
.CS4r  c                 X    t          d          } ||           }t          |           d S )NnvmlDeviceClearAccountingPidsr^  r&  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)rx  rp  r  r  rg  r{  r!  r  )r  r  statsr  rf  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  rp  r  rg  listmapint)r  r  pidsr  rf  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  rp  r  rg  r  r  )r  
bufferSizer  rf  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  rp  r  re  r2  r  r  r  rg  r  r  r  )r  sourceFilterc_sourcer  r  rf  
page_arrayc_pagess           r  r  r  5  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 ))addressrF  )r  )rH  rv  r  c_timess     r  rJ  z0nvmlDeviceGetRetiredPages_v2.<locals>.<listcomp>c  s5    iiia#gaj//GAJIIiiir  )r  r  rp  r  re  r2  r  r  r  rg  rr  )
r  r  r  r  r  rf  r  times_arrayr  r  s
           @@r  r  r  L  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)rJ  rp  r  rg  r  r  )r  	c_pendingr  rf  s       r  r  r  e  sR    "$$I	 !I	J	JB
"VU9%%
&
&CSyr  c                     t                      }t          d          } || t          |          t          |                    }t	          |           t          |j                  S )NnvmlDeviceGetAPIRestriction)rJ  rp  _nvmlRestrictedAPI_tr  rg  r  r  )r  apiTypec_permissionr  rf  s        r  r  r  l  s^    %''L	 !>	?	?B
"V)'22E,4G4G
H
HCS|!"""r  c                     t          d          } || t          |          t          |                    }t          |           d S )NnvmlDeviceSetAPIRestriction)rp  r  rJ  rg  )r  r  isRestrictedr  rf  s        r  r  r  s  sH    	 !>	?	?B
"V)'224F|4T4T
U
UCS4r  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlDeviceGetBridgeChipInfo)r  rp  r  rg  )r  bridgeHierarchyr  rf  s       r  r  r  y  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  rL  rp  r  re  r  r  r;  rg  )r  sampling_typer<  c_sampling_typec_time_stampc_sample_countc_sample_value_typer  rf  sampleArray	c_sampless              r  r  r    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_tr?  rp  r  rg  )r  perfPolicyTypec_perfPolicy_type
c_violTimer  rf  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  rp  _nvmlPcieUtilCounter_tr  rg  r  )r  counterr   r  rf  s        r  r  r    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  rp  r  re  r  r>  r  rg  r  )	cpuNumberr  r  rf  r  r  s         r  r  r    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    nvmlDeviceGetTopologyNearestGpusr  )r  levelr  r  rf  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_trp  r  rg  r  )device1device2c_levelr  rf  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%nvmlDeviceGetNvLinkUtilizationCounterrx  )r  linkr  c_rxcounterc_txcounterr  rf  s          r  r  r    sh    --K--K	 !H	I	IB
"VT7E+$6$6k8J8J
K
KCS{011r  c                 ^    t          d          } || |||          }t          |           d S )N(nvmlDeviceFreezeNvLinkUtilizationCounterr^  )r  r  r  freezer  rf  s         r  r  r    s8    	 !K	L	LB
"VT7F
+
+CS4r  c                 \    t          d          } || ||          }t          |           d S )N'nvmlDeviceResetNvLinkUtilizationCounterr^  )r  r  r  r  rf  s        r  r  r    s6    	 !J	K	KB
"VT7
#
#CS4r  c                 z    t          d          } || ||t          |          |          }t          |           d S )N%nvmlDeviceSetNvLinkUtilizationControlr  )r  r  r  controlresetr  rf  s          r  r  r    s@    	 !H	I	IB
"VT7E'NNE
:
:CS4r  c                     t                      }t          d          } || ||t          |                    }t          |           |S )N%nvmlDeviceGetNvLinkUtilizationControl)r  rp  r  rg  )r  r  r  	c_controlr  rf  s         r  r  r    sL    .00I	 !H	I	IB
"VT7E)$4$4
5
5CSr  c                     t                      }t          d          } || ||t          |                    }t          |           |j        S )NnvmlDeviceGetNvLinkCapabilityr  )r  r  
capabilityc_capResultr  rf  s         r  r   r     sM    ((K	 !@	A	AB
"VT:u['9'9
:
:CSr  c                     t                      }t          d          } || ||t          |                    }t          |           |j        S )NnvmlDeviceGetNvLinkErrorCounterrx  )r  r  r  c_resultr  rf  s         r  r  r    sJ    }}H	 !B	C	CB
"VT7E(OO
4
4CS>r  c                 Z    t          d          } || |          }t          |           d S )N"nvmlDeviceResetNvLinkErrorCountersr^  )r  r  r  rf  s       r  r  r    s4    	 !E	F	FB
"VT

CS4r  c                     t                      }t          d          } || |t          |                    }t          |           |S )N#nvmlDeviceGetNvLinkRemotePciInfo_v2rU  )r  r  c_pcir  rf  s        r   nvmlDeviceGetNvLinkRemotePciInfor    sE    OOE	 !F	G	GB
"VT5<<
(
(CSLr  c                     t                      }t          d          } || |t          |                    }t          |           |j        S )N#nvmlDeviceGetNvLinkRemoteDeviceType)_nvmlNvLinkDeviceType_trp  r  rg  r  )r  r  r  r  rf  s        r  r  r    sJ    $&&F	 !F	G	GB
"VT5==
)
)CS<r  c                     t                      }t          d          } || |t          |                    }t          |           |j        S )NnvmlDeviceGetNvLinkStater  )r  r  
c_isActiver  rf  s        r  r  r    sK    J	 !;	<	<B
"VT5,,
-
-CSr  c                     t                      }t          d          } || |t          |                    }t          |           |j        S )NnvmlDeviceGetNvLinkVersionr  )r  r  r  r  rf  s        r  r  r    sJ    I	 !=	>	>B
"VT5++
,
,CS?r  c                 t    t          d          } |t          |           |          }t          |           d S )NnvmlDeviceModifyDrainStaterp  pointerrg  )pciInfonewStater  rf  s       r  r  r  $  s<    	 !=	>	>B
"WWx
(
(CS4r  c                     t                      }t          d          } |t          |           t          |                    }t	          |           |j        S )NnvmlDeviceQueryDrainState)r  rp  r  r  rg  r  )r  
c_newStater  rf  s       r  r  r  *  sQ    J	 !<	=	=B
"WWuZ00
1
1CSr  c                 r    t          d          } |t          |                     }t          |           d S )NnvmlDeviceRemoveGpur  r  r  rf  s      r  r  r  1  s:    	 !6	7	7B
"WW

CS4r  c                 r    t          d          } |t          |                     }t          |           d S )NnvmlDeviceDiscoverGpusr  r  s      r  r!  r!  7  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
rC  lenrp  	enumeraterD  rE  	TypeErrorc_int32r  rg  r  fieldIds
values_arrvaluesr  rv  rD  rf  s           r  r#  r#  =  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nvmlDeviceClearFieldValuesr$  r)  s           r  r/  r/  L  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nvmlDeviceGetVirtualizationModerx  )r  c_virtualization_moder  rf  s       r  r1  r1  [  sK    'MM	 !B	C	CB
"VU011
2
2CS &&r  c                 8    t          d          } || |          S )NnvmlDeviceSetVirtualizationModerp  )r  virtualization_moder  s      r  r4  r4  b  s#    	 !B	C	CB2f)***r  c                     t          d          }t          |_        t          d          } || t	          |                    }t          |           |j        S )Nr   "nvmlDeviceGetVgpuHeterogeneousModerg  VgpuHeterogeneousMode_v1r  rp  r  rg  r  )r  c_vgpuHeterogeneousModer  rf  s       r  r8  r8  f  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rg  r:  r  r  rp  r  rg  re  )r  heterogeneous_moder;  r  rf  s        r  r=  r=  n  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)ri  VgpuPlacementId_v1r  rp  r  rg  rj  )rw  c_placementr  rf  s       r  rA  rA  w  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  rp  r  rg  rq  VgpuPlacementList_v2r  r  r  r  rl  VgpuPlacementList_v1r  rm  rn  )	r  r  r  r  c_max_instancesr  rf  c_vgpu_placementsc_placementss	            r  rF  rF    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   rE  r   r   (nvmlDeviceGetVgpuTypeCreatablePlacements)r  rp  r  rg  rq  rG  r  r  r  rl  rH  rn  )r  r  r  rI  r  rf  rJ  rK  s           r  rM  rM    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  rp  _nvmlVgpuDriverCapability_tr  rg  r  )r  r  r  rf  s       r  rO  rO    sR    ((K	 !@	A	AB
"(44eK6H6H
I
ICSr  c                     t                      }t          d          } || t          |          t          |                    }t	          |           |j        S )NnvmlDeviceGetVgpuCapabilities)r  rp  _nvmlDeviceVgpuCapability_tr  rg  r  )r  r  r  r  rf  s        r  rR  rR    sT    ((K	 !@	A	AB
"V0<<eK>P>P
Q
QCSr  c                     t          d          } || t          |          |          }t          |           t          S )NnvmlDeviceSetVgpuCapabilities)rp  rS  rg  re  )r  r  r  r  rf  s        r  rU  rU    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  rp  r  re  r2  _nvmlVgpuTypeId_tr  rg  rr  r  r  r  c_vgpu_countr  rf  vgpu_type_ids_arrayc_vgpu_type_idsvgpusrv  s           r  rW  rW        !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   nvmlDeviceGetCreatableVgpusrX  rZ  s           r  ra  ra    r_  r  c                     t          d          }t          d          } || t          |                    }t          |           |j        S )Nr   #nvmlVgpuTypeGetGpuInstanceProfileIdr  )r  c_profile_idr  rf  s       r  rc  rc    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  rp  r  rg  r  )r  c_classc_buffer_sizer  rf  s        r  rf  rf    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nvmlVgpuTypeGetNamerg  )r  r  rj  r  rf  s        r  rl  rl    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   nvmlVgpuTypeGetDeviceIDrx  )r  c_device_idc_subsystem_idr  rf  s        r  rn  rn    sh     ^^K ^^N
!";
<
<B
"Z{++U>-B-B
C
CCS~344r  c                     t          d          }t          d          } || t          |                    }t          |           |j        S )Nr   nvmlVgpuTypeGetFramebufferSizerx  )r  	c_fb_sizer  rf  s       r  rr  rr    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  rf  s       r  ru  ru    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  rf  s        r  rx  rx  #  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  rp  rg  r  )r  	c_licenserj  r  rf  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  rf  s       r  r  r  4  sK    !99L
!"A
B
BB
"Z|,,
-
-CSr  c                     t          d          }t          d          } || t          |                    }t          |           |j        S )Nr   nvmlVgpuTypeGetGspHeapSizer  )r  
c_gsp_heapr  rf  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  rf  s       r  r  r  B  sM    ayy
!"@
A
AB
"Z/00
1
1CS!!r  c                     t                      }t          |_        t          d          } || t	          |                    }t          |           |S )N#nvmlVgpuInstanceGetRuntimeStateSize)r  VgpuRuntimeState_v1r  rp  r  rg  )rw  c_runtime_stater  rf  s       r  r  r  I  sP    /11O1O
!"G
H
HB
"\511
2
2CSr  c                     t          d          }t          d          } || |t          |                    }t          |           |j        S )Nr   rE  r  )r  r  rI  r  rf  s        r  rE  rE  Q  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  rf  s       r  r  r  X  sM    #AYY
!"D
E
EB
"Z566
7
7CS!''r  c                     t          d          }t          |_        t          d          } || t	          |                    }t          |           |S )Nr   nvmlVgpuTypeGetBAR1Info)rs  VgpuTypeBar1Info_v1r  rp  r  rg  )r  
c_bar1Infor  rf  s       r  r  r  _  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  rp  r  re  r2  r|  r  rg  rr  r  r  )r  r[  r  rf  vgpu_instance_arrayc_vgpu_instancesr^  rv  s           r  r  r  g  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  rp  r  rg  r  )rw  c_vm_idrj  c_vm_id_typer  rf  s         r  r  r    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  rp  r  rg  r  rw  r  rj  r  rf  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  rp  r  rg  r  )rw  c_driver_versionrj  r  rf  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  )rw  c_license_statusr  rf  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)rp  r  r  rg  )rw  r  c_license_inforf  s       r  r  r    sH    
!"E
F
FB,..N
"\500
1
1CSr  c                      t          |           S r(  )r  )rw  s    r  nvmlVgpuInstanceGetLicenseInfor    s    ,\:::r  c                     t          d          }t          d          } || t          |                    }t          |           |j        S )Nr   !nvmlVgpuInstanceGetFrameRateLimitr  )rw  c_frlr  rf  s       r  r  r    sH    1IIE
!"E
F
FB
"\5<<
(
(CS;r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlVgpuInstanceGetEccModerI  rw  r/  r  rf  s       r  r  r    sH    !!F	 !=	>	>B
"\5==
)
)CS<r  c                     t          d          }t          d          } || t          |                    }t          |           |j        S )Nr   nvmlVgpuInstanceGetTyper  )rw  c_vgpu_typer  rf  s       r  r  r    sK    ))K
!";
<
<B
"\5--
.
.CSr  c                     t          d          }t          d          } || t          |                    }t          |           |j        S )Nr   "nvmlVgpuInstanceGetEncoderCapacityrx  )rw  c_encoder_capacityr  rf  s       r  r  r    sM    $Q
!"F
G
GB
"\5!344
5
5CS##r  c                 8    t          d          } || |          S )N"nvmlVgpuInstanceSetEncoderCapacityr5  )rw  encoder_capacityr  s      r  r  r    s#    
!"F
G
GB2l,---r  c                     t          d          }t          d          } || t          |                    }t          |           |j        S )Nr   nvmlVgpuInstanceGetFbUsager  )rw  
c_fb_usager  rf  s       r  r  r    sK    J
!">
?
?B
"\5,,
-
-CSr  c                     t          d          }t          d          } || t          |          t          |                    }t	          |           |j        S )Nr   nvmlVgpuTypeGetCapabilities)r  rp  _nvmlVgpuCapability_tr  rg  r  )r  r  c_cap_resultr  rf  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  )rw  r  r  rf  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  rp  r  r  rg  r  )rw  c_vgpuPciIdr  rf  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  rL  rp  r  re  r2  r  rv  rg  r  )	r  r<  r[  r  r  r  rf  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  rL  r  r  r  r  rp  r  re  r2  r~  r  rg  r  )r  r<  r  c_vgpuUtilInfor  rf  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_trp  r  rg  r  )r  r  p2pIndexc_p2pstatusr  rf  s         r  r  r  -  sO    %''K	 !9	:	:B
"Wghk(:(:
;
;CSr  c                     t                      }t          d          } || t          |                    }t          |           |S )N&nvmlDeviceGetGridLicensableFeatures_v4)r  rp  r  rg  )r  c_get_grid_licensable_featuresr  rf  s       r  r  r  4  sJ    %F%H%H"	 !I	J	JB
"VU9::
;
;CS*+r  c                      t          |           S r(  )r  r	  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_SIZErp  rg  re  r  )r  r  isUserDefinedr  rf  s        r  r  r  ?  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defaultModer  isEnabledRefdefaultModeRefr  rf  s           r  r  r  H  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_trp  r  rg  r  )r  encoderQueryTyper  c_encoderQuery_typer  rf  s         r  r  r  Q  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  rp  r  re  r2  r  r  rg  r  )r  r<  r[  r  r  rf  r  r  s           r  r  r  Z  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  rp  r  re  r2  r  r  rg  r  )r  r<  r  c_vgpuProcUtilInfor  rf  r  r  s           r  r  r  s  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   nvmlDeviceGetEncoderStatsrx  )r  c_encoderCountc_encodeFpsc_encoderLatencyr  rf  s         r  r  r    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  rp  r  re  r  r  rg  rr  r  r  r  c_session_countr  rf  session_array
c_sessionssessionsrv  s           r  r  r    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r  rp  r  rg  )r  
c_fbcStatsr  rf  s       r  r  r    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  rp  r  re  r  r  rg  rr  r  r  r  s           r  r  r    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   nvmlVgpuInstanceGetEncoderStatsrx  )rw  r  r  r  r  rf  s         r  r  r    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   "nvmlVgpuInstanceGetEncoderSessionsr  rw  r  r  rf  r  r  r  rv  s           r  r  r    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nvmlVgpuInstanceGetFBCStatsr  )rw  r  r  rf  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   nvmlVgpuInstanceGetFBCSessionsr  r  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  rp  r  r2  r  r  rg  r  )r  r<  r  r  r  rf  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  rp  r  r2  r  r  rg  r  )r  r<  r  c_processesUtilInfor  rf  r  r  s           r  r  r  .  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   )rp  r  r  r  r2  rg  r  )rw  r  c_vgpuMetadatac_bufferSizerf  s        r  r  r  H  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   )rp  r  r  r  r2  rg  r  )r  r  c_vgpuPgpuMetadatar  rf  s        r  r  r  V  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)rp  r  r  rg  )vgpuMetadatapgpuMetadatar  c_vgpuPgpuCompatibilityrf  s        r  r  r  d  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   )	rp  r  r  r  r  r2  rg  r  r  )r  r  c_pgpuMetadatar  rf  s        r  r  r  k  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  rp  r  rg  )r  c_vgpu_sched_logr  rf  s       r  r  r  z  sJ    /11	 !@	A	AB
"VU+,,
-
-CSr  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlDeviceGetVgpuSchedulerState)r  rp  r  rg  )r  c_vgpu_sched_stater  rf  s       r  r"  r"    sJ    688	 !B	C	CB
"VU-..
/
/CSr  c                     t                      }t          d          } || t          |                    }t          |           |S )N&nvmlDeviceGetVgpuSchedulerCapabilities)r  rp  r  rg  )r  c_vgpu_sched_capsr  rf  s       r  r%  r%    sJ    9;;	 !I	J	JB
"VU,--
.
.CSr  c                 ~    t          d          } || t          |                    }t          |           t          S )NnvmlDeviceSetVgpuSchedulerStaterp  r  rg  re  )r  sched_stater  rf  s       r  r(  r(    s=    	 !B	C	CB
"VU;''
(
(CSr  c                 |    t          d          } |t          |                     }t          |           t          S )NnvmlSetVgpuVersionr)  )vgpuVersionr  rf  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  rp  r  rg  re  r  r  )	supportedr  r  r  rf  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!nvmlVgpuInstanceGetAccountingModerI  r  s       r  r2  r2    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  rp  r  r2  r  rg  r  )rw  
c_pidCountr  rf  r  
c_pidArrays         r  r4  r4    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)rx  rp  r  rg  )rw  r  c_accountingStatsr  rf  s        r  r8  r8    sL    /11	 !E	F	FB
"\3&7 8 8
9
9CSr  c                 b    t          d          } ||           }t          |           t          S )N#nvmlVgpuInstanceClearAccountingPidsr  )rw  r  rf  s      r  r;  r;    s3    	 !F	G	GB
"\

CSr  c                 >   d|_         t          d          } || t          |                    }|t          k    r|S |t          k    rHt
          |j         z  } |            |_         || t          |                    }t          |           |S t          |          )Nr    nvmlGpuInstanceGetCreatableVgpus)	r  rp  r  re  r2  rY  r  rg  r  )r  c_vgpusr  rf  r\  s        r  r=  r=    s    G
!"D
E
EB
"[%..
)
)C|
-
-
-/'2CC1133beGnn--nnr  c                     t                      }t          |_        | |_        t	          d          } |t          |                    }t          |           |j        S )N)nvmlVgpuTypeGetMaxInstancesPerGpuInstance)r  nvmlVgpuTypeMaxInstance_v1r  r  rp  r  rg  r  )r  rI  r  rf  s       r  r@  r@    sY    466O8O!+O
!"M
N
NB
"U?##
$
$CS++r  c                 X   t          d          |_        t          d          } || t          |                    }|t          k    r|S |t
          k    rHt          |j        z  } |            |_         || t          |                    }t          |           |S t          |          )Nr   nvmlGpuInstanceGetActiveVgpus)
r  r  rp  r  re  r2  r|  r  rg  r  )r  c_vgpu_instance_infor  rf  r  s        r  rC  rC    s    %+AYY"
!"A
B
BB
"[% 455
6
6C|##
-
-
-14H4RR-@-@-B-B* be$899::##nnr  c                 t    t          d          } || t          |                    }t          |           |S )N$nvmlGpuInstanceSetVgpuSchedulerStater  )r  r*  r  rf  s       r  rF  rF    s<    	 !G	H	HB
"[%,,
-
-CSJr  c                 t    t          d          } || t          |                    }t          |           |S )N$nvmlGpuInstanceGetVgpuSchedulerStater  )r  c_vgpu_sched_state_infor  rf  s       r  rH  rH    s>    	 !G	H	HB
"[% 788
9
9CS""r  c                 t    t          d          } || t          |                    }t          |           |S )N"nvmlGpuInstanceGetVgpuSchedulerLogr  )r  c_vgpu_sched_log_infor  rf  s       r  rK  rK    s>    	 !E	F	FB
"[% 566
7
7CS  r  c                    t                      }t          |_        |j        |_        t	          d          } |t          |                    }t          |           |j        |_        t          |j        z  } |            |_
        t	          d          } || t          |                    }t          |           |S )Nr@  -nvmlGpuInstanceGetVgpuTypeCreatablePlacements)r  rA  r  r  rp  r  rg  r  r  r  rn  )r  rJ  rI  r  rf  rK  s         r  rN  rN    s    466O8O!2!=O
!"M
N
NB
"U?##
$
$CS->O<<L%1\^^"
!"Q
R
RB
"[% 122
3
3CSr  c                     t          d          }t          |_        t          d          } || t	          |                    }t          |           |j        S )Nr   'nvmlGpuInstanceGetVgpuHeterogeneousModer9  )r  r;  r  rf  s       r  rP  rP    sX    >qAA&>#	 !J	K	KB
"[% 788
9
9CS"''r  c                     t          d          }t          |_        ||_        t	          d          } || t          |                    }t          |           t          S )Nr   'nvmlGpuInstanceSetVgpuHeterogeneousModer>  )r  r?  r;  r  rf  s        r  rR  rR  $  s^    >qAA&>##5 	 !J	K	KB
"[% 788
9
9CSr  c                      t                      } t          d          } |t          |                     }t          |           | j        S )NnvmlGetExcludedDeviceCountr  r  s      r  rT  rT  -  sD    hhG	 !=	>	>B
"U7^^

CS=r  c                     t          |           }t                      }t          d          } ||t          |                    }t	          |           |S )N nvmlGetExcludedDeviceInfoByIndex)r  r  rp  r  rg  )r3  r  infor  rf  s        r  rV  rV  4  sP    UmmG%''D	 !C	D	DB
"WeDkk
"
"CSKr  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetHostVgpuMode)_nvmlHostVgpuMode_trp  r  rg  r  )r  c_host_vgpu_moder  rf  s       r  rY  rY  <  sM    *,,	 !<	=	=B
"VU+,,
-
-CS!!r  c                     t                      }t          d          } || |t          |                    }t          |           |j        S )NnvmlDeviceSetMigModer  )r  r  c_activationStatusr  rf  s        r  r]  r]  C  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  rf  s        r  r`  r`  J  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)r   rp  r  r  r8  r  rg  )r  profiler  r  r  rf  s         r  re  re  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          |           |S )N(nvmlDeviceGetGpuInstanceProfileInfoByIdV)r   rp  r  rg  )r  r  r  r  rf  s        r  'nvmlDeviceGetGpuInstanceProfileInfoByIdri  _  sG    .00F	 !K	L	LB
"VYf
.
.CSMr  c                     t                      }t          d          } || |t          |                    }t          |           |j        S )N)nvmlDeviceGetGpuInstanceRemainingCapacityr  )r  r  r  r  rf  s        r  rk  rk  k  sH    hhG	 !L	M	MB
"VYg
/
/CS=r  c                 h    t          d          } || |||          }t          |           t          S )N-nvmlDeviceGetGpuInstancePossiblePlacements_v2r  )r  r  placementsRefcountRefr  rf  s         r  *nvmlDeviceGetGpuInstancePossiblePlacementsrp  r  s9    	 !P	Q	QB
"VYx
8
8CSr  c                     t                      }t          d          } || |t          |                    }t          |           |S )NnvmlDeviceCreateGpuInstancer  rp  r  rg  )r  r  
c_instancer  rf  s        r  rr  rr  x  sJ    $&&J	 !>	?	?B
"VYj 1 1
2
2CSr  c                     t                      }t          d          } || ||t          |                    }t          |           |S )N(nvmlDeviceCreateGpuInstanceWithPlacementrs  )r  r  r  rt  r  rf  s         r  rv  rv    sL    $&&J	 !K	L	LB
"VY	5+<+<
=
=CSr  c                 b    t          d          } ||           }t          |           t          S )NnvmlGpuInstanceDestroyr  )r  r  rf  s      r  rx  rx    s1    	 !9	:	:B
"[//CSr  c                 h    t          d          } || |||          }t          |           t          S )NnvmlDeviceGetGpuInstancesr  )r  r  gpuInstancesRefro  r  rf  s         r  rz  rz    s9    	 !<	=	=B
"VY
:
:CSr  c                     t                      }t          d          } || |t          |                    }t          |           |S )NnvmlDeviceGetGpuInstanceByIdrs  )r  r	  rt  r  rf  s        r  r}  r}    sJ    $&&J	 !?	@	@B
"V]E*$5$5
6
6CSr  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlGpuInstanceGetInfo)r  rp  r  rg  )r  r  r  rf  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)r  rp  r  r  r8  r  rg  )r  rf  
engProfiler  r  r  rf  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  )r  r  r  r  rf  s        r  r  r    sH    hhG	 !U	V	VB
"[)U7^^
4
4CS=r  c                 h    t          d          } || |||          }t          |           t          S )N3nvmlGpuInstanceGetComputeInstancePossiblePlacementsr  )r  r  rn  ro  r  rf  s         r  r  r    s9    	 !V	W	WB
"[)]H
=
=CSr  c                     t                      }t          d          } || |t          |                    }t          |           |S )N$nvmlGpuInstanceCreateComputeInstancec_nvmlComputeInstance_trp  r  rg  )r  r  rt  r  rf  s        r  r  r    sJ    (**J	 !G	H	HB
"[)U:%6%6
7
7CSr  c                     t                      }t          d          } || ||t          |                    }t          |           |S )N1nvmlGpuInstanceCreateComputeInstanceWithPlacementr  )r  r  r  rt  r  rf  s         r  r  r    sL    (**J	 !T	U	UB
"[)Yj0A0A
B
BCSr  c                 b    t          d          } ||           }t          |           t          S )NnvmlComputeInstanceDestroyr  )computeInstancer  rf  s      r  r  r    s3    	 !=	>	>B
"_

CSr  c                 h    t          d          } || |||          }t          |           t          S )N"nvmlGpuInstanceGetComputeInstancesr  )r  r  computeInstancesRefro  r  rf  s         r  r  r    s:    	 !E	F	FB
"[)%8(
C
CCSr  c                     t                      }t          d          } || |t          |                    }t          |           |S )N%nvmlGpuInstanceGetComputeInstanceByIdr  )r  r
  rt  r  rf  s        r  r  r    sK    (**J	 !H	I	IB
"[+U:->->
?
?CSr  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlComputeInstanceGetInfo_v2)r  rp  r  rg  )r  r  r  rf  s       r  r  r    sE    (**F	 !@	A	AB
"_eFmm
,
,CSMr  c                      t          |           S r(  )r  )r  s    r  nvmlComputeInstanceGetInfor    s    (999r  c                     t                      }t          d          } || t          |                    }t          |           |S )NnvmlDeviceIsMigDeviceHandle)r  rp  r  rg  )r  c_isMigDevicer  rf  s       r  r  r    sF    HHM	 !>	?	?B
"VU=))
*
*CSr  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetGpuInstanceIdr  )r  c_gpuInstanceIdr  rf  s       r  r  r    sI    hhO	 !=	>	>B
"VU?++
,
,CS  r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetComputeInstanceIdr  )r  c_computeInstanceIdr  rf  s       r  r  r    sK     ((	 !A	B	BB
"VU.//
0
0CS$$r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetMaxMigDeviceCountr  )r  r  r  rf  s       r  r  r    F    hhG	 !A	B	BB
"VU7^^
$
$CS=r  c                     t          |          }t                      }t          d          } || |t          |                    }t	          |           |S )N#nvmlDeviceGetMigDeviceHandleByIndexr  )r  r3  r  	migDevicer  rf  s         r  r  r    sU    UmmG  I	 !F	G	GB
"VWeI..
/
/CSr  c                     t                      }t          d          } || t          |                    }t          |           |S )N,nvmlDeviceGetDeviceHandleFromMigDeviceHandle)r>  rp  r  rg  )r  r  r  rf  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?  rp  r  rg  )r  c_attrsr  rf  s       r  r  r    sE    $&&G	 !=	>	>B
"VU7^^
$
$CSNr  c                      t          |           S r(  )r  )r  s    r  nvmlDeviceGetAttributesr    r
  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_bfailurerf  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)rC  rp  r  rg  )r  c_valsr  rf  s       r  r  r  '  sE    -//F	 !D	E	EB
"VU6]]
#
#CSMr  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetArchitecture)_nvmlDeviceArchitecture_trp  r  rg  r  )r  archr  rf  s       r  r  r  .  sH    $&&D	 !<	=	=B
"VU4[[
!
!CS:r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetBusType)_nvmlBusType_trp  r  rg  r  )r  	c_busTyper  rf  s       r  r  r  5  sJ      I	 !7	8	8B
"VU9%%
&
&CS?r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetIrqNumr  )r  c_irqNumr  rf  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  rf  s       r  r  r  C  sI    J	 !;	<	<B
"VU:&&
'
'CSr  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetPowerSource)_nvmlPowerSource_trp  r  rg  r  )r  c_powerSourcer  rf  s       r  r  r  J  sK    &((M	 !;	<	<B
"VU=))
*
*CSr  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetMemoryBusWidthr  )r  c_memBusWidthr  rf  s       r  r  r  Q  sI    HHM	 !>	?	?B
"VU=))
*
*CSr  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetPcieLinkMaxSpeed)_nvmlPcieLinkMaxSpeed_trp  r  rg  r  r  rt  r  rf  s       r  r  r  X  sH    %''G	 !@	A	AB
"VU7^^
$
$CS=r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )N$nvmlDeviceGetAdaptiveClockInfoStatus)_nvmlAdaptiveClockInfoStatus_trp  r  rg  r  )r  c_adaptiveClockInfoStatusr  rf  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  f  sF    hhG	 !9	:	:B
"VU7^^
$
$CS=r  c                     t          |          t          u}|r|nt          |          }t          d          } || |          }t	          |           |rt
          n|S )NnvmlDeviceGetDynamicPstatesInfo)r[  r"  r  rp  rg  re  )r  c_dynamicpstatesinfor  dynamicpstatesinfoRefr  rf  s         r  r  r  m  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  r3  r  r  rf  s        r  r  r  v  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)r[  r.  r  rp  rg  re  r/  )r  sensorindexc_thermalsettingsr  thermalsettingsRefr  rf  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)r[  r  r  rp  r[  rg  re  r  )
r  	clockTypepstateminClockMHzmaxClockMHzr  minClockMHzRefmaxClockMHzRefr  rf  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                   $    e Zd ZdefdefdefgZdS ) c_nvmlDevicePowerMizerModes_v1_tcurrentModer  supportedPowerMizerModesN)r  r  r  _nvmlPowerMizerMode_trz  r  r  r  r  r    s0        	-.	&'	#%:;HHHr  r  c                 <    t          d          } || |          }|S )NnvmlDeviceGetPowerMizerMode_v1r5  r  rW  r  rf  s       r  r  r    &    	 !A	B	BB
"VT

CJr  c                 <    t          d          } || |          }|S )NnvmlDeviceSetPowerMizerMode_v1r5  r  s       r  r  r    r  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_nvmlClockOffset_tr  r[  r  clockOffsetMHzminClockOffsetMHzmaxClockOffsetMHzN)r  r  r  r  r[  r  r8  rz  r  r  r  r  r    sF        	F	!"	>"	5!	e$	e$HHHr  r  c                 F    t          d          } || |          }t          S )NnvmlDeviceGetClockOffsetsrp  re  r  s       r  r  r    '    	 !<	=	=B
"VT

Cr  c                 F    t          d          } || |          }t          S )NnvmlDeviceSetClockOffsetsr  r  s       r  r 	  r 	    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  rp  rg  NVML_PSTATE_UNKNOWNr  )	r  pstatesr  c_sizepstates_array	c_pstatesr  rf  r  s	            r  r	  r	    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(  rp  r  rg  r  r  offsetr  rf  s       r  r	  r	    F    YYF	 !>	?	?B
"VU6]]
#
#CS<r  c                     t          |          }t          d          } || |          }t          |           t          S )NnvmlDeviceSetGpcClkVfOffsetr(  rp  rg  re  r  r	  c_offsetr  rf  s        r  r	  r	    @    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r[  r8  r  rp  rg  re  r  r  	minOffset	maxOffsetr  minOffsetRefmaxOffsetRefr  rf  s           r  r	  r	    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  r	  r	    r	  r  c                     t          |          }t          d          } || |          }t          |           t          S )NnvmlDeviceSetMemClkVfOffsetr	  r	  s        r  r!	  r!	    r	  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!nvmlDeviceGetMemClkMinMaxVfOffsetr	  r	  s           r  r#	  r#	    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  rp  rg  re  )r  r  r  rf  s       r  r%	  r%	    s<    UmmG	 !I	J	JB
"W++CSr  c                      t                      } t          d          } |t          |                     }t          |           | j        S )N&nvmlSystemGetConfComputeGpusReadyStater  r  r  rf  s      r  r(	  r(	    sD    hhG	 !I	J	JB
"U7^^

CS=r  c                      t                      } t          d          } |t          |                     }t          |           | S )N$nvmlSystemGetConfComputeCapabilities)rT  rp  r  rg  )c_ccSysCapsr  rf  s      r  r+	  r+	    sF    /11K	 !G	H	HB
"U;
 
 CSr  c                      t                      } t          d          } |t          |                     }t          |           | S )NnvmlSystemGetConfComputeState)rJ  rp  r  rg  r)	  s      r  r.	  r.	    sC    ,..G	 !@	A	AB
"U7^^

CSNr  c                 6    t          d          } ||           S )N nvmlSystemGetConfComputeSettingsr5  )settingsr  s     r  r0	  r0	    s    	 !C	D	DB2h<<r  c                 d    t          d          } || |          }t          |           t          S )N*nvmlDeviceSetConfComputeUnprotectedMemSizer  r  c_ccMemSizer  rf  s       r  r3	  r3	    s5    	 !M	N	NB
"V[
!
!CSr  c                     t                      }t          d          } || t          |                    }t          |           |S )N#nvmlDeviceGetConfComputeMemSizeInfo)rX  rp  r  rg  r4	  s       r  r7	  r7	  $  sH    022K	 !F	G	GB
"VU;''
(
(CSr  c                     t                      }t          d          } || t          |                    }t          |           |S )N,nvmlDeviceGetConfComputeProtectedMemoryUsage)r  rp  r  rg  )r  r  r  rf  s       r  r9	  r9	  +  sE    H	 !O	P	PB
"VU8__
%
%CSOr  c                     t                      }t          d          } || t          |                    }t          |           |S )N&nvmlDeviceGetConfComputeGpuCertificate)r\  rp  r  rg  )r  c_certr  rf  s       r  r;	  r;	  2  sE    .00F	 !I	J	JB
"VU6]]
#
#CSMr  c                     t                      }t          t          |          z  | }t          |d|           t	          d          } || t          |                    }t          |           |S )Nrh  ,nvmlDeviceGetConfComputeGpuAttestationReport)rd  rW  r%  r\  rp  r  rg  )r  c_noncec_attestReportc_nonce_arrr  rf  s         r  r>	  r>	  9  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)ro  )ConfComputeSetKeyRotationThresholdInfo_v1r  rp  rp  r  rg  re  )max_atk_advc_keyRotationThrInfor  rf  s       r  rC	  rC	  B  s\    I!LL#L 0;-	 !S	T	TB
"U'((
)
)CSr  c                      t          d          } t          | _        t          d          } |t	          |                     }t          |           | S )Nr   0nvmlSystemGetConfComputeKeyRotationThresholdInfo)rs  )ConfComputeGetKeyRotationThresholdInfo_v1r  rp  r  rg  )rF	  r  rf  s      r  rH	  rH	  K  sS    I!LL#L 	 !S	T	TB
"U'((
)
)CS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   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  rL	  rL	    r  r  rL	  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  rz  r  r  r  rN	  rN	    s-        	h	X	HHHr  rN	  c                   *    e Zd ZdefdefdefdefgZdS )c_nvmlGpmMetric_tmetricIdrI  r  
metricInfoN)r  r  r  r  rM  r5  rN	  rz  r  r  r  rR	  rR	  $  s5        	V	}%	(	~&	HHHr  rR	  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_trR	  NVML_GPM_METRIC_MAXrz  r  r  r  rV	  rV	  ,  sF        	F	v	%&	%&	%(;;<HHHr  rV	  c                       e Zd ZdefdefgZdS )c_nvmlGpmSupport_tr  isSupportedDeviceNr  r  r  r  r^	  r^	  7  s%        	F	f%HHHr  r^	  c                 r    t          d          } |t          |                     }t          |           | S )NnvmlGpmMetricsGetr  )
metricsGetr  rf  s      r  ra	  ra	  A  s;    	 !4	5	5B
"U:

CSr  c                 X    t          d          } ||           }t          |           d S )NnvmlGpmSampleFreer^  	gpmSampler  rf  s      r  rd	  rd	  G  s0    	 !4	5	5B
"Y--CS
Fr  c                      t                      } t          d          } |t          |                     }t          |           | S )NnvmlGpmSampleAlloc)r[	  rp  r  rg  re	  s      r  rh	  rh	  M  sF    !##I	 !5	6	6B
"U9

CSr  c                 Z    t          d          } || |          }t          |           |S )NnvmlGpmSampleGetr^  )r  rf	  r  rf  s       r  rj	  rj	  T  s5    	 !3	4	4B
"VY

CSr  c                 \    t          d          } || ||          }t          |           |S )NnvmlGpmMigSampleGetr^  )r  r	  rf	  r  rf  s        r  rl	  rl	  Z  s7    	 !6	7	7B
"V]I
.
.CSr  c                     t                      }t          |_        t          d          } || t	          |                    }t          |           |S )NnvmlGpmQueryDeviceSupport)r^	  NVML_GPM_SUPPORT_VERSIONr  rp  r  rg  )r  
gpmSupportr  rf  s       r  rn	  rn	  `  sP    #%%J1J	 !<	=	=B
"VU:&&
'
'CSr  c                     t          |          }t          d          } || |          }t          |           t          S )NnvmlGpmSetStreamingEnabledr&	  )r  r  r  r  rf  s        r  rr	  rr	  h  s@    UmmG	 !=	>	>B
"VW

CSr  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlGpmQueryIfStreamingEnabledr  )r  r  r  rf  s       r  rt	  rt	  o  r  r  i  c                       e Zd ZdefgZdS )c_nvmlNvLinkPowerThres_tlowPwrThresholdNr  r  r  r  rv	  rv	    s        	F#HHHr  rv	  c                     t                      }||_        t          d          } || t          |                    }t	          |           t
          S )N*nvmlDeviceSetNvLinkDeviceLowPowerThreshold)rv	  rw	  rp  r  rg  re  )r  l1thresholdr  r  rf  s        r  ry	  ry	    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  rW  r  rM  rJ  _nvmlGpuFabricState_trz  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_nvmlGpuFabricInfo_v2_tr  r}	  r  r~	  r  
healthMaskc                 d    t          t          |                               t                     d S rS  )r  r	  ru  nvmlGpuFabricInfo_v2rU  s    r  ru  z!c_nvmlGpuFabricInfo_v2_t.__init__  ,    &--66?S6TTTTTr  r  r  r  r  rW  NVML_GPU_FABRIC_UUID_LENrM  rJ  r	  rz  ru  r  r  s   @r  r	  r	    s        	F	"::;	=!	X	'(	x HU U U U U U U U Ur  r	  c                   R     e Zd Z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	 fdZ
 xZS )	c_nvmlGpuFabricInfo_v3_tr  r}	  r  r~	  r  r	  healthSummaryc                 d    t          t          |                               t                     d S rS  )r  r	  ru  nvmlGpuFabricInfo_v3rU  s    r  ru  z!c_nvmlGpuFabricInfo_v3_t.__init__  r	  r  r	  r  s   @r  r	  r	    s        	F	"::;	=!	X	'(	x 	'"HU U U U U U U U Ur  r	  i(  c                 d    t          d          } || |          }t          |           t          S )NnvmlDeviceGetGpuFabricInfor  r  gpuFabricInfor  rf  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  rf  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_trz  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	  rp  r  re  )r  r	  
powerLimitr  c_powerScopec_powerValuer  rf  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 rS  )r  r	  ru  nvmlEccSramErrorStatus_v1rU  s    r  ru  z&c_nvmlEccSramErrorStatus_v1_t.__init__5  r6  r  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  rf  s       r  r	  r	  9  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 rS  )r  r	  ru  nvmlDeviceCapabilities_v1rU  s    r  ru  z&c_nvmlDeviceCapabilities_v1_t.__init__H  r6  r  r  r  s   @r  r	  r	  B  sX        	F	FH
_ _ _ _ _ _ _ _ _r  r	  c                 8    t          d          } || |          S )NnvmlDeviceGetCapabilitiesr5  )r  capsr  s      r  r	  r	  L  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peerTyper  c                 d    t          t          |                               t                     d S rS  )r  r	  ru  nvmlPlatformInfo_v1rU  s    r  ru  z c_nvmlPlatformInfo_v1_t.__init__\  ,    %t,,55>Q5RRRRRr  r  r  r  r  r  rz  ru  r  r  s   @r  r	  r	  P  s        	F	6B;	Vb[!	$f-	V$	f	V	V	HS S S S S S S S Sr  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_v2_tr  r	  r   chassisSerialNumber
slotNumber	trayIndexhostIdr	  r  c                 d    t          t          |                               t                     d S rS  )r  r	  ru  nvmlPlatformInfo_v2rU  s    r  ru  z c_nvmlPlatformInfo_v2_t.__init__k  r	  r  r	  r  s   @r  r	  r	  _  s        	F	6B;	,	v	f	6	V	V	HS S S S S S S S Sr  r	  i,  i,  c                 d    t          d          } || |          }t          |           t          S )NnvmlDeviceGetPlatformInfor  )r  platformInfor  rf  s       r  r	  r	  q  s5    	 !<	=	=B
"V\
"
"CSr  c                       e Zd Zdeez  fgZdS )c_nvmlHostname_v1_tr  N)r  r  r  r   NVML_DEVICE_HOSTNAME_BUFFER_SIZErz  r  r  r  r	  r	  y  s#        	&;;<HHHr  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  r  priorityconflictingmaskc                 d    t          t          |                               t                     d S rS  )r  r	  ru  nvmlWorkloadPowerProfileInfo_v1rU  s    r  ru  z,c_nvmlWorkloadPowerProfileInfo_v1_t.__init__  s,    1488AAJiAjjjjjr  r  r  r  r  r	  rz  ru  r  r  s   @r  r	  r	    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 rS  )r  r	  ru  'nvmlWorkloadPowerProfileProfilesInfo_v1rU  s    r  ru  z4c_nvmlWorkloadPowerProfileProfilesInfo_v1_t.__init__  s,    94@@IIRyIzzzzzr  )
r  r  r  r  r	  r	   NVML_WORKLOAD_POWER_MAX_PROFILESrz  ru  r  r  s   @r  r	  r	    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 rS  )r  r	  ru  *nvmlWorkloadPowerProfileCurrentProfiles_v1rU  s    r  ru  z7c_nvmlWorkloadPowerProfileCurrentProfiles_v1_t.__init__  ;    <dCCLLUL  	A  	A  	A  	A  	Ar  r	  r  s   @r  r	  r	    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 rS  )r  r	  ru  ,nvmlWorkloadPowerProfileRequestedProfiles_v1rU  s    r  ru  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	    sX        	F	 /2H
E E E E E E E E Er  r	  c                       e Zd ZdefdefgZdS )-c_nvmlWorkloadPowerProfileUpdateProfiles_v1_t	operationupdateProfilesMaskN)r  r  r  r  r	  rz  r  r  r  r	  r	    s%        	f	/HHHr  r	  c                 d    t          d          } || |          }t          |           t          S )N-nvmlDeviceWorkloadPowerProfileGetProfilesInfor  )r  profilesInfor  rf  s       r  r	  r	    s5    	 !P	Q	QB
"V\
"
"CSr  c                 d    t          d          } || |          }t          |           t          S )N0nvmlDeviceWorkloadPowerProfileGetCurrentProfilesr  )r  currentProfilesr  rf  s       r  r	  r	    s5    	 !S	T	TB
"V_
%
%CSr  c                 d    t          d          } || |          }t          |           t          S )N2nvmlDeviceWorkloadPowerProfileSetRequestedProfilesr  r  requestedProfilesr  rf  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/nvmlDeviceWorkloadPowerProfileUpdateProfiles_v1r  )r  updateProfilesr  rf  s       r  r
  r
    s5    	 !R	S	SB
"V^
$
$CSr  c                 d    t          d          } || |          }t          |           t          S )N#nvmlDeviceGetNvlinkSupportedBwModesr  )r  supportedBwModesr  rf  s       r  r
  r
    s6    	 !F	G	GB
"V%
&
&CSr  c                 d    t          d          } || |          }t          |           t          S )NnvmlDeviceGetNvlinkBwModer  )r  	getBwModer  rf  s       r  r	
  r	
    5    	 !<	=	=B
"VY

CSr  c                 d    t          d          } || |          }t          |           t          S )NnvmlDeviceSetNvlinkBwModer  )r  	setBwModer  rf  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 rS  )r  r
  ru  nvmlDramEncryptionInfo_v1rU  s    r  ru  z#c_nvmlDramEncryptionInfo_t.__init__  s,    ($//88AZ8[[[[[r  )r  r  r  r  rJ  rz  ru  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
  rp  r  rg  r
  r  s        r  r
  r
  	  sh    ,..K/11N	 !B	C	CB
"VU;''~)>)>
?
?CS')GHHr  c                 ,    t          |           d         S ry  r
  r	  s    r  &nvmlDeviceGetCurrentDramEncryptionModer
        *622155r  c                 ,    t          |           d         S r  r
  r	  s    r  &nvmlDeviceGetPendingDramEncryptionModer
    r
  r  c                     t          d          }t                      }||_         || t          |                    }t	          |           d S )NnvmlDeviceSetDramEncryptionMode)rp  r
  r
  r  rg  )r  r  r  c_dramEncryptionModerf  s        r  r
  r
    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 rS  )r  r 
  ru  nvmlPowerSmoothingState_v1rU  s    r  ru  z'c_nvmlPowerSmoothingState_v1_t.__init__5  s,    ,d33<<E_<`````r  r  r  s   @r  r 
  r 
  /  sX        	F	&H
a a a a a a a a ar  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_nvmlPowerSmoothingProfile_v1_tr  r  paramIdr  c                 d    t          t          |                               t                     d S rS  )r  r$
  ru  nvmlPowerSmoothingProfile_v1rU  s    r  ru  z)c_nvmlPowerSmoothingProfile_v1_t.__init__A  s,    .55>>Gc>dddddr  )r  r  r  r  r5  rz  ru  r  r  s   @r  r$
  r$
  9  sh        	F	f	F	(	He e e e e e e e er  r$
  c                 Z    t          d          } || |          }t          |           d S )N-nvmlDevicePowerSmoothingActivatePresetProfiler^  r  rf  r  rf  s       r  r)
  r)
  D  s5    	 !P	Q	QB
"VW

CSr  c                 Z    t          d          } || |          }t          |           d S )N0nvmlDevicePowerSmoothingUpdatePresetProfileParamr^  r*
  s       r  r,
  r,
  I  s5    	 !S	T	TB
"VW

CSr  c                 Z    t          d          } || |          }t          |           d S )N nvmlDevicePowerSmoothingSetStater^  )r  r  r  rf  s       r  r.
  r.
  N  s5    	 !C	D	DB
"VU

CS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_nvmlEccSramUniqueUncorrectedErrorEntry_v1_tr  locationsublocationextlocationr  isParityr  Nr  r  r  r  r0
  r0
  S  sM        		V			F	V	&HHHr  r0
  c                   F     e Zd Zdefdefd ee          fgZ fdZ xZS ).c_nvmlEccSramUniqueUncorrectedErrorCounts_v1_tr  
entryCountentriesc                 d    t          t          |                               t                     d S rS  )r  r6
  ru  *nvmlEccSramUniqueUncorrectedErrorCounts_v1rU  s    r  ru  z7c_nvmlEccSramUniqueUncorrectedErrorCounts_v1_t.__init__e  r	  r  )	r  r  r  r  r  r0
  rz  ru  r  r  s   @r  r6
  r6
  ^  sk        	F	v	GGIJJKHA A A A A A A A Ar  r6
  c                 d    t          d          } || |          }t          |           t          S )N0nvmlDeviceGetSramUniqueUncorrectedEccErrorCountsr  )r  countsr  rf  s       r  r<
  r<
  i  s5    	 !S	T	TB
"VV

CSr  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetPdi)r  rp  r  rg  r  )r  c_pdir  rf  s       r  r?
  r?
  o  sF    MME	 !3	4	4B
"VU5\\
"
"CS;r  c                 d    t          d          } || |          }t          |           t          S )NnvmlDeviceGetNvLinkInfor  r  s       r  rB
  rB
  v  s5    	 !:	;	;B
"VT

CSr  c                     t                      }t          d          } || t          |                    }t          |           |j        |j        gS )NnvmlDeviceGetRepairStatus)r  rp  r  rg  r  r  r  c_statusr  rf  s       r  rD
  rD
  |  sQ    #%%H	 !<	=	=B
"VU8__
%
%CS*H,FGGr  c                     t                      }t          d          }||_         || t          |                    }t	          |           d S )NnvmlDeviceSetHostname_v1)r	  rp  r  r  rg  )r  hostname
c_hostnamer  rf  s        r  rH
  rH
    sO    $&&J	 !;	<	<BJ
"VU:&&
'
'CS4r  c                     t                      }t          d          } || t          |                    }t          |           |j        S )NnvmlDeviceGetHostname_v1)r	  rp  r  rg  r  )r  rJ
  r  rf  s       r  rL
  rL
    sK    $&&J	 !;	<	<B
"VU:&&
'
'CSr  c                     t                      }t          d          } || t          |                    }t          |           |j        S )N&nvmlDeviceGetUnrepairableMemoryFlag_v1)r2  rp  r  rg  r3  rE
  s       r  rN
  rN
    sI    ,..H	 !I	J	JB
"VU8__
%
%CS&&r  l    c                   6     e Zd ZdefdefgZddiZ fdZ xZS )c_nvmlRusdSettings_v1_tr  pollMaskz0x%016Xc                 n    t          t          |                                            t          | _        d S r(  )r  rP
  ru  nvmlRusdSettings_v1r  rU  s    r  ru  z c_nvmlRusdSettings_v1_t.__init__  s+    %t,,55777*r  )	r  r  r  r  r  rz  r  ru  r  r  s   @r  rP
  rP
    s[        	F	[!H #E+ + + + + + + + +r  rP
  c                 t    t          d          } || t          |                    }t          |           d S )NnvmlDeviceSetRusdSettings_v1r  )r  r1	  r  rf  s       r  rU
  rU
    s;    	 !?	@	@B
"VU8__
%
%CSr  r(  )r   r   )NN(  ctypesctypes.utilr   	functoolsr   rT  r  	threadingrW  r  rJ  NVML_FEATURE_DISABLEDNVML_FEATURE_ENABLEDr  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_COUNTr  NVML_COMPUTEMODE_DEFAULT!NVML_COMPUTEMODE_EXCLUSIVE_THREADNVML_COMPUTEMODE_PROHIBITED"NVML_COMPUTEMODE_EXCLUSIVE_PROCESSNVML_COMPUTEMODE_COUNTr  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_COUNTr  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_COUNTr  NVML_VOLATILE_ECCNVML_AGGREGATE_ECCNVML_ECC_COUNTER_TYPE_COUNTr   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_COUNTrf  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_COUNTr  NVML_DRIVER_WDDMNVML_DRIVER_WDMNVML_DRIVER_MCDMr	  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_15r	  r9  NVML_INFOROM_OEMNVML_INFOROM_ECCNVML_INFOROM_POWERNVML_INFOROM_DENNVML_INFOROM_COUNTrM  re  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  NVML_ERROR_IN_USEr>  NVML_ERROR_NO_DATA!NVML_ERROR_VGPU_ECC_NOT_SUPPORTED!NVML_ERROR_INSUFFICIENT_RESOURCESNVML_ERROR_FREQ_NOT_SUPPORTEDrm  NVML_ERROR_DEPRECATEDNVML_ERROR_NOT_READYNVML_ERROR_GPU_NOT_FOUNDNVML_ERROR_INVALID_STATE#NVML_ERROR_RESET_TYPE_NOT_SUPPORTEDr?  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_BRIDGErL  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_COUNTr  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_COUNTr  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_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_MAXr  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_INIT_FLAG_FORCE_INITNVML_MAX_GPC_COUNTr8  r  r5  r  r  rh  r  r  r  'NVML_DEVICE_GPU_PART_NUMBER_BUFFER_SIZEr  r  r  r  r  r  r	  r  r  +NVML_DEVICE_GPU_FRU_PART_NUMBER_BUFFER_SIZEr  !NVML_DEVICE_PCI_BUS_ID_LEGACY_FMTNVML_DEVICE_PCI_BUS_ID_FMTr  r!  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_C2C_LINK_ERROR_INTR!NVML_FI_DEV_C2C_LINK_ERROR_REPLAY%NVML_FI_DEV_C2C_LINK_ERROR_REPLAY_B2B NVML_FI_DEV_C2C_LINK_POWER_STATE&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_DEV_CLOCKS_EVENT_REASON_SW_POWER_CAP*NVML_FI_DEV_CLOCKS_EVENT_REASON_SYNC_BOOST1NVML_FI_DEV_CLOCKS_EVENT_REASON_SW_THERM_SLOWDOWN1NVML_FI_DEV_CLOCKS_EVENT_REASON_HW_THERM_SLOWDOWN7NVML_FI_DEV_CLOCKS_EVENT_REASON_HW_POWER_BRAKE_SLOWDOWN%NVML_FI_DEV_POWER_SYNC_BALANCING_FREQ#NVML_FI_DEV_POWER_SYNC_BALANCING_AFNVML_FI_DEV_EDPP_MULTIPLIER)NVML_FI_PWR_SMOOTHING_PRIMARY_POWER_FLOOR+NVML_FI_PWR_SMOOTHING_SECONDARY_POWER_FLOOR2NVML_FI_PWR_SMOOTHING_MIN_PRIMARY_FLOOR_ACT_OFFSET1NVML_FI_PWR_SMOOTHING_MIN_PRIMARY_FLOOR_ACT_POINT'NVML_FI_PWR_SMOOTHING_WINDOW_MULTIPLIER5NVML_FI_PWR_SMOOTHING_DELAYED_PWR_SMOOTHING_SUPPORTED3NVML_FI_PWR_SMOOTHING_PROFILE_SECONDARY_POWER_FLOOR8NVML_FI_PWR_SMOOTHING_PROFILE_PRIMARY_FLOOR_ACT_WIN_MULT8NVML_FI_PWR_SMOOTHING_PROFILE_PRIMARY_FLOOR_TAR_WIN_MULT6NVML_FI_PWR_SMOOTHING_PROFILE_PRIMARY_FLOOR_ACT_OFFSET:NVML_FI_PWR_SMOOTHING_ADMIN_OVERRIDE_SECONDARY_POWER_FLOOR?NVML_FI_PWR_SMOOTHING_ADMIN_OVERRIDE_PRIMARY_FLOOR_ACT_WIN_MULT?NVML_FI_PWR_SMOOTHING_ADMIN_OVERRIDE_PRIMARY_FLOOR_TAR_WIN_MULT=NVML_FI_PWR_SMOOTHING_ADMIN_OVERRIDE_PRIMARY_FLOOR_ACT_OFFSET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_C2C_POWER_STATE_FULL_POWERNVML_C2C_POWER_STATE_LOW_POWER!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_VSGArl  Lockrj  r  rY  r|  _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_COMPUTErW  _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_COUNTrP  -NVML_VGPU_DRIVER_CAP_HETEROGENEOUS_MULTI_VGPU NVML_VGPU_DRIVER_CAP_WARM_UPDATENVML_VGPU_DRIVER_CAP_COUNTrS  *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_MIG_TIMESLICING_SUPPORTED,NVML_DEVICE_VGPU_CAP_MIG_TIMESLICING_ENABLED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_OTHERrZ  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_MULTIGPU_NVLE&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  rC  rc  rg  r+  ri  rp  objectrr  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  r(  c_nvmlProcessInfo_tr  NVML_PROCESS_MODE_COMPUTENVML_PROCESS_MODE_GRAPHICSNVML_PROCESS_MODE_MPSr  r  r:  nvmlProcessDetailList_v1r  r  r  r&  r*  Unionr-  r;  r?  rC  rX  rT  rO  r^  rZ  re  rb  rg  r:  ri  rB  rl  rH  !NVML_VGPU_PGPU_HETEROGENEOUS_MODENVML_VGPU_PGPU_HOMOGENEOUS_MODErq  rG  rs  r  rv  r~  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  r  r  r  r  r  r  r  r  r  r  r  r  r  r  NVML_UUID_TYPE_NONEr  r  r  r  r  r  r  r  r  r  r  #NVML_NVLINK_FIRMWARE_UCODE_TYPE_MSE%NVML_NVLINK_FIRMWARE_UCODE_TYPE_NETIR*NVML_NVLINK_FIRMWARE_UCODE_TYPE_NETIR_UPHY)NVML_NVLINK_FIRMWARE_UCODE_TYPE_NETIR_CLN)NVML_NVLINK_FIRMWARE_UCODE_TYPE_NETIR_DLNr  r  r  r  r  r  r  r
   NVML_DEVICE_ADDRESSING_MODE_NONENVML_DEVICE_ADDRESSING_MODE_HMMNVML_DEVICE_ADDRESSING_MODE_ATSr  r  r'  >NVML_PRM_COUNTER_ID_PPCNT_PHYSICAL_LAYER_CTRS_LINK_DOWN_EVENTSHNVML_PRM_COUNTER_ID_PPCNT_PHYSICAL_LAYER_CTRS_SUCCESSFUL_RECOVERY_EVENTSHNVML_PRM_COUNTER_ID_PPCNT_RECOVERY_CTRS_TOTAL_SUCCESSFUL_RECOVERY_EVENTS@NVML_PRM_COUNTER_ID_PPCNT_RECOVERY_CTRS_TIME_SINCE_LAST_RECOVERYHNVML_PRM_COUNTER_ID_PPCNT_RECOVERY_CTRS_TIME_BETWEEN_LAST_TWO_RECOVERIES5NVML_PRM_COUNTER_ID_PPCNT_PORTCOUNTERS_PORT_XMIT_WAIT'NVML_PRM_COUNTER_ID_PPCNT_PLR_RCV_CODES*NVML_PRM_COUNTER_ID_PPCNT_PLR_RCV_CODE_ERR4NVML_PRM_COUNTER_ID_PPCNT_PLR_RCV_UNCORRECTABLE_CODE(NVML_PRM_COUNTER_ID_PPCNT_PLR_XMIT_CODES.NVML_PRM_COUNTER_ID_PPCNT_PLR_XMIT_RETRY_CODES/NVML_PRM_COUNTER_ID_PPCNT_PLR_XMIT_RETRY_EVENTS)NVML_PRM_COUNTER_ID_PPCNT_PLR_SYNC_EVENTS&NVML_PRM_COUNTER_ID_PPRM_OPER_RECOVERYr  r  r!  r)  r0  r5  r2  r8  rr  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@  rG  "nvmlSystemEventTypeGpuDriverUnbind nvmlSystemEventTypeGpuDriverBindnvmlSystemEventTypeCountrE  rB  rK  rI  rQ  rN  rT  r[  rW  ra  re  rh  rk  r]  rd  rg  rj  rx  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_SHAREr  r  NVML_VGPU_SCHEDULER_ARR_DEFAULTNVML_VGPU_SCHEDULER_ARR_DISABLENVML_VGPU_SCHEDULER_ARR_ENABLE(NVML_VGPU_SCHEDULER_ENGINE_TYPE_GRAPHICSr  r  r  r  r  r  r  r  r  r  r  r  nvmlVgpuTypeIdInfo_v1r  rA  r  nvmlActiveVgpuInstanceInfo_v1r  nvmlVgpuSchedulerState_v1r  nvmlVgpuSchedulerStateInfo_v1r  nvmlVgpuSchedulerLogInfo_v1r  !nvmlVgpuCreatablePlacementInfo_v1r  r  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_1_SLICE_NO_ME'NVML_GPU_INSTANCE_PROFILE_2_SLICE_NO_ME(NVML_GPU_INSTANCE_PROFILE_1_SLICE_ALL_ME(NVML_GPU_INSTANCE_PROFILE_2_SLICE_ALL_MENVML_GPU_INSTANCE_PROFILE_COUNTr  r  r  r   r  r	  r  %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_COUNTr  r  r  r  r  r%  NVML_GPU_UTILIZATION_DOMAIN_GPUNVML_GPU_UTILIZATION_DOMAIN_FBNVML_GPU_UTILIZATION_DOMAIN_VIDNVML_GPU_UTILIZATION_DOMAIN_BUSr  r"  r0  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_UNKNOWNr'  r.  r6  NVML_THERMAL_COOLER_SIGNAL_NONE!NVML_THERMAL_COOLER_SIGNAL_TOGGLE#NVML_THERMAL_COOLER_SIGNAL_VARIABLE NVML_THERMAL_COOLER_SIGNAL_COUNTr7  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_RELATEDr2  r:  r9  r=  r  r?  rC  ra  rb  rk  rl  rm  *NVML_CC_CEC_ATTESTATION_REPORT_NOT_PRESENT&NVML_CC_CEC_ATTESTATION_REPORT_PRESENTrJ  rR  rO  rT  rX  r\  rd  ro  rD	  rs  rI	  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  r4  r7  r<  r?  rB  rD  rH  rN  rP  rR  rT  rW  rY  r_  ra  rc  re  rh  rj  rp  rs  rv  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.  r0  r3  r5  r2  r9  r>  rB  rD  rH  rJ  rL  rN  rP  rS  rU  rZ  r\  r`  rc  rg  rj  rl  ro  rq  ru  rw  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  r4  r8  r=  rA  rF  rM  rO  rR  rU  rW  ra  rc  rf  rl  rn  rr  ru  rx  r|  r  r  r  r  rE  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  r4  r8  r;  r=  r@  rC  rF  rH  rK  rN  rP  rR  rT  rV  rY  r]  r`  re  ri  rd  rh  rk  rp  rr  rv  rx  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  NVML_POWER_MIZER_MODE_ADAPTIVE0NVML_POWER_MIZER_MODE_PREFER_MAXIMUM_PERFORMANCENVML_POWER_MIZER_MODE_AUTO3NVML_POWER_MIZER_MODE_PREFER_CONSISTENT_PERFORMANCEr  r  r  r  nvmlClockOffset_v1r  r 	  r	  r	  r	  r8  r	  r	  r!	  r#	  r%	  r(	  r+	  r.	  r0	  r3	  r7	  r9	  r;	  r>	  rC	  rH	  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_SEC$NVML_GPM_METRIC_C2C_TOTAL_TX_PER_SEC$NVML_GPM_METRIC_C2C_TOTAL_RX_PER_SEC#NVML_GPM_METRIC_C2C_DATA_TX_PER_SEC#NVML_GPM_METRIC_C2C_DATA_RX_PER_SEC*NVML_GPM_METRIC_C2C_LINK0_TOTAL_TX_PER_SEC*NVML_GPM_METRIC_C2C_LINK0_TOTAL_RX_PER_SEC)NVML_GPM_METRIC_C2C_LINK0_DATA_TX_PER_SEC)NVML_GPM_METRIC_C2C_LINK0_DATA_RX_PER_SEC*NVML_GPM_METRIC_C2C_LINK1_TOTAL_TX_PER_SEC*NVML_GPM_METRIC_C2C_LINK1_TOTAL_RX_PER_SEC)NVML_GPM_METRIC_C2C_LINK1_DATA_TX_PER_SEC)NVML_GPM_METRIC_C2C_LINK1_DATA_RX_PER_SEC*NVML_GPM_METRIC_C2C_LINK2_TOTAL_TX_PER_SEC*NVML_GPM_METRIC_C2C_LINK2_TOTAL_RX_PER_SEC)NVML_GPM_METRIC_C2C_LINK2_DATA_TX_PER_SEC)NVML_GPM_METRIC_C2C_LINK2_DATA_RX_PER_SEC*NVML_GPM_METRIC_C2C_LINK3_TOTAL_TX_PER_SEC*NVML_GPM_METRIC_C2C_LINK3_TOTAL_RX_PER_SEC)NVML_GPM_METRIC_C2C_LINK3_DATA_TX_PER_SEC)NVML_GPM_METRIC_C2C_LINK3_DATA_RX_PER_SEC*NVML_GPM_METRIC_C2C_LINK4_TOTAL_TX_PER_SEC*NVML_GPM_METRIC_C2C_LINK4_TOTAL_RX_PER_SEC)NVML_GPM_METRIC_C2C_LINK4_DATA_TX_PER_SEC)NVML_GPM_METRIC_C2C_LINK4_DATA_RX_PER_SEC*NVML_GPM_METRIC_C2C_LINK5_TOTAL_TX_PER_SEC*NVML_GPM_METRIC_C2C_LINK5_TOTAL_RX_PER_SEC)NVML_GPM_METRIC_C2C_LINK5_DATA_TX_PER_SEC)NVML_GPM_METRIC_C2C_LINK5_DATA_RX_PER_SEC*NVML_GPM_METRIC_C2C_LINK6_TOTAL_TX_PER_SEC*NVML_GPM_METRIC_C2C_LINK6_TOTAL_RX_PER_SEC)NVML_GPM_METRIC_C2C_LINK6_DATA_TX_PER_SEC)NVML_GPM_METRIC_C2C_LINK6_DATA_RX_PER_SEC*NVML_GPM_METRIC_C2C_LINK7_TOTAL_TX_PER_SEC*NVML_GPM_METRIC_C2C_LINK7_TOTAL_RX_PER_SEC)NVML_GPM_METRIC_C2C_LINK7_DATA_TX_PER_SEC)NVML_GPM_METRIC_C2C_LINK7_DATA_RX_PER_SEC*NVML_GPM_METRIC_C2C_LINK8_TOTAL_TX_PER_SEC*NVML_GPM_METRIC_C2C_LINK8_TOTAL_RX_PER_SEC)NVML_GPM_METRIC_C2C_LINK8_DATA_TX_PER_SEC)NVML_GPM_METRIC_C2C_LINK8_DATA_RX_PER_SEC*NVML_GPM_METRIC_C2C_LINK9_TOTAL_TX_PER_SEC*NVML_GPM_METRIC_C2C_LINK9_TOTAL_RX_PER_SEC)NVML_GPM_METRIC_C2C_LINK9_DATA_TX_PER_SEC)NVML_GPM_METRIC_C2C_LINK9_DATA_RX_PER_SEC+NVML_GPM_METRIC_C2C_LINK10_TOTAL_TX_PER_SEC+NVML_GPM_METRIC_C2C_LINK10_TOTAL_RX_PER_SEC*NVML_GPM_METRIC_C2C_LINK10_DATA_TX_PER_SEC*NVML_GPM_METRIC_C2C_LINK10_DATA_RX_PER_SEC+NVML_GPM_METRIC_C2C_LINK11_TOTAL_TX_PER_SEC+NVML_GPM_METRIC_C2C_LINK11_TOTAL_RX_PER_SEC*NVML_GPM_METRIC_C2C_LINK11_DATA_TX_PER_SEC*NVML_GPM_METRIC_C2C_LINK11_DATA_RX_PER_SEC+NVML_GPM_METRIC_C2C_LINK12_TOTAL_TX_PER_SEC+NVML_GPM_METRIC_C2C_LINK12_TOTAL_RX_PER_SEC*NVML_GPM_METRIC_C2C_LINK12_DATA_TX_PER_SEC*NVML_GPM_METRIC_C2C_LINK12_DATA_RX_PER_SEC+NVML_GPM_METRIC_C2C_LINK13_TOTAL_TX_PER_SEC+NVML_GPM_METRIC_C2C_LINK13_TOTAL_RX_PER_SEC*NVML_GPM_METRIC_C2C_LINK13_DATA_TX_PER_SEC*NVML_GPM_METRIC_C2C_LINK13_DATA_RX_PER_SEC!NVML_GPM_METRIC_HOSTMEM_CACHE_HIT"NVML_GPM_METRIC_HOSTMEM_CACHE_MISS!NVML_GPM_METRIC_PEERMEM_CACHE_HIT"NVML_GPM_METRIC_PEERMEM_CACHE_MISSNVML_GPM_METRIC_DRAM_CACHE_HITNVML_GPM_METRIC_DRAM_CACHE_MISSNVML_GPM_METRIC_NVENC_0_UTILNVML_GPM_METRIC_NVENC_1_UTILNVML_GPM_METRIC_NVENC_2_UTILNVML_GPM_METRIC_NVENC_3_UTIL(NVML_GPM_METRIC_GR0_CTXSW_CYCLES_ELAPSED'NVML_GPM_METRIC_GR0_CTXSW_CYCLES_ACTIVE"NVML_GPM_METRIC_GR0_CTXSW_REQUESTS(NVML_GPM_METRIC_GR0_CTXSW_CYCLES_PER_REQ$NVML_GPM_METRIC_GR0_CTXSW_ACTIVE_PCT(NVML_GPM_METRIC_GR1_CTXSW_CYCLES_ELAPSED'NVML_GPM_METRIC_GR1_CTXSW_CYCLES_ACTIVE"NVML_GPM_METRIC_GR1_CTXSW_REQUESTS(NVML_GPM_METRIC_GR1_CTXSW_CYCLES_PER_REQ$NVML_GPM_METRIC_GR1_CTXSW_ACTIVE_PCT(NVML_GPM_METRIC_GR2_CTXSW_CYCLES_ELAPSED'NVML_GPM_METRIC_GR2_CTXSW_CYCLES_ACTIVE"NVML_GPM_METRIC_GR2_CTXSW_REQUESTS(NVML_GPM_METRIC_GR2_CTXSW_CYCLES_PER_REQ$NVML_GPM_METRIC_GR2_CTXSW_ACTIVE_PCT(NVML_GPM_METRIC_GR3_CTXSW_CYCLES_ELAPSED'NVML_GPM_METRIC_GR3_CTXSW_CYCLES_ACTIVE"NVML_GPM_METRIC_GR3_CTXSW_REQUESTS(NVML_GPM_METRIC_GR3_CTXSW_CYCLES_PER_REQ$NVML_GPM_METRIC_GR3_CTXSW_ACTIVE_PCT(NVML_GPM_METRIC_GR4_CTXSW_CYCLES_ELAPSED'NVML_GPM_METRIC_GR4_CTXSW_CYCLES_ACTIVE"NVML_GPM_METRIC_GR4_CTXSW_REQUESTS(NVML_GPM_METRIC_GR4_CTXSW_CYCLES_PER_REQ$NVML_GPM_METRIC_GR4_CTXSW_ACTIVE_PCT(NVML_GPM_METRIC_GR5_CTXSW_CYCLES_ELAPSED'NVML_GPM_METRIC_GR5_CTXSW_CYCLES_ACTIVE"NVML_GPM_METRIC_GR5_CTXSW_REQUESTS(NVML_GPM_METRIC_GR5_CTXSW_CYCLES_PER_REQ$NVML_GPM_METRIC_GR5_CTXSW_ACTIVE_PCT(NVML_GPM_METRIC_GR6_CTXSW_CYCLES_ELAPSED'NVML_GPM_METRIC_GR6_CTXSW_CYCLES_ACTIVE"NVML_GPM_METRIC_GR6_CTXSW_REQUESTS(NVML_GPM_METRIC_GR6_CTXSW_CYCLES_PER_REQ$NVML_GPM_METRIC_GR6_CTXSW_ACTIVE_PCT(NVML_GPM_METRIC_GR7_CTXSW_CYCLES_ELAPSED'NVML_GPM_METRIC_GR7_CTXSW_CYCLES_ACTIVE"NVML_GPM_METRIC_GR7_CTXSW_REQUESTS(NVML_GPM_METRIC_GR7_CTXSW_CYCLES_PER_REQ$NVML_GPM_METRIC_GR7_CTXSW_ACTIVE_PCTr\	  rL	  r[	  rN	  rR	  rV	  NVML_GPM_METRICS_GET_VERSIONr^	  ro	  ra	  rd	  rh	  rj	  rl	  rn	  rr	  rt	  "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_DEFAULTrv	  ry	  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_RECOVERYANVML_GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION_NOT_SUPPORTED8NVML_GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION_NONEENVML_GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION_INCORRECT_SYSGUIDHNVML_GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION_INCORRECT_CHASSIS_SN@NVML_GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION_NO_PARTITIONHNVML_GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION_INSUFFICIENT_NVLINKSGNVML_GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION_INCOMPATIBLE_GPU_FWCNVML_GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIURATION_INVALID_LOCATIONDNVML_GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION_INVALID_LOCATION9NVML_GPU_FABRIC_HEALTH_MASK_SHIFT_INCORRECT_CONFIGURATION9NVML_GPU_FABRIC_HEALTH_MASK_WIDTH_INCORRECT_CONFIGURATION,NVML_GPU_FABRIC_HEALTH_SUMMARY_NOT_SUPPORTED&NVML_GPU_FABRIC_HEALTH_SUMMARY_HEALTHY(NVML_GPU_FABRIC_HEALTH_SUMMARY_UNHEALTHY/NVML_GPU_FABRIC_HEALTH_SUMMARY_LIMITED_CAPACITYr	  r	  c_nvmlGpuFabricInfoV_tr	  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	  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	  "NVML_POWER_PROFILE_OPERATION_CLEAR NVML_POWER_PROFILE_OPERATION_SET.NVML_POWER_PROFILE_OPERATION_SET_AND_OVERWRITE NVML_POWER_PROFILE_OPERATION_MAX)nvmlWorkloadPowerProfileUpdateProfiles_v1r	  r	  r	  r	  r
  r
  r
  r	
  r
  r
  r
  r
  r
  r
  r
  'NVML_POWER_SMOOTHING_NUM_PROFILE_PARAMS%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_HYSTERESIS8NVML_POWER_SMOOTHING_PROFILE_PARAM_SECONDARY_POWER_FLOOR=NVML_POWER_SMOOTHING_PROFILE_PARAM_PRIMARY_FLOOR_ACT_WIN_MULT=NVML_POWER_SMOOTHING_PROFILE_PARAM_PRIMARY_FLOOR_TAR_WIN_MULT;NVML_POWER_SMOOTHING_PROFILE_PARAM_PRIMARY_FLOOR_ACT_OFFSETr"
  r 
  r'
  r$
  r)
  r,
  r.
  r0
  r6
  r:
  r<
  r?
  rB
  rD
  rH
  rL
  rN
  NVML_RUSD_POLL_NONENVML_RUSD_POLL_CLOCKNVML_RUSD_POLL_PERFNVML_RUSD_POLL_MEMORYNVML_RUSD_POLL_POWERNVML_RUSD_POLL_THERMALNVML_RUSD_POLL_PCINVML_RUSD_POLL_FANNVML_RUSD_POLL_PROC_UTILNVML_RUSD_POLL_ALLrS
  rP
  rU
  r  r  r  <module>r     sV[  @     $ $ $ $ $ $       



 				          !" !" !" !"!"!" !" !" !" !" !# !# !? !# !# !# !# !# !# % +, #+, #+, "+, "+, '+, (+, '+, #+,  "     %& %& !%& %& "%&   !  ! %& " %& "&' ##$       . "   !  !  !  !  #)  !" !" !" !" !"    !  !  !  !  !  !  ! (. %+. !+. "+. #+. #+/ $+/ #+/ &+/ (+/ !%+ "$% $%  $% $% !$%   "& "& "& "&           %&  %& "%&     #$ #$ #$ #$  #$                   '('( '( '( '( '( '( '( '( '( ') ') ') ') ') ') ') ') ') "') ') ') ') !') !') ') $') ') ') ') ') #'*   +, (+,     "#"# "## <= 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;X ,;] *;> 1;> 1;> 7;> %;> #! BE )BE +BE 2BE 1BE 'BE 5BE 3BE 8BE 8BE 6BE :BE ?BE ?BE = !     -. *-. ) #$ !"  ,- !+, (+, !+, &+, & in          & ./ &./ #./ )./ +./ %./ &!( ,. &,.  ,. ,. ',. " ./ ./ ./ "./ ./ ./ $ 23 -23  23 $ 9: *9: 59: 29: *9: +9: %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    %                @ @ @ @ @& @ @ @ 
> > > > >% > > >   P P P P P. P P P  O O O O O/ O O O .1 #-0 %-0 *-0 )-0 )-0 #    $7       !4     O O O O O/ O O O  I I I I I+ I I I   '(  &' &' ' ` ` ` ` `#6 ` ` `  AB >KL HKN HCF @KN H8; 5*- '-0 *7: 4+. (14 .25 /,/ ))- &I I I I I!4 I I IU U U U U!4 U U UX X X X X/ X X XX X X X X 3 X X X   & _ _ _ _ _$7 _ _ _	 	 	 	 	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^ $ $ $ $ $+ $ $ $	 	 	 	 	I 	 	 	 !>?? %7 "%7   %. "q q q q q-@ q q q $-  m m m m m+> m m m %. !o o o o o,? o o o$ $ $ $ $!4 $ $ $ $-  m m m m m+> m m m      
 
 
   *) ) ) + + +$  B	 	 	 	 	1 	 	 	    )   
    .   	 	 	 	 	2 	 	 	    I    +, "*+ &*+ &*+ & /0 *.1 !$% $% $% ./ (    #6       /   
    %       $7       2       $7       &9       2   
    U       $7   
 
 
 
 
(; 
 
 
     3    "     %8    '     (;    !*     $7    &     (;    !* 	 	 	 	 	&9 	 	 	 (     ,?    %. !    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 $+R (                    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  78 78 078 78 3    ':     
  
    -       
  
  &     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 %.1 $.1 $.1 #.1 #.1 *.1 *.1 ).1 ).1 *.1 *.1 ).1 ).1 *.1 *.1 ).1 ).1 *.1 *.1 ).1 ).1 *.1 *.1 ).1 ).1 *.1 *.1 ).1 ).1 *.1 *.1 ).1 ).1 *.1 *.1 ).1 ).1 *.1 *.1 ).1 ).1 *.1 *.1 ).1 ).1 +.1 +.1 *.1 *.1 +.1 +.1 *.1 *.1 +.1 +.1 *.1 *.1 +.1 +.1 *.1 *.1 !.1 ".1 !.1 ".1 .1 .2 .2 .2 .2 .2 (.2 '.2 ".2 (.2 $.2 (.2 '.2 ".2 (.2 $.2 (.2 '.2 ".2 (.2 $.2 (.2 '.2 ".2 (.2 $.2 (.2 '.2 ".2 (.2 $.2 (.2 '.2 ".2 (.2 $.2 (.2 '.2 ".2 (.2 $.2 (.2 '.2 ".2 (.2 $.1     *   	 	 	 	 	y 	 	 	G455     Y       +       /     !     ,                      ), "(+ *- #*0 #*4 %*O '    y   
     &' #&' !&' !&'     /    9: 589 ,89 -89 -8; -=> 8=> /=> 0=> 0=@ 0=> 9=> 0=> 1=> 1=@ 1DE ADE 8DE 9DE 9DG 9KL AKL 8KL EKL HKL @KL HKL GKL C LO DKL 9KN 923 ,23 &23 (23 /! U U U U U2 U U U 2 U U U U U2 U U U !      %( $' $' $' $'  $'          " " " " "/ " " "  Qb    _ _ _ _ _$7 _ _ _( &     % _ _ _ _ _$7 _ _ _  S S S S S1 S S S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 &' "#$  12 .#$  ,5 )    4G                    ' \ \ \ \ \!4 \ \ \I I I6 6 66 6 6   ;< ':; %:D +:; 4:; /:; 1:; 7@A 8@A =@A =@A ;$ a a a a a%8 a a a ' 	e 	e 	e 	e 	e': 	e 	e 	e  
  
  
	 	 	 	 	4G 	 	 	A A A A A5H A A A .7 *      H H H     ' ' '          -  	+ 	+ 	+ 	+ 	+1 	+ 	+ 	+    r  