o
    )i                    @   sF=  d dl T d dlmZ d dlmZ d dlZd dlZd dlZd dlZe	Z
d ZdZe	Zd ZdZdZdZdZd	Zd
ZdZdZdZdZdZeZdZdZdZdZdZdZ e	Z!d Z"dZ#dZ$dZ%dZ&d	Z'd
Z(dZ)dZ*e	Z+d Z,dZ-e	Z.d Z/dZ0dZ1dZ2dZ3e	Z4d Z5dZ6dZ7dZ8dZ9dZ:d	Z;d
Z<dZ=dZ>dZ?e?Z@e	ZAd ZBdZCdZDdZEdZFd	ZGe	ZHd ZIdZJdZKdZLd	ZMe	ZNd ZOdZPdZQdZRdZSd	ZTd
ZUe	ZVdZWdZXdZYdZZdZ[dZ\dZ]dZ^dZ_e	Z`d ZadZbdZcdZddZee	Zfd ZgdZhdZidZje	Zkd ZldZmdZne	Zod ZpdZqdZre	Zsd ZtdZudZve	Zwd ZxdZydZzdZ{dZ|e	Z}d Z~dZdZdZdZe	Zd ZdZdZdZe	Zd ZdZdZdZdZd	Zd
ZdZdZdZdZdZdZdZdZdZdZe	Zd ZdZdZdZdZe	Zd ZdZdZdZdZd	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZd Zd!Zd"Zd#Zd$Zd%Zd&Ze	Zd ZdZe	Zd ZdZe	Zd ZdZe	Zd ZdZdZe	Zd ZdZdZe	Zd ZdZdZe	Zd ZdZdZe	Zd ZdZdZdZdZd	Zd
ZdZe	Zd ZdZdZdZdZd	Zd
ZdZe	Zd ZdZdZdZdZd	ZdZdZdZe	Zd ZdZdZdZe	Zd ZdZdZdZdZe	Z d ZdZe	Zd ZdZe	Zd ZdZdZ	dZ
dZd	Zd
ZdZdZdZdZe	Zd ZdZdZe	Zd ZdZdZd'Zd(ZeZd)Ze	Zd*ZdZ dZ!dZ"dZ#dZ$d	Z%e	Z&d Z'dZ(e(Z)dZ*dZ+dZ,d	Z-d
Z.e	Z/dZ0dZ1dZ2d	Z3d
Z4dZ5dZ6dZ7dZ8dZ9d+Z:e	Z;d Z<dZ=dZ>dZ?dZ@e	ZAd ZBdZCdZDe	ZEd ZFdZGe	ZHd,ZId-ZJd.ZKe	ZLd ZMdZNdZOdZPdZQd	ZRd
ZSe	ZTdZUdZVdZWdZXdZYdZZdZ[dZ\e	Z]d Z^dZ_e	Z`d ZadZbdZcdZddZed ZfdZgdZhdZidZjdZkd/Zld0Zmd/Znd/ZodZpd0Zqd'Zrd/Zsd/ZtdZudZvdZwdZxdZydZze{e	d1 Z|d1Z}dZ~d2Zd3Zd4Zed5Ze	d5Z	 dZdZdZdZd	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZd Zd!Zd"Zd#Zd$Zd%Zd'Zd6ZdZd7Zd8Zd9Zd:Zd;Zd<Zd=Zd(Zd>Zd?Zd@ZdAZdBZdCZdDZdEZdFZd)ZdGZdHZdIZdJZdKZdLZdMZdNZdOZdPZdQZdRZdSZdZdTZdUZdVZdWZdXZdYZdZZd[Zd\Zd]Zd^Zd_Zd`ZdaZdbZd/ZdcZddZdeZdfZdgZdhZdiZdjZdkZdlZdmZdnZdoZdpZdqZd0ZdrZdsZdtZduZdvZdwZdxZdyZdzZd{Zd|Zd}Zd~ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZdZdZdZdZdZdZdZdZ	dZ
dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6dÐZ7dĐZ8dŐZ9dƐZ:dǐZ;dȐZ<dɐZ=dʐZ>dːZ?d̐Z@d͐ZAdΐZBdϐZCdАZDdѐZEdҐZFdӐZGdԐZHdՐZId֐ZJdאZKdؐZLdِZMdڐZNdېZOdܐZPdݐZQdސZRdߐZSdZTdZUdZVdZWdZXdZYdZZdZ[dZ\dZ]dZ^dZ_dZ`dZadZbdZcdZddZedZfdZgdZhdZidZjdZkdZldZmdZndZodZpdZqdZrdZsd ZtdZudZvdZwdZxdZydZzdZ{dZ|d	Z}d
Z~dZd1ZdZdZdZdZdZdZdZdZdZdZdZdZdZd ZdZdZd ZdZd ZdZdZdZdZdae Zd ae	Ze	Ze	Zd ZdZe	Zd ZdZdZdZdZdZeZd*ZdZdZdZdZe	Zd ZdZdZdZdZd	Ze	Zd ZdZdZe	Zd ZdZdZdZdZd	Zd
ZdZdZdZdZe	Zd ZdZe	Zd ZdZdZdZdZe	Zd ZdZdZdZӐdZe	Zd ZdZe	Zd ZdZe	Zd ZdZe	Zd ZdZdZdZdZe	Zd ZdZd ZdZd ZdZdZe	Zd ZdZe	Zd)ZdTZdZG dd deZG dd  d eZd!d" Zd#d$ Ze  d%d& Ze Zd'd( ZG d)d* d*eZd+d, Zd-d. ZG d/d0 d0e ZeeZG d1d2 d2e ZG d3d4 d4eZG d5d6 d6eZd7ZG d8d9 d9eZG d:d; d;eZ	G d<d= d=eZ
G d>d? d?eZG d@dA dAe ZeeZG dBdC dCeZdDZG dEdF dFeZG dGdH dHeZG dIdJ dJeZdKZG dLdM dMeZG dNdO dOeZG dPdQ dQeZG dRdS dSeZdTZG dUdV dVeZG dWdX dXe ZdZG dYdZ dZe ZG d[d\ d\eZeZeZe	Z d Z!dZ"dZ#G d]d^ d^e Z$G d_d` d`eZ%e%Z&daZ'G dbdc dceZ(G ddde deeZ)G dfdg dgeZ*G dhdi dieZ+G djdk dkeZ,G dldm dme-Z.G dndo doeZ/G dpdq dqeZ0G drds dseZ1dZ2dtZ3G dudv dveZ4dwZ5G dxdy dyeZ6dwZ7G dzd{ d{eZ8G d|d} d}eZ9d7Z:G d~d deZ;d7Z<G dd deZ=daZ>d Z?dZ@G dd deZAdZBG dd deZCdZDG dd deZEG dd deZFG dd deZGdZHG dd deZIG dd deZJG dd deZKdaZLG dd deZMdZNG dd deZOd ZPdZQdZRdZSdZTd	ZUG dd deZVG dd deZWG dd deZXG dd deZYG dd deZZdaZ[G dd deZ\G dd deZ]G dd deZ^G dd deZ_G dd deZ`G dd deZaG dd deZbG dd deZcG dd deZdG dd deZed7ZfG dd de ZgeegZhdZidZjdZkdZldZmdZnd1ZodZpdZqd2ZrdZsdZtdZudZvd ZweweiB ejB ekB emB enB elB eoB epB eqB erB esB etB euB evB ZxdZydZzezZ{dZ|dZ}dZ~dZdZdZd1Zd ZeeyB ezB e|B e}B e~B eB eB eB eB ZdZdZeZdZdZdZdZdZdZd1Zd ZeeB eB eB eB eB eB eB eB eB ZG dd deZG dd deZG dÐdĄ dĐe ZG dŐdƄ dƐeZG dǐdȄ dȐeZG dɐdʄ dʐe Zd ZdZdZdZdZdؐZd ZdZdZG dːd̄ d̐eZG d͐d΄ dΐeZG dϐdЄ dАe-ZG dѐd҄ dҐeZG dӐdԄ dԐeZG dՐdք d֐eZG dאd؄ dؐeZG dِdڄ dڐeZG dېd܄ dܐe-ZG dݐdބ dސeZG dߐd deZG dd de ZG dd deZd ZdZd ZdZdZdZdZd	Zd
ZdZdZdZdZdZdZdZG dd de ZG dd de ZdZG dd deZG dd de ZG dd de ZeeZd ZdZdZdZdZd	Zd
ZdZdZd ZdZG dd de ZG dd de ZАdZG dd deZG dd de ZdZd ZdZdZdZG dd de ZG dd de ZdZd ZdZdZdZdZdZdZdZdZd5Zd ZdZdZdZdZd	Zd
ZdZdZdZdZdZdZdZdZdZdZdZd5ZG dd de ZG dd  d e Ze	Zd ZdZdZdZe	Z dZdZdZdZeeB eB ZG dd deZdZdd ZG dd de Z	ee	Z
G dd de ZG d	d
 d
e ZdZdZdZdZdZd ZdZG dd de ZdZG dd de ZG dd de ZG dd de ZG dd de ZG dd de ZG dd de ZdZG dd de ZdZdd Zdd  Z d!d" Z!d#d$ Z"d%d& Z#d'd( Z$ed)d* Z%ed+d, Z&d-d. Z'd/d0 Z(ed1d2 Z)ed3d4 Z*d5d6 Z+d7d8 Z,d9d: Z-d;d< Z.d=d> Z/d?d@ Z0dAdB Z1dCdD Z2dEdF Z3dGdH Z4dIdJ Z5dKdL Z6dMdN Z7edOdP Z8edQdR Z9edSdT Z:edUdV Z;G dWdX dXeZ<dYZ=edZd[ Z>G d\d] d]eZ?dYZ@ed^d_ ZAd`da ZBdbdc ZCddde ZDdfdg ZEdhdi ZFedjdk ZGedldm ZHe	 fdndoZIdpdq ZJdrds ZKdtdu ZLdvdw ZMdxdy ZNdzd{ ZOd|d} ZPed~d ZQedd ZRedd ZSdd ZTdd ZUdd ZVdd ZWdd ZXdd ZYdd ZZdd Z[dd Z\dd Z]dd Z^dd Z_dd Z`dd Zadd Zbdd Zcdd Zddd Zedd ZfG dd deZgdwZhdd Zidd Zjdd Zkdd Zle	 e	 fddZme	 fddZndd ZoG dd deZpdwZqdd ZreqfddZsdd ZtddÄ ZudĐdń ZvdƐdǄ ZwdȐdɄ Zxdʐd˄ Zyd̐d̈́ Zzdΐdτ Z{dАdф Z|dҐdӄ Z}dԐdՄ Z~d֐dׄ Zdؐdل Zdڐdۄ Zdܐd݄ Zdސd߄ ZdAddZdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zd d Zdd Zdd Zdd Zedd	 Zd
d Zdd Ze dd Zdd Zdd Ze dd Ze dd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Ze fd8d9Zd:d; Zd<d= Zd>d? Zd@dA ZdBdC ZdDdE ZdFdG ZdHdI ZdJdK ZdLdM ZdNdO ZdPdQ ZdRdS ZdTdU ZdVdW ZdXdY ZdZd[ Zd\d] Zd^d_ ZÐd`da ZĐdbdc ZŐddde ZƐdfdg Zǐdhdi ZȐdjdk Zɐdldm Zʐdndo Zːdpdq Z̐drds Z͐dtdu Zΐdvdw Zϐdxdy ZАdzd{ Zѐd|d} ZҐd~d ZӐdd ZԐdd ZՐdd Z֐dd Zאdd Zؐdd Zِdd Zڐdd Zېdd Zܐdd Zݐdd Zސdd Zߐdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZdBddZdddZdd Zdd Zdd Zdd ZddÄ ZdĐdń ZedƐdǄ ZedȐdɄ Zdʐd˄ Zd̐d̈́ Zdΐdτ ZdАdф ZedҐdӄ ZdԐdՄ Zd֐dׄ Zdؐdل Z dڐdۄ Zdܐd݄ Zdސd߄ Zdd Zdd Zedd Zedd Zedd Zedd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zd d Zedd Zdd Zdd Zdd	 Zd
d Zdd ZdAddZe	 e	 fddZdd Zdd Zdd Zdd Z dd Z!dd Z"dd Z#d d! Z$d"d# Z%d$d% Z&d&d' Z'd(d) Z(d*d+ Z)d,d- Z*d.d/ Z+d0d1 Z,ed2d3 Z-d4d5 Z.d6d7 Z/d8d9 Z0d:d; Z1d<d= Z2dCd>d?Z3d@dA Z4dBdC Z5dDdE Z6dFdG Z7dHdI Z8dJdK Z9dLdM Z:dNdO Z;dPdQ Z<ddRdSZ=e=Z>dTdU Z?dVdW Z@dXdY ZAdZd[ ZBd\d] ZCd^d_ ZDd`da ZEdbdc ZFddddeZGeGZHdfdg ZIdhdi ZJdjdk ZKdldm ZLdndo ZMdpdq ZNdrds ZOdtdu ZPdvdw ZQdxdy ZRdzd{ ZSd|d} ZTd~d ZUdd ZVdd ZWdd ZXdd ZYdd ZZdd Z[dd Z\dd Z]dd Z^dd Z_dd Z`dd Zadd Zbdd Zcdd Zdeڃ fddZedd Zfe fddZge	 e	 fddZhG dd deZidaZjdd Zkdd Zldd Zmdd Zndd Zoep ep fddZqdd Zrdd Zsep ep fddZtdd Zudd Zvdd Zwdd ZxddÄ ZydĐdń ZzdƐdǄ Z{dȐdɄ Z|dʐd˄ Z}d̐d̈́ Z~dΐdτ ZdАdф ZdZdZdZdZd	Zd
ZdZdZdZdZdZdZdZdZd'Zd6ZdZd7Zd8Zd9Zd:Zd;Zd(Zd>Zd?Zd@ZdAZdBZdCZdDZd)ZdGZdPZdQZdRZdSZdZdTZdUZdVZdWZdXZdYZdZZd[Zd\Zd]Zd^Zd_Zd`ZdaZdbZd/ZdcZddZdeZdfZdgZdhZdiZdjZdkZdlZdmZdnZdoZdpZdqZd0ZdrZdsZG dҐd4 d4eZG dӐdԄ dԐe ZȐeeȃZG dՐdք d֐e ZG dאd؄ dؐeZG dِdڄ dڐeZdZG dېd܄ dܐeZdZϐdݐdބ ZАdߐd Zѐdd ZҐdd ZӐdd ZԐdd ZՐdd Z֐dd Zd ZdZdZڐdZd+ZܐeܐZG dd de Zސdd ZdZe	Zd ZdZdZdZG dd deZd ZdZdZd ZdZd ZdZdZdZdZd ZdZdZdZdZd ZdZdZd
ZdZdZG dd deZdd Zdd Zd ZdZ dZdZdZd	Zdd Zdd Ze	Zd ZdZ	dZ
G dd  d eZdZefddZG dd deZdZdd ZdZd7ZG d	d
 d
eZdd ZG dd deZdZdd ZG dd deZdZd ZdZdZdZdZd	Zd
Z dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*G dd deZ+dZ,G dd deZ-dZ.G dd deZ/dZ0G dd deZ1dd  Z2d!d" Z3d#d$ Z4d%d& Z5d'd( Z6d)d* Z7d+d, Z8d7Z9G d-d. d.eZ:d/d0 Z;d1d2 Z<d3d4 Z=d5d6 Z>d	Z?d+Z@d ZAdZBdZCdZDd7ZEG d7d8 d8eZFdaZGG d9d: d:eZHd;d< ZId=d> ZJd?d@ ZKdS (D      )*)find_librarywrapsN                        	   
                               @                                          i     (   2   )r   l    l     l    l    P   `      i   z%04X:%02X:%02X.0z%08X:%02X:%02X.0   !   "   #   $   %   &   '   )   *   +   ,   -   .   /   0   1   3   4   5   6   7   8   9   :   ;   <   =   >   ?   A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   Q   R   S   T   U   V   W   X   Y   Z   [   \   ]   ^   _   a   b   c   d   e   f   g   h   i   j   k   l   m   n   o   p   q   r   s   t   u   v   w   x   y   z   {   |   }   ~                                                                                                                                                                                                                                                                                                                                                                                    i  i  i  i  i  i  i  i  i	  i
  i  i  i  )r   )r   r   )r	   l        c                   @      e Zd ZdS )NVMLLibraryMismatchErrorN__name__
__module____qualname__ r
  r
  c/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/vllm/third_party/pynvml.pyr        r  c                   @   s   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d Zdd Zdd ZdS )	NVMLErrorZ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                 C   s*   | 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  objr
  r
  r  r    s
   
zNVMLError.__new__c                 C   sN   z| j tjvrtt| j tj| j < tj| j  W S  ty&   d| j   Y S w )NzNVML Error with code %d)r  r  _errcode_to_stringstrnvmlErrorStringselfr
  r
  r  __str__  s   zNVMLError.__str__c                 C   s   | j |j kS N)r  )r  otherr
  r
  r  __eq__     zNVMLError.__eq__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    sX    	

r  c                 C   s    | t jvrtd|  t j|  S )NznvmlErrorCode %s is not valid)r  r  
ValueError)ZnvmlErrorCoder
  r
  r  nvmlExceptionClass  s   

r6  c                  C   s   t jt } dd t| D }|D ]4}dt|ddddd }t| |}dd }t|t	fd	||i}t|_
t| || |t	j|< q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                 S   s   g | ]	}| d r|qS )NVML_ERROR_)
startswith).0xr
  r
  r  
<listcomp>  s    z/_extractNVMLErrorsAsClasses.<locals>.<listcomp>Z
NVMLError_r7   _c                    s    fdd}|S )Nc                    s   t |  }|S r  )r  r  )r  r  valr
  r  new  s   z9_extractNVMLErrorsAsClasses.<locals>.gen_new.<locals>.newr
  )r?  r@  r
  r>  r  gen_new
  s   z,_extractNVMLErrorsAsClasses.<locals>.gen_newr  N)sysmodulesr  dirstringcapwordsreplacegetattrtyper  r  setattrr  )Zthis_moduleZnvmlErrorsNamesZerr_name
class_nameZerr_valrA  Znew_error_classr
  r
  r  _extractNVMLErrorsAsClasses  s   

 
rL  c                 C   s   | t krt| | S r  )NVML_SUCCESSr  )retr
  r
  r  _nvmlCheckReturn  s   rO  c                 C   sn   | t v rt |  S t  z%td krttztt| t | < t |  W W t  S  ty1   tt	w t  w r  )
_nvmlGetFunctionPointer_cachelibLoadLockacquirenvmlLibr  r!  rH  releaseAttributeErrorr-  )namer
  r
  r  _nvmlGetFunctionPointer  s   


rW  c                   @   s   e Zd Zdd Zdd ZdS )nvmlFriendlyObjectc                 C   s   |D ]
}t | |||  qd S r  )rJ  )r  
dictionaryr:  r
  r
  r  __init__5  s   znvmlFriendlyObject.__init__c                 C   s
   | j  S r  )__dict__r  r  r
  r
  r  r  8     
znvmlFriendlyObject.__str__N)r  r  r	  rZ  r  r
  r
  r
  r  rX  4  s    rX  c                 C   sH   i }| j D ]}|d }t| |}t|tr| n|||< qt|}|S Nr   )_fields_rH  
isinstancebytesdecoderX  )structdr:  keyr  r  r
  r
  r  nvmlStructToFriendlyObject;  s   

re  c                 C   sJ   |j D ]}|d }| j| }tjdkrt|||  qt||| q|S )Nr   r  )r^  r[  rB  version_inforJ  encode)r  modelr:  rd  r  r
  r
  r  nvmlFriendlyObjectToStructF  s   


ri  c                   @   r  )struct_c_nvmlUnit_tNr  r
  r
  r
  r  rj  R  r  rj  c                       s8   e Zd ZdZi Zdd Z fddZ fddZ  ZS )_PrintableStructurea  
    Abstract class that produces nicer __str__ output than ctypes.Structure.
    e.g. instead of:
      >>> print str(obj)
      <class_name object at 0x7fdf82fef9e0>
    this class will print
      class_name(field_name: formatted_value, field_name: formatted_value)

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

    Exact format of returned str from this class is subject to change in the future.
    c                 C   s   g }| j D ]-}|d }t| |}d}|| jv r| j| }n
d| jv r'| jd }|d| ||f  q| jjd d| d S )Nr   z%s	<default>z%s: (z, ))r^  rH  _fmt_append	__class__r  join)r  resultr:  rd  r  fmtr
  r
  r  r  j  s   




z_PrintableStructure.__str__c                    s4   t t| |}t|trt|tr|S | S |S r  )superrk  __getattribute__r_  r`  r  ra  )r  rV  resrq  r
  r  rv  w  s   

z$_PrintableStructure.__getattribute__c                    s(   t |tr	| }tt| || d S r  )r_  r  rg  ru  rk  __setattr__)r  rV  r  rx  r
  r  ry    s   
z_PrintableStructure.__setattr__)	r  r  r	  __doc__ro  r  rv  ry  __classcell__r
  r
  rx  r  rk  V  s    rk  c                   @   8   e Zd Zded fded fded fded fgZdS c_nvmlUnitInfo_trV  r+   idserialfirmwareVersionNr  r  r	  c_charr^  r
  r
  r
  r  r~        



r~  c                   @      e Zd ZdefgZdS )c_nvmlC2cModeInfo_v1_tZisC2cEnabledNr  r  r	  c_uintr^  r
  r
  r
  r  r        r  i  c                   @       e Zd Zded fdefgZdS )c_nvmlLedState_tcauser,   colorN)r  r  r	  r  _nvmlLedColor_tr^  r
  r
  r
  r  r        
r  c                   @   s,   e Zd Zded fdefdefdefgZdS )c_nvmlPSUInfo_tstater,   currentZvoltagepowerN)r  r  r	  r  r  r^  r
  r
  r
  r  r        
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_tr^  r
  r
  r
  r  r        r  c                   @   r  )c_nvmlUnitFanSpeeds_tZfansr!   countN)r  r  r	  r  r  r^  r
  r
  r
  r  r    r  r  c                   @   r  )struct_c_nvmlDevice_tNr  r
  r
  r
  r  r    r  r  c                   @   s`   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 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_SIZEr^  ro  r
  r
  r
  r  r    s(    

r  i@  c                   @   s`   e Zd Zde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dddddZdS )nvmlPciInfo_v2_tr  r  r  r  r  r  Z	reserved0Z	reserved1Z	reserved2Z	reserved3r  r  r  r  r  r  r  r  N)r  r  r	  r  %NVML_DEVICE_PCI_BUS_ID_BUFFER_V2_SIZEr  r^  ro  r
  r
  r
  r  r    s$    

r  c                	   @   sR   e Zd Zdee fdefdefdefdefdefdee fgZdd	d	ddd
ZdS )nvmlPciInfo_tZbusIdLegacyr  r  r  r  r  r  r  r  r  N)	r  r  r	  r  r  r  r  r^  ro  r
  r
  r
  r  r    s    


r  c                   @       e Zd Zdefdee fgZdS )!c_nvmlSystemDriverBranchInfo_v1_tr  branchN)r  r  r	  r  r  &NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZEr^  r
  r
  r
  r  r         
r  iT  c                   @   r  )c_nvmlExcludedDeviceInfo_tZpciuuidN)r  r  r	  r  r  NVML_DEVICE_UUID_BUFFER_SIZEr^  r
  r
  r
  r  r    r  r  c                   @   r  )nvmlNvLinkUtilizationControl_tZunitsZ	pktfilterN)r  r  r	  "_nvmlNvLinkUtilizationCountUnits_t%_nvmlNvLinkUtilizationCountPktTypes_tr^  r
  r
  r
  r  r    r  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usedrl  %d BNr  r  r	  c_ulonglongr^  ro  r
  r
  r
  r  r        r  c                   @   s6   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  rl  r  Nr  r  r	  r  r  r^  ro  r
  r
  r
  r  r        r  i(  c                   @   r  )c_nvmlBAR1Memory_tZ	bar1TotalZbar1FreeZbar1Usedrl  r  Nr  r
  r
  r
  r  r  (  r  r  c                   @      e Zd ZdefdefgZdS )nvmlClkMonFaultInfo_tZclkApiDomainZclkDomainFaultMaskNr  r
  r
  r
  r  r  0      r  c                   @   s&   e Zd Zdefdefdee fgZdS )nvmlClkMonStatus_tZbGlobalStatusZclkMonListSizeZ
clkMonListN)r  r  r	  r  r  MAX_CLK_DOMAINSr^  r
  r
  r
  r  r  7  s
    
r  c                   @   s0   e Zd ZdefdefdefdefgZddiZdS )c_nvmlProcessInfo_v2_tpidusedGpuMemorygpuInstanceIdcomputeInstanceIdr  Nr  r
  r
  r
  r  r  H  s    r  c                   @   s.   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  r^  r
  r
  r
  r  r  Z  s    r  c                   @   s4   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  r^  ro  r
  r
  r
  r  r  c  s    
r  i  c                   @   r  )c_nvmlBridgeChipInfo_trI  Z	fwVersionN)r  r  r	  _nvmlBridgeChipType_tr  r^  r
  r
  r
  r  r  p  r  r  c                   @       e Zd Zdefded fgZdS )c_nvmlBridgeChipHierarchy_tZbridgeCountZbridgeChipInfor   N)r  r  r	  r  r  r^  r
  r
  r
  r  r  v  r  r  c                   @   s(   e Zd ZdefdefdefdefgZdS )c_nvmlEccErrorCounts_tZl1CacheZl2CacheZdeviceMemoryZregisterFileNr  r  r	  r  r^  r
  r
  r
  r  r  |      r  c                   @   s$   e Zd ZdefdefgZddiZdS )c_nvmlUtilization_tZgpuZmemoryrl  z%d %%N)r  r  r	  r  r^  ro  r
  r
  r
  r  r    s
    r  c                   @   r  )c_nvmlHwbcEntry_tZhwbcIdr  r   N)r  r  r	  r  r  r^  r
  r
  r
  r  r    r  r  c                   @   s:   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_tZdValZuiValZulValZullValZsllValZsiValZusValN)r  r  r	  c_doubler  c_ulongr  Z
c_longlongc_intZc_ushortr^  r
  r
  r
  r  r        r  c                   @   r  )c_nvmlSample_t	timeStampZsampleValueN)r  r  r	  r  r  r^  r
  r
  r
  r  r    r  r  c                   @   r  )c_nvmlViolationTime_tZreferenceTimeZviolationTimeNr  r
  r
  r
  r  r    r  r  c                   @   s:   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	timestampZlatencyUsecZ	valueType
nvmlReturnr  N)	r  r  r	  c_uint32Zc_int64_nvmlValueType_t_nvmlReturn_tr  r^  r
  r
  r
  r  r    r  r  i  c                       s6   e Zd Zdefdee fdefgZ fddZ  ZS )!c_nvmlNvlinkSupportedBwModes_v1_tr  ZbwModesZtotalBwModesc                       t t| jtd d S N)r  )ru  r  rZ  nvmlNvlinkSupportedBwModes_v1r  rx  r
  r  rZ       z*c_nvmlNvlinkSupportedBwModes_v1_t.__init__)	r  r  r	  r  c_uint8$NVML_NVLINK_TOTAL_SUPPORTED_BW_MODESr^  rZ  r{  r
  r
  rx  r  r    s    
r  i  c                       2   e Zd ZdefdefdefgZ fddZ  ZS )c_nvmlNvlinkGetBwMode_v1_tr  ZbIsBestbwModec                    r  r  )ru  r  rZ  nvmlNvlinkGetBwMode_v1r  rx  r
  r  rZ    r  z#c_nvmlNvlinkGetBwMode_v1_t.__init__r  r  r	  r  r  r^  rZ  r{  r
  r
  rx  r  r        r  c                       r  )c_nvmlNvlinkSetBwMode_v1_tr  ZbSetBestr  c                    r  r  )ru  r  rZ  nvmlNvlinkSetBwMode_v1r  rx  r
  r  rZ    r  z#c_nvmlNvlinkSetBwMode_v1_t.__init__r  r
  r
  rx  r  r    r   r  c                   @   r  ) c_nvmlVgpuHeterogeneousMode_v1_tr  r  Nr  r
  r
  r
  r  r    r  r  c                   @   r  )c_nvmlVgpuPlacementId_v1_tr  placementIdNr  r
  r
  r
  r  r    r  r  c                   @   s,   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  r^  r
  r
  r
  r  r        
r  c                   @   s2   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  r  r  r  r  Nr	  r
  r
  r
  r  r    s    
r  i   c                   @   r  )c_nvmlVgpuTypeBar1Info_v1_tr  Zbar1SizeNr  r
  r
  r
  r  r    r  r  i  c                   @   s4   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  r^  r
  r
  r
  r  r        r  c                	   @   s@   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  r  r  r  r  r  jpgUtilofaUtilN)r  r  r	  r  r  r  r^  r
  r
  r
  r  r        r  c                   @   s2   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  r  r  r  r  r^  r
  r
  r
  r  r        
r  i   c                	   @   sD   e Zd Zdefdefdee fdefdefdefdefdefgZd	S )
$c_nvmlVgpuProcessUtilizationSample_tr  r  processNamer  r  r  r  r  N)	r  r  r	  r  r  r  NVML_VGPU_NAME_BUFFER_SIZEr  r^  r
  r
  r
  r  r  (  s    
r  c                   @   sP   e Zd Zde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_nvmlVgpuProcessUtilizationInfo_v1_tr   r  r  r  r  r  r  r  r  r  N)	r  r  r	  r  r!  r  r  r  r^  r
  r
  r
  r  r"  4  s    
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"  r^  r
  r
  r
  r  r$  B  r
  r$  c                   @   r  )nvmlVgpuRuntimeState_v1_tr  sizeNr  r
  r
  r
  r  r'  L  r  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	  r  Zc_uint16r  r^  r
  r
  r
  r  r*  T  r  r*  c                   @   "   e Zd ZdefdefdefgZdS )c_nvmlVgpuLicenseInfo_tZ
isLicensedlicenseExpiryZcurrentStateN)r  r  r	  r  r*  r  r^  r
  r
  r
  r  r4  f  
    r4  c                	   @   s@   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  r  Z	codecTypehResolutionvResolutionZ
averageFpsZencodeLatencyNr  r  r	  r  r  r^  r
  r
  r
  r  r7  m  r  r7  c                   @   s4   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  r  r  r  r  Nr  r
  r
  r
  r  r<  y  r  r<  c                	   @   s@   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  r  r  r  r  r  r  Nr  r  r	  r  r  r^  r
  r
  r
  r  r=    r  r=  c                   @   r#  )#c_nvmlProcessesUtilizationInfo_v1_tr  processSamplesCountr  procUtilArrayN)r  r  r	  r  r  r  r=  r^  r
  r
  r
  r  r?    r
  r?  c                   @   r)  )	c_nvmlGridLicenseExpiry_tr+  r,  r-  r.  r/  r0  r1  Nr2  r
  r
  r
  r  rB    r  rB  c                   @   s<   e Zd Zdefdefdee fdee fdefdefgZdS ) c_nvmlGridLicensableFeature_v4_tfeatureCodefeatureStatelicenseInfoproductNamefeatureEnabledr5  N)	r  r  r	  _nvmlGridLicenseFeatureCode_tr  r  NVML_GRID_LICENSE_BUFFER_SIZErB  r^  r
  r
  r
  r  rC    s    

rC  c                   @   &   e Zd Zdefdefdee fgZdS )!c_nvmlGridLicensableFeatures_v4_tisGridLicenseSupportedlicensableFeaturesCountgridLicensableFeaturesN)r  r  r	  r  r  rC  #NVML_GRID_LICENSE_FEATURE_MAX_COUNTr^  r
  r
  r
  r  rL    
    
rL  c                   @   s6   e Zd Zdefdefdee fdee fdefgZdS ) c_nvmlGridLicensableFeature_v3_trD  rE  rF  rG  rH  Nr  r  r	  rI  r  r  rJ  r^  r
  r
  r
  r  rR    s    

rR  c                   @   rK  )!c_nvmlGridLicensableFeatures_v3_trM  rN  rO  N)r  r  r	  r  r  rR  rP  r^  r
  r
  r
  r  rT    rQ  rT  c                   @   s0   e Zd Zdefdefdee fdee fgZdS ) c_nvmlGridLicensableFeature_v2_trD  rE  rF  rG  NrS  r
  r
  r
  r  rU    s    

rU  c                   @   rK  )!c_nvmlGridLicensableFeatures_v2_trM  rN  rO  N)r  r  r	  r  r  rU  rP  r^  r
  r
  r
  r  rV    rQ  rV  c                   @   rK  )c_nvmlGridLicensableFeature_trD  rE  rF  NrS  r
  r
  r
  r  rW    rQ  rW  c                   @   rK  )c_nvmlGridLicensableFeatures_trM  rN  rO  N)r  r  r	  r  r  rW  rP  r^  r
  r
  r
  r  rX    rQ  rX  c                   @   r  )c_nvmlMarginTemperature_v1_tr  marginTemperatureN)r  r  r	  r  r  r^  r
  r
  r
  r  rY    r  rY  c                   @   r  )struct_c_nvmlEventSet_tNr  r
  r
  r
  r  r[    r  r[  i      i   i    i @  i   c                   @   s6   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  Z	eventTypeZ	eventDatar  r  r  N)r  r  r	  c_nvmlDevice_tr  r  r^  ro  r
  r
  r
  r  r]  B  r  r]  c                	   @   s>   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 fgZd	S )
c_nvmlAccountingStats_tZgpuUtilizationZmemoryUtilizationmaxMemoryUsagetimeZ	startTimeZ	isRunningr  r
   Nr  r
  r
  r
  r  r_  L  s    
r_  c                   @   r  )c_nvmlVgpuVersion_t
minVersion
maxVersionNr  r
  r
  r
  r  rb  W  r  rb  c                   @   s\   e Zd Zdefdefdefdee fdee fded fdefd	efd
efdee fg
ZdS )c_nvmlVgpuMetadata_tr  revisionZguestInfoStateZguestDriverVersionhostDriverVersionr  r   ZvgpuVirtualizationCapsZguestVgpuVersionopaqueDataSize
opaqueDataN)	r  r  r	  r  _nvmlVgpuGuestInfoState_tr  r  #NVML_VGPU_METADATA_OPAQUE_DATA_SIZEr^  r
  r
  r
  r  re  \  s    



re  c                
   @   sL   e Zd Zdefdefdee fdefded fdefdefd	ee fgZd
S )c_nvmlVgpuPgpuMetadata_tr  rf  rg  ZpgpuVirtualizationCapsr  r
   ZhostSupportedVgpuRangerh  ri  N)	r  r  r	  r  r  r  rb  (NVML_VGPU_PGPU_METADATA_OPAQUE_DATA_SIZEr^  r
  r
  r
  r  rl  i  s    


rl  c                   @   r  )c_nvmlVgpuPgpuCompatibility_tZvgpuVmCompatibilityZcompatibilityLimitCodeN)r  r  r	  _nvmlVgpuVmCompatibility_t%_nvmlVgpuPgpuCompatibilityLimitCode_tr^  r
  r
  r
  r  rn  t  r  rn  c                   @   r  )c_nvmlVgpuSchedDataWithARR_t	avgFactor	timesliceNr  r
  r
  r
  r  rq    r  rq  c                   @   r  )c_nvmlVgpuSchedData_trs  Nr  r
  r
  r
  r  rt    r  rt  c                   @   r  )c_nvmlVgpuSchedulerParams_tvgpuSchedDataWithARRvgpuSchedDataN)r  r  r	  rq  rt  r^  r
  r
  r
  r  ru    r  ru  c                   @   s4   e Zd ZdefdefdefdefdefdefgZdS )c_nvmlVgpuSchedulerLogEntry_tr  ZtimeRunTotalZtimeRunZswRunlistIdZtargetTimeSliceZcumulativePreemptionTimeNr>  r
  r
  r
  r  rx    r  rx  c                   @   s8   e Zd Zdefdefdefdefdefdee fgZdS )c_nvmlVgpuSchedulerLog_tZengineIdschedulerPolicyarrModeschedulerParamsZentriesCountZ
logEntriesN)r  r  r	  r  ru  rx  !NVML_SCHEDULER_SW_MAX_LOG_ENTRIESr^  r
  r
  r
  r  ry    s    
ry  c                   @   "   e Zd ZdefdefdefgZdS )c_nvmlVgpuSchedulerGetState_trz  r{  r|  N)r  r  r	  r  ru  r^  r
  r
  r
  r  r    r6  r  c                   @   r  )c_nvmlVgpuSchedSetDataWithARR_trr  Z	frequencyNr  r
  r
  r
  r  r    r  r  c                   @   r  )c_nvmlVgpuSchedSetData_trs  Nr  r
  r
  r
  r  r    r  r  c                   @   r  )c_nvmlVgpuSchedulerSetParams_trv  rw  N)r  r  r	  r  r  r^  r
  r
  r
  r  r    r  r  c                   @   r~  )c_nvmlVgpuSchedulerSetState_trz  ZenableARRModer|  N)r  r  r	  r  r  r^  r
  r
  r
  r  r    r6  r  c                	   @   sD   e Zd Zde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_nvmlVgpuSchedulerCapabilities_tZsupportedSchedulersZmaxTimesliceZminTimesliceZisArrModeSupportedZmaxFrequencyForARRZminFrequencyForARRZmaxAvgFactorForARRZminAvgFactorForARRN)r  r  r	  r  *NVML_SUPPORTED_VGPU_SCHEDULER_POLICY_COUNTr^  r
  r
  r
  r  r    s    
r  c                   @   "   e Zd ZdefdefdefgZdS )c_nvmlFBCStats_tZsessionsCount
averageFPSaverageLatencyNr  r
  r
  r
  r  r    
    r  c                   @   sX   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_tr8  r  r  ZdisplayOrdinalZsessionTypeZsessionFlagsZhMaxResolutionZvMaxResolutionr9  r:  r  r  Nr;  r
  r
  r
  r  r    s    r  c                   @   r  )c_nvmlGpuInstancePlacement_tstartr(  Nr  r
  r
  r
  r  r     r  r  c                   @   sR   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    s    r  i  c                       sr   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 fgZ fddZ  Z	S )!c_nvmlGpuInstanceProfileInfo_v2_tr  r  r  r  r  r  r  r  r  r  r  r  rV  c                    r  r  )ru  r  rZ  nvmlGpuInstanceProfileInfo_v2r  rx  r
  r  rZ  %  r  z*c_nvmlGpuInstanceProfileInfo_v2_t.__init__)
r  r  r	  r  r  r  NVML_DEVICE_NAME_V2_BUFFER_SIZEr^  rZ  r{  r
  r
  rx  r  r    s     
r  c                   @   s(   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  r^  r
  r
  r
  r  r  (      r  c                   @   r  )struct_c_nvmlGpuInstance_tNr  r
  r
  r
  r  r  /  r  r  c                   @   r  ) c_nvmlComputeInstancePlacement_tr  r(  Nr  r
  r
  r
  r  r  @  r  r  c                
   @   sF   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  E      r  i  c                       sf   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 fgZ fddZ  ZS )%c_nvmlComputeInstanceProfileInfo_v2_tr  r  r  r  r  r  r  r  r  r  rV  c                    r  r  )ru  r  rZ  !nvmlComputeInstanceProfileInfo_v2r  rx  r
  r  rZ  a  r  z.c_nvmlComputeInstanceProfileInfo_v2_t.__init__)	r  r  r	  r  r  r  r^  rZ  r{  r
  r
  rx  r  r  S  s    
r  c                   @   s.   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  r^  r
  r
  r
  r  r  d      r  c                   @   s*   e Zd ZdedfdefdefdefgZdS )$c_nvmlGpuDynamicPstatesUtilization_tZ
bIsPresentr   
percentageZincThresholdZdecThresholdNr  r
  r
  r
  r  r  q  s    r  c                   @   r  )c_nvmlGpuDynamicPstatesInfo_tflagsZutilizationN)r  r  r	  r  r  NVML_MAX_GPU_UTILIZATIONSr^  r
  r
  r
  r  r  v      
r  c                   @   .   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
controllerZdefaultMinTempZdefaultMaxTempZcurrentTemptargetN)r  r  r	  r  r^  r
  r
  r
  r  r    r  r  c                   @   r  )c_nvmlGpuThermalSettings_tr  sensorN)r  r  r	  r  r   NVML_MAX_THERMAL_SENSORS_PER_GPUr^  r
  r
  r
  r  r    r  r  c                   @   s(   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_tr^  r
  r
  r
  r  r    r  r  c                 C   s<   t  }t|_d|_td}|| t|}t| |j|jgS )Nr   nvmlDeviceGetCoolerInfo)	r  nvmlCoolerInfo_v1r  r  rW  byrefrO  r  r  )handleZc_coolerInfofnrN  r
  r
  r  r    s   r  c                   @   r  )struct_c_nvmlComputeInstance_tNr  r
  r
  r
  r  r    r  r  c                
   @   sF   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  ZgpuInstanceSliceCountZcomputeInstanceSliceCountr  Nr  r
  r
  r
  r  r    r  r  c                   @   r  ) c_nvmlRowRemapperHistogramValuesmaxhighpartiallownoneNr  r
  r
  r
  r  r    r  r  i   c                   @   r  )c_nvmlConfComputeSystemState_tenvironment	ccFeaturedevToolsModeNr  r
  r
  r
  r  r    r  r  i  c                       s>   e Zd ZdefdefdefdefdefgZ fddZ  ZS )$c_nvmlSystemConfComputeSettings_v1_tr  r  r  r  ZmultiGpuModec                    r  r  )ru  r  rZ   nvmlSystemConfComputeSettings_v1r  rx  r
  r  rZ    r  z-c_nvmlSystemConfComputeSettings_v1_t.__init__r  r  r	  r  r^  rZ  r{  r
  r
  rx  r  r    s    r  c                   @   r  )c_nvmlConfComputeSystemCaps_tZcpuCapsZgpusCapsNr  r
  r
  r
  r  r    r  r  c                   @   r  )c_nvmlConfComputeMemSizeInfo_tZprotectedMemSizeKibZunprotectedMemSizeKibNr  r
  r
  r
  r  r    r  r  c                   @   s0   e Zd Zdefdefdee fdee fgZdS )!c_nvmlConfComputeGpuCertificate_tZcertChainSizeZattestationCertChainSizeZ	certChainZattestationCertChainN)r  r  r	  r  r  NVML_GPU_CERT_CHAIN_SIZE$NVML_GPU_ATTESTATION_CERT_CHAIN_SIZEr^  r
  r
  r
  r  r   	  s    

r  c                   @   s@   e Zd Zdefdefdefdee fdee fdee fgZdS )'c_nvmlConfComputeGpuAttestationReport_tZisCecAttestationReportPresentZattestationReportSizeZcecAttestationReportSizenonceZattestationReportZcecAttestationReportN)	r  r  r	  r  r  NVML_CC_GPU_CEC_NONCE_SIZE#NVML_CC_GPU_ATTESTATION_REPORT_SIZE'NVML_CC_GPU_CEC_ATTESTATION_REPORT_SIZEr^  r
  r
  r
  r  r  	  s    


r  c                   @   r  ).c_nvmlConfComputeSetKeyRotationThresholdInfo_tr  maxAttackerAdvantageNr  r  r	  r  r  r^  r
  r
  r
  r  r  	  r  r  c                   @   r  ).c_nvmlConfComputeGetKeyRotationThresholdInfo_tr  ZattackerAdvantageNr  r
  r
  r
  r  r  	  r  r  c                    s&   t   fd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                     s@   dd | D }  | i |}t |trt |tr|S | S |S )Nc                 S   s"   g | ]}t |tr| n|qS r
  )r_  r  rg  )r9  argr
  r
  r  r;  *	  s   " z4convertStrBytes.<locals>.wrapper.<locals>.<listcomp>)r_  r`  r  ra  )argskwargsrw  funcr
  r  wrapper'	  s   

z convertStrBytes.<locals>.wrapperr  )r   rB  rf  r  r  r
  r  r  convertStrBytes	  s
   	
r  c                    s   t   fdd}|S )Nc                     s2   z | i |W S  t y   td j d 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 Z_v2)ZNVMLError_FunctionNotFoundr  r  )r  r  r  r
  r  r  :	  s   z'throwOnVersionMismatch.<locals>.wrapperr   r  r
  r  r  throwOnVersionMismatch9	  s   r  c                 C   s:   t   td}|| }t| t  td7 at  d S )NnvmlInitWithFlagsr   )_LoadNvmlLibraryrW  rO  rQ  rR  _nvmlLib_refcountrT  )r  r  rN  r
  r
  r  r  F	  s   r  c                   C   s   t d d S r]  )r  r
  r
  r
  r  nvmlInitW	  s   r  c               
   C   s  t dkrt  zvt dkrqz>tjdd dkrFzttjt	ddda W n# t
yE }  zttjt	ddd	a W Y d} ~ n	d} ~ ww td
a W n t
ya }  z
tt W Y d} ~ nd} ~ ww t dkrxtt W t  dS W t  dS W t  dS t  w dS )z5
    Load the library if it isn't loaded already
    Nr   winZWINDIRz
C:/WindowszSystem32/nvml.dllZProgramFileszC:/Program Filesz!NVIDIA Corporation/NVSMI/nvml.dllzlibnvidia-ml.so.1)rS  rQ  rR  rB  platformCDLLospathrr  getenvOSErrorrO  r,  rT  )Zoser
  r
  r  r  [	  s4   &
r  c                  C   s:   t d} |  }t| t  dtk rtd8 at  d S )NnvmlShutdownr   r   )rW  rO  rQ  rR  r  rT  )r  rN  r
  r
  r  r  }	  s   r  c                 C   s   t d}t|_|| }|S )Nr  )rW  c_char_prestype)rs  r  rN  r
  r
  r  r  	  s   r  c                  C   ,   t t} td}|| tt}t| | jS )NnvmlSystemGetNVMLVersion)create_string_buffer$NVML_SYSTEM_NVML_VERSION_BUFFER_SIZErW  r  rO  r  	c_versionr  rN  r
  r
  r  r  	  
   r  c                  C   (   t  } td}|t| }t| | jS )NnvmlSystemGetCudaDriverVersionr  rW  r  rO  r  Zc_cuda_versionr  rN  r
  r
  r  r  	  
   r  c                  C   r  )N!nvmlSystemGetCudaDriverVersion_v2r  r  r
  r
  r  r  	  r  r  c                 C   s2   t d}td}|t| |td}t| |jS )Nr\  nvmlSystemGetProcessName)r  rW  r  rO  r  )r  c_namer  rN  r
  r
  r  r  	  
   r  c                  C   r  )NnvmlSystemGetDriverVersion)r  r  rW  r  rO  r  r  r
  r
  r  r  	  r  r  c                  C   sr   t d} d }td}|t| d }|tkr|tkrt|| jdkr$g S t| j }| }|t| |}t| |S )Nr   nvmlSystemGetHicVersion)	r  rW  r  rM  r'  r  r  r  rO  )c_countZhicsr  rN  Z	hic_arrayr
  r
  r  r  	  s   

r  c                  C   s4   t d} t| _td}|t| tt}t| | S )Nr   nvmlSystemGetDriverBranch)r  SystemDriverBranchInfo_v1r  rW  r  r  r  rO  )Zc_branchInfor  rN  r
  r
  r  r  	  s   r  c                  C   r  )NnvmlUnitGetCountr  rW  r  rO  r  r  r  rN  r
  r
  r  r  	  r  r  c                 C   0   t | }t }td}||t|}t| |S )NnvmlUnitGetHandleByIndex)r  c_nvmlUnit_trW  r  rO  )r  c_indexunitr  rN  r
  r
  r  r  	     r  c                 C   (   t  }td}|| t|}t| |S )NnvmlUnitGetUnitInfo)r~  rW  r  rO  r  c_infor  rN  r
  r
  r  r  	  
   r  c                 C   r  )NnvmlUnitGetLedState)r  rW  r  rO  )r  c_stater  rN  r
  r
  r  r  	  r  r  c                 C   r  )NnvmlUnitGetPsuInfo)r  rW  r  rO  r  r
  r
  r  r   	  r  r   c                 C   s0   t  }td}|| t |t|}t| |jS )NnvmlUnitGetTemperaturer  )r  rI  c_tempr  rN  r
  r
  r  r!  
  
   r!  c                 C   r  )NnvmlUnitGetFanSpeedInfo)r  rW  r  rO  )r  Zc_speedsr  rN  r
  r
  r  r$  	
  r  r$  c                 C   s:   t d}td}|| t|d }|tkrt}t| |jS )Nr   nvmlUnitGetDevices)r  rW  r  r'  rM  rO  r  )r  r  r  rN  r
  r
  r  nvmlUnitGetDeviceCount
  s   r&  c                 C   s@   t t| }t|j }| }td}|| t||}t| |S )Nr%  )r  r&  r^  r  rW  r  rO  )r  r  device_array	c_devicesr  rN  r
  r
  r  r%  
  s   
r%  c                  C   r  )NZnvmlDeviceGetCount_v2r  r  r
  r
  r  nvmlDeviceGetCount%
  r  r)  c                 C   r  )NZnvmlDeviceGetHandleByIndex_v2r  r^  rW  r  rO  )r  r  r  r  rN  r
  r
  r  nvmlDeviceGetHandleByIndex,
  r  r+  c                 C   r  )NnvmlDeviceGetHandleBySerialr  r^  rW  r  rO  )r  c_serialr  r  rN  r
  r
  r  r,  4
     r,  c                 C   r  )NnvmlDeviceGetHandleByUUIDr-  )r  c_uuidr  r  rN  r
  r
  r  r0  =
  r/  r0  c                 C   r  )NZ nvmlDeviceGetHandleByPciBusId_v2r-  )ZpciBusIdZc_busIdr  r  rN  r
  r
  r  nvmlDeviceGetHandleByPciBusIdF
  r/  r2  c                 C   .   t t}td}|| |tt}t| |jS )NnvmlDeviceGetName)r  r  rW  r  rO  r  )r  r	  r  rN  r
  r
  r  r4  O
  
   r4  c                   @   r  )c_nvmlDevicePerfModes_v1_tr  r  Nr  r  r	  r  r  NVML_PERF_MODES_BUFFER_SIZEr^  r
  r
  r
  r  r6  W
  r  r6  i c                 C   0   t  }t|_td}|| t|}t| |jS )NnvmlDeviceGetPerformanceModes)r6  nvmlDevicePerfModes_v1r  rW  r  rO  r  )r  Z	perfModesr  rN  r
  r
  r  r:  _
     r:  c                   @   r  )"c_nvmlDeviceCurrentClockFreqs_v1_tr  r  Nr7  r
  r
  r
  r  r=  h
  r  r=  c                 C   r9  )NnvmlDeviceGetCurrentClockFreqs)r=  nvmlDeviceCurrentClockFreqs_v1r  rW  r  rO  r  )r  ZcurrentClockFreqsr  rN  r
  r
  r  r>  p
  r<  r>  c                 C   *   t  }td}|| t|}t| |jS )NnvmlDeviceGetBoardIdr  )r  c_idr  rN  r
  r
  r  rA  y
  
   rA  c                 C   r@  )NnvmlDeviceGetMultiGpuBoardr  )r  Z
c_multiGpur  rN  r
  r
  r  rD  
  rC  rD  c                 C   r@  )NnvmlDeviceGetBrand)_nvmlBrandType_trW  r  rO  r  )r  c_typer  rN  r
  r
  r  rE  
  rC  rE  c                 C   r  )NnvmlDeviceGetC2cModeInfoV)r  rW  r  rO  r  r  r  rN  r
  r
  r  nvmlDeviceGetC2cModeInfoV1
  r  rJ  c                 C      t | S r  )rJ  r  r
  r
  r  rH  
     rH  c                 C   r3  )NnvmlDeviceGetBoardPartNumber)r  #NVML_DEVICE_PART_NUMBER_BUFFER_SIZErW  r  rO  r  )r  Zc_part_numberr  rN  r
  r
  r  rN  
  r5  rN  c                 C   r3  )NnvmlDeviceGetSerial)r  NVML_DEVICE_SERIAL_BUFFER_SIZErW  r  rO  r  )r  r.  r  rN  r
  r
  r  rP  
  r5  rP  c                 C   sD   t |tu}|r
|nt|}td}|| |}|r|S t| |jS )NnvmlDeviceGetModuleId)rI  r  r  rW  rO  r  )r  moduleIdisReferenceZmoduleIdRefr  rN  r
  r
  r  rR  
  s   
rR  c                 C   8   t | }| }td}|| |t|t|}t| |S )NnvmlDeviceGetMemoryAffinityr  rW  r  _nvmlAffinityScope_trO  )r  ZnodeSetSizescopeaffinity_array
c_affinityr  rN  r
  r
  r  rV  
     rV  c                 C   rU  )N#nvmlDeviceGetCpuAffinityWithinScoperW  )r  
cpuSetSizerY  rZ  r[  r  rN  r
  r
  r  r]  
  r\  r]  c                 C   s2   t | }| }td}|| |t|}t| |S )NnvmlDeviceGetCpuAffinity)r  rW  r  rO  )r  r^  rZ  r[  r  rN  r
  r
  r  r_  
     r_  c                 C      t d}|| }t| d S )NnvmlDeviceSetCpuAffinityrW  rO  r  r  rN  r
  r
  r  rb  
     rb  c                 C   ra  )NnvmlDeviceClearCpuAffinityrc  rd  r
  r
  r  rf  
  re  rf  c                 C   *   t d}t }|| t|}t| |jS )NnvmlDeviceGetNumaNodeIdrW  r  r  rO  r  )r  r  noderN  r
  r
  r  rh  
  
   rh  c                 C   r@  )NnvmlDeviceGetMinorNumberr  )r  Zc_minor_numberr  rN  r
  r
  r  rl  
  rC  rl  c                 C   r3  )NnvmlDeviceGetUUID)r  NVML_DEVICE_UUID_V2_BUFFER_SIZErW  r  rO  r  )r  r1  r  rN  r
  r
  r  rm  
  r5  rm  c                 C   s4   t t}td}|| t||tt}t| |jS )NnvmlDeviceGetInforomVersion)r  'NVML_DEVICE_INFOROM_VERSION_BUFFER_SIZErW  _nvmlInforomObject_tr  rO  r  )r  ZinfoRomObjectr   r  rN  r
  r
  r  ro  
  s   
ro  c                 C   r3  )N nvmlDeviceGetInforomImageVersion)r  rp  rW  r  rO  r  r  r   r  rN  r
  r
  r  rr  
  r5  rr  c                 C   r@  )N)nvmlDeviceGetInforomConfigurationChecksumr  )r  Z
c_checksumr  rN  r
  r
  r  rt     rC  rt  c                 C   ra  )NnvmlDeviceValidateInforomrc  rd  r
  r
  r  ru    re  ru  c                 C   s<   t  }t }td}|| t|t|}t| |j|jgS )NnvmlDeviceGetLastBBXFlushTime)r  r  rW  r  rO  r  )r  Zc_timestampZc_durationUsr  rN  r
  r
  r  rv       rv  c                 C   r@  )NnvmlDeviceGetDisplayMode_nvmlEnableState_trW  r  rO  r  r  c_moder  rN  r
  r
  r  rx    rC  rx  c                 C   r@  )NnvmlDeviceGetDisplayActivery  r{  r
  r
  r  r}    rC  r}  c                 C   r@  )NnvmlDeviceGetPersistenceModery  )r  r  r  rN  r
  r
  r  r~  %  rC  r~  c                 C      t d}|| |}t| d S )NnvmlDeviceGetPciInfoExtrc  rI  r
  r
  r  r  ,     
r  c                 C   r  )NnvmlDeviceGetPciInfo_v3r  rW  r  rO  rI  r
  r
  r  r  2  r  r  c                 C   rK  r  )r  rL  r
  r
  r  nvmlDeviceGetPciInfo9  rM  r  c                 C   0   t  }td}|| t|t|}t| |jS )NnvmlDeviceGetClockInfor  rW  _nvmlClockType_tr  rO  r  r  rI  c_clockr  rN  r
  r
  r  r  <  r#  r  c                 C   r  )NnvmlDeviceGetMaxClockInfor  r  r
  r
  r  r  D  r#  r  c                 C   r  )NnvmlDeviceGetApplicationsClockr  r  r
  r
  r  r  L  r#  r  c                 C   r  )N"nvmlDeviceGetMaxCustomerBoostClockr  r  r
  r
  r  r  S  r#  r  c                 C   6   t  }td}|| t|t|t|}t| |jS )NnvmlDeviceGetClock)r  rW  r  _nvmlClockId_tr  rO  r  )r  rI  r  r  r  rN  r
  r
  r  r  Z  s
   r  c                 C   r  )N%nvmlDeviceGetDefaultApplicationsClockr  r  r
  r
  r  r  b  r#  r  c                 C   s   t d}td}|| t|d }|tkrg S |tkrAt |j }| }|| t||}t| g }t|jD ]	}|||  q5|S t	|)Nr   "nvmlDeviceGetSupportedMemoryClocks
r  rW  r  rM  r'  r  rO  rangerp  r  )r  r  r  rN  clocks_arrayc_clocksprocsir
  r
  r  r  j  s   
r  c           	      C   s   t d}td}|| t |t|d }|tkrg S |tkrGt |j }| }|| t |t||}t| g }t|jD ]	}|||  q;|S t	|)Nr   $nvmlDeviceGetSupportedGraphicsClocksr  )	r  ZmemoryClockMHzr  r  rN  r  r  r  r  r
  r
  r  r    s   
r  c                 C   r@  )NnvmlDeviceGetFanSpeedr  )r  c_speedr  rN  r
  r
  r  r    rC  r  c                 C   ,   t  }td}|| |t|}t| |jS )NnvmlDeviceGetFanSpeed_v2r  r  fanr  r  rN  r
  r
  r  r    
   r  c                   @   r  )c_nvmlFanSpeedInfo_tr  r  r  Nr  r
  r
  r
  r  r    r6  r  c                 C   s6   t  }d|_t|_td}|| t|}t| |jS )Nr   nvmlDeviceGetFanSpeedRPM)r  r  nvmlFanSpeedInfo_v1r  rW  r  rO  r  )r  Z
c_fanSpeedr  rN  r
  r
  r  r    s   r  c                 C   r  )NnvmlDeviceGetTargetFanSpeedr  r  r
  r
  r  r    r  r  c                 C   r@  )NnvmlDeviceGetNumFansr  )r  Z	c_numFansr  rN  r
  r
  r  r    rC  r  c                 C      t d}|| |}t| tS )NnvmlDeviceSetDefaultFanSpeed_v2rW  rO  rM  )r  r  r  rN  r
  r
  r  r    r  r  c                 C   sh   t |tupt |tu}|r|nt|}|r|nt|}td}|| ||}t| |r.tS |j|jgS )NnvmlDeviceGetMinMaxFanSpeedrI  r  r  rW  rO  rM  r  )r  ZminSpeedZmaxSpeedrT  ZminSpeedRefZmaxSpeedRefr  rN  r
  r
  r  r       r  c                 C   sF   t |tu}|r
|nt|}td}|| ||}t| |r tS |jS )N nvmlDeviceGetFanControlPolicy_v2r  )r  r  fanControlPolicyrT  ZfanControlPolicyRefr  rN  r
  r
  r  r    s   r  c                 C   s$   t d}|| |t|}t| tS )NnvmlDeviceSetFanControlPolicy)rW  _nvmlFanControlPolicy_trO  rM  )r  r  r  r  rN  r
  r
  r  r       r  c                   @   r3  )c_nvmlTemperature_v1_tr  
sensorTypetemperatureN)r  r  r	  r  _nvmlTemperatureSensors_tr  r^  r
  r
  r
  r  r    r6  r  c                 C   s:   t  }t|_t||_td}|| t|}t| |jS )NnvmlDeviceGetTemperatureV)	r  nvmlTemperature_v1r  r  r  rW  r  rO  r  r  r  r"  r  rN  r
  r
  r  nvmlDeviceGetTemperatureV1  s   
r  c                 C   s   |t kr	t| |S ttr  )r  r  r  $NVML_ERROR_ARGUMENT_VERSION_MISMATCH)r  r  r  r
  r
  r  r    s   
r  c                 C   r  )NnvmlDeviceGetTemperature)r  rW  r  r  rO  r  r  r
  r
  r  r    r#  r  c                 C   r  )N!nvmlDeviceGetTemperatureThreshold)r  rW  _nvmlTemperatureThresholds_tr  rO  r  )r  	thresholdr"  r  rN  r
  r
  r  r    r#  r  c                 C   s4   t  }||_td}|| t|t|}t| d S )N!nvmlDeviceSetTemperatureThreshold)r  r  rW  r  r  rO  )r  r  tempr"  r  rN  r
  r
  r  r    s   r  c                 C   r9  )NnvmlDeviceGetMarginTemperature)rY  nvmlMarginTemperature_v1r  rW  r  rO  rZ  )r  Zc_marginTempInfor  rN  r
  r
  r  r    s   r  c                 C   r@  )NnvmlDeviceGetPowerState_nvmlPstates_trW  r  rO  r  r  Zc_pstater  rN  r
  r
  r  r  #  rC  r  c                 C   r@  )NnvmlDeviceGetPerformanceStater  r  r
  r
  r  r  *  rC  r  c                 C   r@  )N nvmlDeviceGetPowerManagementModery  )r  Z
c_pcapModer  rN  r
  r
  r  r  1  rC  r  c                 C   r@  )N!nvmlDeviceGetPowerManagementLimitr  r  Zc_limitr  rN  r
  r
  r  r  8  rC  r  c                 C   <   t  }t  }td}|| t|t|}t| |j|jgS )N,nvmlDeviceGetPowerManagementLimitConstraintsr  )r  Z
c_minLimitZ
c_maxLimitr  rN  r
  r
  r  r  @  rw  r  c                 C   r@  )N(nvmlDeviceGetPowerManagementDefaultLimitr  r  r
  r
  r  r  I  rC  r  c                 C   r@  )NnvmlDeviceGetEnforcedPowerLimitr  r  r
  r
  r  r  R  rC  r  c                 C   r@  )NnvmlDeviceGetPowerUsager  )r  Zc_wattsr  rN  r
  r
  r  r  Y  rC  r  c                 C   r@  )N#nvmlDeviceGetTotalEnergyConsumption)Zc_uint64rW  r  rO  r  )r  Zc_millijoulesr  rN  r
  r
  r  r  `  rC  r  c                 C   r  )NnvmlDeviceGetGpuOperationMode)_nvmlGpuOperationMode_trW  r  rO  r  r  Zc_currStateZc_pendingStater  rN  r
  r
  r  r  h  rw  r  c                 C      t | d S r]  r  rL  r
  r
  r  $nvmlDeviceGetCurrentGpuOperationModeq  r  r  c                 C   r  Nr   r  rL  r
  r
  r  $nvmlDeviceGetPendingGpuOperationModeu  r  r  c                 C   sB   |s
t  }td}n
t }||_td}|| t|}t| |S )NnvmlDeviceGetMemoryInfoZnvmlDeviceGetMemoryInfo_v2)r  rW  r  r  r  rO  )r  r  c_memoryr  rN  r
  r
  r  r  x  s   
r  c                 C   r  )NnvmlDeviceGetBAR1MemoryInfo)r  rW  r  rO  )r  Zc_bar1_memoryr  rN  r
  r
  r  r    r  r  c                 C   r@  )NnvmlDeviceGetComputeMode)_nvmlComputeMode_trW  r  rO  r  r{  r
  r
  r  r    rC  r  c                 C   s<   t  }t  }td}|| t|t|}t| |j|jfS )N"nvmlDeviceGetCudaComputeCapabilityr  )r  Zc_majorZc_minorr  rN  r
  r
  r  r    rw  r  c                 C   r  )NnvmlDeviceGetEccModery  r  r
  r
  r  r    rw  r  c                 C   r  r]  r  rL  r
  r
  r  nvmlDeviceGetCurrentEccMode  r  r  c                 C   r  r  r  rL  r
  r
  r  nvmlDeviceGetPendingEccMode  r  r  c                 C   s,   t  }td}|| t|}t| |jgS )NnvmlDeviceGetDefaultEccModery  )r  Zc_defaultStater  rN  r
  r
  r  r    s
   r  c                 C   r  )NnvmlDeviceGetTotalEccErrors)r  rW  _nvmlMemoryErrorType_t_nvmlEccCounterType_tr  rO  r  )r  	errorTypecounterTyper  r  rN  r
  r
  r  r    s   
r  c                 C   s4   t  }td}|| t|t|t|}t| |S )NnvmlDeviceGetDetailedEccErrors)r  rW  r  r  r  rO  )r  r  r  Zc_countsr  rN  r
  r
  r  r    s   
r  c                 C   s<   t  }td}|| t|t|t|t|}t| |jS )NnvmlDeviceGetMemoryErrorCounter)r  rW  r  r  _nvmlMemoryLocation_tr  rO  r  )r  r  r  ZlocationTyper  r  rN  r
  r
  r  r    s   r  c                 C   r  )NnvmlDeviceGetUtilizationRates)r  rW  r  rO  )r  c_utilr  rN  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceGetEncoderUtilizationr  r  r  Zc_samplingPeriodr  rN  r
  r
  r  r    rw  r  c                 C   r  )NnvmlDeviceGetDecoderUtilizationr  r  r
  r
  r  r    rw  r  c                 C   r  )NnvmlDeviceGetJpgUtilizationr  r  r
  r
  r  r    rw  r  c                 C   r  )NnvmlDeviceGetOfaUtilizationr  r  r
  r
  r  r    rw  r  c                 C   r@  )NnvmlDeviceGetPcieReplayCounterr  )r  Zc_replayr  rN  r
  r
  r  r    rC  r  c                 C   r  )NnvmlDeviceGetDriverModel)_nvmlDriverModel_trW  r  rO  r  )r  Zc_currModelZc_pendingModelr  rN  r
  r
  r  r    rw  r  c                 C   r  r]  r  rL  r
  r
  r  nvmlDeviceGetCurrentDriverModel  r  r  c                 C   r  r  r  rL  r
  r
  r  nvmlDeviceGetPendingDriverModel	  r  r  c                 C   r3  )NnvmlDeviceGetVbiosVersion)r  %NVML_DEVICE_VBIOS_VERSION_BUFFER_SIZErW  r  rO  r  rs  r
  r
  r  r    r5  r  c           	      C      t d}td}|| t|d }|tkrg S |tkrV|jd d |_t|j }| }|| t||}t| g }t|jD ]}t	|| }|j
tjkrNd |_
|| q=|S t|)Nr   'nvmlDeviceGetComputeRunningProcesses_v2r   r
   r  rW  r  rM  r'  r  r  rO  r  re  r  "NVML_VALUE_NOT_AVAILABLE_ulonglongrp  r  	r  r  r  rN  Z
proc_arrayc_procsr  r  r  r
  r
  r  r    &   
r  c           	      C   r  )Nr   'nvmlDeviceGetComputeRunningProcesses_v3r   r
   r  rW  r  rM  r'  r  c_nvmlProcessInfo_v3_trO  r  re  r  r  rp  r  r  r
  r
  r  r  5  &   
r  c                 C   rK  r  )r  rL  r
  r
  r  $nvmlDeviceGetComputeRunningProcessesW     r  c           	      C   r  )Nr   (nvmlDeviceGetGraphicsRunningProcesses_v2r   r
   r  r  r
  r
  r  r  [  r   r  c           	      C   r  )Nr   (nvmlDeviceGetGraphicsRunningProcesses_v3r   r
   r  r  r
  r
  r  r  y  r  r  c                 C   rK  r  )r  rL  r
  r
  r  %nvmlDeviceGetGraphicsRunningProcesses  r  r	  c                 C   rK  r  )*nvmlDeviceGetMPSComputeRunningProcesses_v3rL  r
  r
  r  'nvmlDeviceGetMPSComputeRunningProcesses  r  r  c           	      C   r  )Nr   *nvmlDeviceGetMPSComputeRunningProcesses_v2r   r
   r  r  r
  r
  r  r    r  r  c           	      C   r  )Nr   r
  r   r
   r  r  r
  r
  r  r
    r  r
  c           
      C   s   t  }||_||_td}|| t|}|tkrg S |tkr_t|j }t	| t
t|_|| t|}t| g }t|jD ]}|j| }	|	jtjkrNd |	_|	jtjkrWd |	_||	 q>|S t|)N%nvmlDeviceGetRunningProcessDetailList)c_nvmlProcessDetailList_tr  r  rW  r  rM  r'  r  r  castr  r  rO  r  r  r  r  r  rp  r  )
r  r  r  Zc_processDetailListr  rN  r  r  r  r  r
  r
  r  r    s,   

r  c                 C   r  )N%nvmlDeviceGetAutoBoostedClocksEnabledry  )r  Zc_isEnabledZc_defaultIsEnabledr  rN  r
  r
  r  r  
  rw  r  c                 C   "   t d}|| t|}t| d S )NnvmlUnitSetLedState)rW  r  rO  )r  r  r  rN  r
  r
  r  r       r  c                 C   r  )NnvmlDeviceSetPersistenceModerW  rz  rO  r  r  r  rN  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceSetComputeMode)rW  r  rO  r  r
  r
  r  r     r  r  c                 C   r  )NnvmlDeviceSetEccModer  r  r
  r
  r  r  &  r  r  c                 C   r  )NnvmlDeviceClearEccErrorCounts)rW  r  rO  )r  r  r  rN  r
  r
  r  r  ,  r  r  c                 C   r  )NnvmlDeviceSetDriverModel)rW  r  rO  )r  rh  r  rN  r
  r
  r  r  2  r  r  c                 C   r  )N%nvmlDeviceSetAutoBoostedClocksEnabledr  )r  enabledr  rN  r
  r
  r  r  8  r  r  c                 C   (   t d}|| t|t|}t| d S )N,nvmlDeviceSetDefaultAutoBoostedClocksEnabled)rW  rz  r  rO  )r  r  r  r  rN  r
  r
  r  r  ?     r  c                 C   (   t d}|| t|t|}t| d S )NnvmlDeviceSetGpuLockedClocksrW  r  rO  )r  ZminGpuClockMHzZmaxGpuClockMHzr  rN  r
  r
  r  r!  F  r  r!  c                 C   ra  )NnvmlDeviceResetGpuLockedClocksrc  rd  r
  r
  r  r#  L  re  r#  c                 C   r   )NnvmlDeviceSetMemoryLockedClocksr"  )r  ZminMemClockMHzmaxMemClockMHzr  rN  r
  r
  r  r$  R  r  r$  c                 C   ra  )N!nvmlDeviceResetMemoryLockedClocksrc  rd  r
  r
  r  r&  X  re  r&  c                 C   B   t |tu}|r
|nt|}td}|| |}t| |rtS |S )NnvmlDeviceGetClkMonStatus)rI  r  r  rW  rO  rM  )r  Zc_clkMonInforT  Zc_clkMonInfoRefr  rN  r
  r
  r  r(  ^  s   
r(  c                 C   r   )NnvmlDeviceSetApplicationsClocksr"  )r  r%  ZmaxGraphicsClockMHzr  rN  r
  r
  r  r)  g  r  r)  c                 C   ra  )N!nvmlDeviceResetApplicationsClocksrc  rd  r
  r
  r  r*  n  re  r*  c                 C   r  )N!nvmlDeviceSetPowerManagementLimitr"  )r  limitr  rN  r
  r
  r  r+  u  r  r+  c                 C   r  )NnvmlDeviceSetGpuOperationMode)rW  r  rO  r  r
  r
  r  r-  |  r  r-  c                  C   s&   t d} t }| t|}t| |S )NnvmlEventSetCreate)rW  c_nvmlEventSet_tr  rO  )r  eventSetrN  r
  r
  r  r.    s
   r.  c                 C   s$   t d}|| t||}t| d S )NnvmlDeviceRegisterEvents)rW  r  rO  )r  Z
eventTypesr0  r  rN  r
  r
  r  r1    r  r1  c                 C   r@  )N nvmlDeviceGetSupportedEventTypesr  rW  r  rO  r  )r  Zc_eventTypesr  rN  r
  r
  r  r2    rC  r2  c                 C   s.   t d}t }|| t|t|}t| |S )NnvmlEventSetWait_v2)rW  r]  r  r  rO  )r0  	timeoutmsr  datarN  r
  r
  r  r4    s
   r4  c                 C   s
   t | |S r  )r4  )r0  r5  r
  r
  r  nvmlEventSetWait  r\  r7  c                 C   ra  )NnvmlEventSetFreerc  )r0  r  rN  r
  r
  r  r8    re  r8  c                 C   s0   t d}t }|| |t|}t| |jdkS )NnvmlDeviceOnSameBoardr   ri  )Zhandle1Zhandle2r  ZonSameBoardrN  r
  r
  r  r9    s
   
r9  c                 C   rg  )N#nvmlDeviceGetCurrPcieLinkGenerationrW  r  r  rO  r  r  r  genrN  r
  r
  r  r:    rk  r:  c                 C   rg  )N"nvmlDeviceGetMaxPcieLinkGenerationr;  r<  r
  r
  r  r>    rk  r>  c                 C   rg  )NnvmlDeviceGetCurrPcieLinkWidthr;  r  r  widthrN  r
  r
  r  r?    rk  r?  c                 C   rg  )NnvmlDeviceGetMaxPcieLinkWidthr;  r@  r
  r
  r  rB    rk  rB  c                 C   rg  )N%nvmlDeviceGetGpuMaxPcieLinkGenerationr;  r<  r
  r
  r  rC    rk  rC  c                 C   r@  )N+nvmlDeviceGetSupportedClocksThrottleReasonsr3  r  Z	c_reasonsr  rN  r
  r
  r  rD    rC  rD  c                 C   r@  )N(nvmlDeviceGetSupportedClocksEventReasonsr3  rE  r
  r
  r  rF    rC  rF  c                 C   r@  )N)nvmlDeviceGetCurrentClocksThrottleReasonsr3  rE  r
  r
  r  rG    rC  rG  c                 C   r@  )N&nvmlDeviceGetCurrentClocksEventReasonsr3  rE  r
  r
  r  rH    rC  rH  c                 C   rg  )NnvmlDeviceGetIndexr;  )r  r  r  rN  r
  r
  r  rI    rk  rI  c                 C   r@  )NnvmlDeviceGetAccountingModery  r{  r
  r
  r  rJ    rC  rJ  c                 C   r  )NnvmlDeviceSetAccountingModer  r  r
  r
  r  rK    r  rK  c                 C   ra  )NnvmlDeviceClearAccountingPidsrc  rd  r
  r
  r  rL    re  rL  c                 C   s@   t  }td}|| t|t|}t| |jtjkrd |_|S )NnvmlDeviceGetAccountingStats)r_  rW  r  r  rO  r`  r  r  )r  r  statsr  rN  r
  r
  r  rM    s   rM  c                 C   sP   t t| }t |j  }td}|| t||}t| ttt|d|j S )NnvmlDeviceGetAccountingPidsr   )	r  !nvmlDeviceGetAccountingBufferSizer  rW  r  rO  listmapint)r  r  Zpidsr  rN  r
  r
  r  rO    s   rO  c                 C   .   t  }td}|| t|}t| t|jS )NrP  )r  rW  r  rO  rS  r  )r  Z
bufferSizer  rN  r
  r
  r  rP  &  
   
rP  c                 C   s   t |}td}td}|| |t|d }|tkr!|tkr!t||jd d |_t|j }| }|| |t||}t	| t
tt|d|j S )Nr   nvmlDeviceGetRetiredPagesr   r
   )_nvmlPageRetirementCause_tr  rW  r  rM  r'  r  r  r  rO  rQ  rR  rS  )r  sourceFilterc_sourcer  r  rN  
page_arrayc_pagesr
  r
  r  rV  -  s   
rV  c                    s   t |}td}td}|| |t|d }|tkr!|tkr!t||jd d |_t|j }|  t|j }| || |t| }t	|  fddt
|jD S )Nr   nvmlDeviceGetRetiredPages_v2r   r
   c                    s&   g | ]}t  | t | d qS ))addressr  )rS  )r9  r  r[  Zc_timesr
  r  r;  [  s   & z0nvmlDeviceGetRetiredPages_v2.<locals>.<listcomp>)rW  r  rW  r  rM  r'  r  r  r  rO  r  )r  rX  rY  r  r  rN  rZ  Ztimes_arrayr
  r^  r  r\  D  s   

r\  c                 C   rT  )N&nvmlDeviceGetRetiredPagesPendingStatus)rz  rW  r  rO  rS  r  )r  Z	c_pendingr  rN  r
  r
  r  r_  ]  rU  r_  c                 C   s4   t  }td}|| t|t|}t| t|jS )NnvmlDeviceGetAPIRestriction)rz  rW  _nvmlRestrictedAPI_tr  rO  rS  r  )r  apiTypeZc_permissionr  rN  r
  r
  r  r`  d  s
   
r`  c                 C   r  )NnvmlDeviceSetAPIRestriction)rW  ra  rz  rO  )r  rb  ZisRestrictedr  rN  r
  r
  r  rc  k  r  rc  c                 C   r  )NnvmlDeviceGetBridgeChipInfo)r  rW  r  rO  )r  ZbridgeHierarchyr  rN  r
  r
  r  rd  q  r  rd  c                 C   s   t |}t|}td}t }td}|| ||t|t|d }|tkr(t||jt	 }	|	 }
|| ||t|t||
}t
| |j|
d|j fS )Nr   nvmlDeviceGetSamples)_nvmlSamplingType_tr  r  r  rW  r  rM  r  r  r  rO  )r  Zsampling_typer  Zc_sampling_typec_time_stampZc_sample_countc_sample_value_typer  rN  sampleArray	c_samplesr
  r
  r  re  x  s   
re  c                 C   2   t |}t }td}|| |t|}t| |S )NnvmlDeviceGetViolationStatus)_nvmlPerfPolicyType_tr  rW  r  rO  )r  ZperfPolicyTypeZc_perfPolicy_typeZ
c_violTimer  rN  r
  r
  r  rl    s   rl  c                 C   r  )NnvmlDeviceGetPcieThroughput)r  rW  _nvmlPcieUtilCounter_tr  rO  r  )r  counterr  r  rN  r
  r
  r  rn    r#  rn  c                 C   sj   t d}td}|| t|d }|tkrt|t|j }| }|| t||}t| t|d|j S )Nr   nvmlSystemGetTopologyGpuSet	r  rW  r  rM  r  r^  r  rO  rQ  )Z	cpuNumberr  r  rN  r'  r(  r
  r
  r  rq    s   
rq  c                 C   sn   t d}td}|| |t|d }|tkrt|t|j }| }|| |t||}t| t|d|j S )Nr    nvmlDeviceGetTopologyNearestGpusrr  )r  levelr  r  rN  r'  r(  r
  r
  r  rs    s   
rs  c                 C   r  )N#nvmlDeviceGetTopologyCommonAncestor)_nvmlGpuTopologyLevel_trW  r  rO  r  )device1device2Zc_levelr  rN  r
  r
  r  ru    r  ru  c                 C   s@   t  }t  }td}|| ||t|t|}t| |j|jfS )N%nvmlDeviceGetNvLinkUtilizationCounterr3  )r  linkrp  Zc_rxcounterZc_txcounterr  rN  r
  r
  r  ry    s   ry  c                 C   s"   t d}|| |||}t| d S )N(nvmlDeviceFreezeNvLinkUtilizationCounterrc  )r  rz  rp  freezer  rN  r
  r
  r  r{    r  r{  c                 C   s    t d}|| ||}t| d S )N'nvmlDeviceResetNvLinkUtilizationCounterrc  )r  rz  rp  r  rN  r
  r
  r  r}       r}  c                 C   s(   t d}|| ||t||}t| d S )N%nvmlDeviceSetNvLinkUtilizationControlrW  r  rO  )r  rz  rp  controlresetr  rN  r
  r
  r  r    r  r  c                 C   ,   t  }td}|| ||t|}t| |S )N%nvmlDeviceGetNvLinkUtilizationControl)r  rW  r  rO  )r  rz  rp  Z	c_controlr  rN  r
  r
  r  r    
   r  c                 C   .   t  }td}|| ||t|}t| |jS )NnvmlDeviceGetNvLinkCapabilityr  )r  rz  
capabilityc_capResultr  rN  r
  r
  r  r    
   r  c                 C   r  )NnvmlDeviceGetNvLinkErrorCounterr3  )r  rz  rp  Zc_resultr  rN  r
  r
  r  r    r  r  c                 C   r  )N"nvmlDeviceResetNvLinkErrorCountersrc  )r  rz  r  rN  r
  r
  r  r    r  r  c                 C   *   t  }td}|| |t|}t| |S )NZ#nvmlDeviceGetNvLinkRemotePciInfo_v2r  )r  rz  Zc_pcir  rN  r
  r
  r   nvmlDeviceGetNvLinkRemotePciInfo  
   r  c                 C   r  )N#nvmlDeviceGetNvLinkRemoteDeviceType)_nvmlNvLinkDeviceType_trW  r  rO  r  )r  rz  rG  r  rN  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceGetNvLinkStater  )r  rz  Z
c_isActiver  rN  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceGetNvLinkVersionr  )r  rz  r   r  rN  r
  r
  r  r    r  r  c                 C   s"   t d}|t| |}t| d S )NnvmlDeviceModifyDrainStaterW  pointerrO  )pciInfoZnewStater  rN  r
  r
  r  r    r  r  c                 C   .   t  }td}|t| t|}t| |jS )NnvmlDeviceQueryDrainState)r  rW  r  r  rO  r  )r  Z
c_newStater  rN  r
  r
  r  r    r  r  c                 C       t d}|t| }t| d S )NnvmlDeviceRemoveGpur  r  r  rN  r
  r
  r  r  #  r~  r  c                 C   r  )NnvmlDeviceDiscoverGpusr  r  r
  r
  r  r  )  r~  r  c              	   C      t t| }| }td}t|D ]\}}z|\|| _|| _W q ty/   ||| _Y qw || tt|t|}t	| |S )NnvmlDeviceGetFieldValues
r  lenrW  	enumerater  r  	TypeErrorc_int32r  rO  r  ZfieldIdsZ
values_arrvaluesr  r  r  rN  r
  r
  r  r  /     r  c              	   C   r  )NnvmlDeviceClearFieldValuesr  r  r
  r
  r  r  >  r  r  c                 C   r@  )NnvmlDeviceGetVirtualizationModer3  )r  Zc_virtualization_moder  rN  r
  r
  r  r  M  rC  r  c                 C      t d}|| |S )NnvmlDeviceSetVirtualizationModerW  )r  Zvirtualization_moder  r
  r
  r  r  T     
r  c                 C   2   t d}t|_td}|| t|}t| |jS )Nr   "nvmlDeviceGetVgpuHeterogeneousMode)r  VgpuHeterogeneousMode_v1r  rW  r  rO  r  )r  c_vgpuHeterogeneousModer  rN  r
  r
  r  r  X     r  c                 C   s6   t d}t|_||_td}|| t|}t| tS )Nr   "nvmlDeviceSetVgpuHeterogeneousMode)r  r  r  r  rW  r  rO  rM  )r  Zheterogeneous_moder  r  rN  r
  r
  r  r  `  s   r  c                 C   r  )Nr   nvmlVgpuInstanceGetPlacementId)r  VgpuPlacementId_v1r  rW  r  rO  r  )r  Zc_placementr  rN  r
  r
  r  r  i  r  r  c           	      C   s   t d}td}|| |t|}t| |dkr&t }t|_|j|_||_	n|dkr1t
 }t|_nttt |j }| |_td}|| |t|}t| |S )Nr   nvmlVgpuTypeGetMaxInstancesr   r   (nvmlDeviceGetVgpuTypeSupportedPlacements)r  rW  r  rO  r  VgpuPlacementList_v2r  r  r  r  r  VgpuPlacementList_v1r  r  r  )	r  
vgpuTypeIdr  r  c_max_instancesr  rN  c_vgpu_placementsc_placementsr
  r
  r  r  q  s&   
r  c                 C   s   t d}td}|| |t|}t| |dkr#t }t|_|j|_n
|dkr-t	 }t
|_t |j }| |_td}|| |t|}t| |S )Nr   r  r   r   (nvmlDeviceGetVgpuTypeCreatablePlacements)r  rW  r  rO  r  r  r  r  r  r  r  r  )r  r  r  r  r  rN  r  r  r
  r
  r  r    s"   

r  c                 C   r  )NnvmlGetVgpuDriverCapabilities)r  rW  _nvmlVgpuDriverCapability_tr  rO  r  )r  r  r  rN  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceGetVgpuCapabilities)r  rW  _nvmlDeviceVgpuCapability_tr  rO  r  )r  r  r  r  rN  r
  r
  r  r    r#  r  c                 C   s$   t d}|| t||}t| tS )NnvmlDeviceSetVgpuCapabilities)rW  r  rO  rM  )r  r  r  r  rN  r
  r
  r  r    r  r  c                 C      t d}td}|| t|d }|tkrg S |tkrAt|j }| }|| t||}t| g }t|jD ]	}|	||  q5|S t
|)Nr   nvmlDeviceGetSupportedVgpusr  rW  r  rM  r'  _nvmlVgpuTypeId_tr  rO  r  rp  r  r  c_vgpu_countr  rN  Zvgpu_type_ids_arrayZc_vgpu_type_idsvgpusr  r
  r
  r  r       
r  c                 C   r  )Nr   nvmlDeviceGetCreatableVgpusr  r  r
  r
  r  r    r  r  c                 C   ,   t d}td}|| t|}t| |jS )Nr   #nvmlVgpuTypeGetGpuInstanceProfileIdr  )r  Zc_profile_idr  rN  r
  r
  r  r    
   r  c                 C   6   t t}tt}td}|| |t|}t| |jS )NnvmlVgpuTypeGetClassr  NVML_DEVICE_NAME_BUFFER_SIZEr  rW  r  rO  r  )r  Zc_classc_buffer_sizer  rN  r
  r
  r  r       r  c                 C   r  )NnvmlVgpuTypeGetNamer  )r  r	  r  r  rN  r
  r
  r  r    r  r  c                 C   s@   t d}t d}td}|| t|t|}t| |j|jfS )Nr   nvmlVgpuTypeGetDeviceIDr3  )r  Zc_device_idZc_subsystem_idr  rN  r
  r
  r  r    s   r  c                 C   r  )Nr   nvmlVgpuTypeGetFramebufferSizer3  )r  Z	c_fb_sizer  rN  r
  r
  r  r    r  r  c                 C   r  )Nr   nvmlVgpuTypeGetNumDisplayHeadsr  )r  Zc_num_headsr  rN  r
  r
  r  r    r  r  c                 C   sB   t d}t d}td}|| dt|t|}t| |j|jfS )Nr   nvmlVgpuTypeGetResolutionr  )r  Zc_xdimZc_ydimr  rN  r
  r
  r  r    s   r  c                 C   s2   t t}tt}td}|| ||}t| |jS )NnvmlVgpuTypeGetLicense)r  rJ  r  rW  rO  r  )r  Z	c_licenser  r  rN  r
  r
  r  r    s   r  c                 C   r  )Nr   nvmlVgpuTypeGetFrameRateLimitr  )r  Zc_frl_configr  rN  r
  r
  r  r  &  r  r  c                 C   r  )Nr   nvmlVgpuTypeGetGspHeapSizer  )r  Z
c_gsp_heapr  rN  r
  r
  r  r  -  r  r  c                 C   r  )Nr   nvmlVgpuTypeGetFbReservationr  )r  Zc_fb_reservationr  rN  r
  r
  r  r  4  r  r  c                 C   .   t  }t|_td}|| t|}t| |S )N#nvmlVgpuInstanceGetRuntimeStateSize)r'  VgpuRuntimeState_v1r  rW  r  rO  )r  Zc_runtime_stater  rN  r
  r
  r  r  ;     r  c                 C   s.   t d}td}|| |t|}t| |jS )Nr   r  r  )r  r  r  r  rN  r
  r
  r  r  C  s
   r  c                 C   r  )Nr    nvmlVgpuTypeGetMaxInstancesPerVmr  )r  Zc_max_instances_per_vmr  rN  r
  r
  r  r  J  r  r  c                 C   s0   t d}t|_td}|| t|}t| |S )Nr   nvmlVgpuTypeGetBAR1Info)r  VgpuTypeBar1Info_v1r  rW  r  rO  )r  Z
c_bar1Infor  rN  r
  r
  r  r  Q  r  r  c                 C   r  )Nr   nvmlDeviceGetActiveVgpus)r  rW  r  rM  r'  r  r  rO  r  rp  r  )r  r  r  rN  Zvgpu_instance_arrayZc_vgpu_instancesr  r  r
  r
  r  r  Y  r  r  c                 C   sJ   t t}tt}td}td}|| t||t|}t| |j|jfS )Nr   nvmlVgpuInstanceGetVmID)r  r  r  rJ  rW  r  rO  r  )r  Zc_vm_idr  Zc_vm_id_typer  rN  r
  r
  r  r  s  s   r  c                 C   6   t t}tt}td}|| t||}t| |jS )NnvmlVgpuInstanceGetUUIDr  r  r  rW  r  rO  r  r  r1  r  r  rN  r
  r
  r  r  }  r  r  c                 C   r  )NnvmlVgpuInstanceGetMdevUUIDr  r  r
  r
  r  r    r  r  c                 C   r  )N"nvmlVgpuInstanceGetVmDriverVersion)r  r  r  rW  r  rO  r  )r  Zc_driver_versionr  r  rN  r
  r
  r  r    r  r  c                 C   r  )Nr    nvmlVgpuInstanceGetLicenseStatusr  )r  Zc_license_statusr  rN  r
  r
  r  r    r  r  c                 C   s(   t d}t }|| t|}t| |S )N!nvmlVgpuInstanceGetLicenseInfo_v2)rW  r4  r  rO  )r  r  Zc_license_inforN  r
  r
  r  r    s
   r  c                 C   rK  r  )r  )r  r
  r
  r  nvmlVgpuInstanceGetLicenseInfo  rM  r  c                 C   r  )Nr   !nvmlVgpuInstanceGetFrameRateLimitr  )r  Zc_frlr  rN  r
  r
  r  r    r  r  c                 C   r@  )NnvmlVgpuInstanceGetEccModery  r  r|  r  rN  r
  r
  r  r    rC  r  c                 C   r  )Nr   nvmlVgpuInstanceGetTyper  )r  Zc_vgpu_typer  rN  r
  r
  r  r    r  r  c                 C   r  )Nr   "nvmlVgpuInstanceGetEncoderCapacityr3  )r  c_encoder_capacityr  rN  r
  r
  r  r    r  r  c                 C   r  )N"nvmlVgpuInstanceSetEncoderCapacityr  )r  Zencoder_capacityr  r
  r
  r  r    r  r  c                 C   r  )Nr   nvmlVgpuInstanceGetFbUsager  )r  Z
c_fb_usager  rN  r
  r
  r  r    r  r  c                 C   s2   t d}td}|| t|t|}t| |jS )Nr   nvmlVgpuTypeGetCapabilities)r  rW  _nvmlVgpuCapability_tr  rO  r  )r  r  Zc_cap_resultr  rN  r
  r
  r  r    s
   r  c                 C   r  )Nr    nvmlVgpuInstanceGetGpuInstanceIdr  )r  rB  r  rN  r
  r
  r  r    r  r  c                 C   s2   t t}td}|| |ttt}t| |jS )NnvmlVgpuInstanceGetGpuPciId)r  r  rW  r  r  rO  r  )r  Zc_vgpuPciIdr  rN  r
  r
  r  r    r
  r  c           	      C   s   t d}t|}t }td}|| |t|t|d }|tkr!g S |tkrD|jt }| }|| |t|t||}t	| |d|j S t
|)Nr   nvmlDeviceGetVgpuUtilization)r  r  r  rW  r  rM  r'  r  r  rO  r  )	r  r  r  rg  rh  r  rN  ri  rj  r
  r
  r  r    s   
r  c                 C   s   t |}td}t|_t |_td|_||_t	d}|| t
|}|tkr(g S |tkrI|jt }| }||_|| t
|}t| |d|j S t|)Nr   )nvmlDeviceGetVgpuInstancesUtilizationInfo)r  r  VgpuInstancesUtilizationInfo_v1r  r  r  r  r  r  rW  r  rM  r'  r  r  rO  r  )r  r  rg  Zc_vgpuUtilInfor  rN  ri  rj  r
  r
  r  r     s$   

r  c                 C   r  )NnvmlDeviceGetP2PStatus)_nvmlGpuP2PStatus_trW  r  rO  r  )rw  rx  Zp2pIndexZc_p2pstatusr  rN  r
  r
  r  r     r  r   c                 C   r  )N&nvmlDeviceGetGridLicensableFeatures_v4)rL  rW  r  rO  )r  Zc_get_grid_licensable_featuresr  rN  r
  r
  r  r  %  s
   r  c                 C   rK  r  )r  rL  r
  r
  r  #nvmlDeviceGetGridLicensableFeatures-  rM  r  c                 C   s>   |d u}|st t  }td}|| |}t| |rtS |jS )NnvmlDeviceGetGspFirmwareVersion)r  "NVML_GSP_FIRMWARE_VERSION_BUF_SIZErW  rO  rM  r  )r  r  isUserDefinedr  rN  r
  r
  r  r  0  s   

r  c                 C   s\   t |tu}|r
|nt|}|r|nt|}td}|| ||}t| |r(tS |j|jgS )NnvmlDeviceGetGspFirmwareModer  )r  Z	isEnabledZdefaultModerT  ZisEnabledRefZdefaultModeRefr  rN  r
  r
  r  r  9  s   r  c                 C   s6   t d}t|}td}|| |t|}t| |jS )Nr   nvmlDeviceGetEncoderCapacity)r  _nvmlEncoderQueryType_trW  r  rO  r  )r  ZencoderQueryTyper  Zc_encoderQuery_typer  rN  r
  r
  r  r  B  s   r  c                 C   s~   t d}t|}td}|| |t|d }|tkrg S |tkr;|jt }| }|| |t||}t| |d|j S t	|)Nr   #nvmlDeviceGetVgpuProcessUtilization)
r  r  rW  r  rM  r'  r  r  rO  r  )r  r  r  rg  r  rN  ri  rj  r
  r
  r  r
  K  s   
r
  c                 C   s   t |}td}t|_td|_||_td}|| t|}|t	kr$g S |t
krE|jt }| }||_|| t|}t| |d|j S t|)Nr   )nvmlDeviceGetVgpuProcessesUtilizationInfo)r  r$  VgpuProcessesUtilizationInfo_v1r  r  r%  r  rW  r  rM  r'  r"  r&  rO  r  )r  r  rg  Zc_vgpuProcUtilInfor  rN  ri  rj  r
  r
  r  r  d  s"   

r  c                 C   R   t d}t d}t d}td}|| t|t|t|}t| |j|j|jfS )Nr   nvmlDeviceGetEncoderStatsr3  )r  c_encoderCountc_encodeFpsc_encoderLatencyr  rN  r
  r
  r  r       r  c                 C      t d}td}|| t|d }|tkrB|jdkr@t|j }| }|| t||}t| g }t|jD ]	}|||  q4|S g S t	|)Nr   nvmlDeviceGetEncoderSessions
r  rW  r  rM  r  r7  rO  r  rp  r  r  c_session_countr  rN  session_array
c_sessionssessionsr  r
  r
  r  r       

r  c                 C   r  )NnvmlDeviceGetFBCStatsr  rW  r  rO  )r  
c_fbcStatsr  rN  r
  r
  r  r    r  r  c                 C   r  )Nr   nvmlDeviceGetFBCSessions
r  rW  r  rM  r  r  rO  r  rp  r  r  r
  r
  r  r    r  r  c                 C   r  )Nr   nvmlVgpuInstanceGetEncoderStatsr3  )r  r  r  r  r  rN  r
  r
  r  r!    r  r!  c                 C   r  )Nr   "nvmlVgpuInstanceGetEncoderSessionsr  r  r  r  rN  r  r  r  r  r
  r
  r  r"    r  r"  c                 C   r  )NnvmlVgpuInstanceGetFBCStatsr  )r  r  r  rN  r
  r
  r  r$    r  r$  c                 C   r  )Nr   nvmlVgpuInstanceGetFBCSessionsr   r#  r
  r
  r  r%    r  r%  c                 C   sr   t d}t|}td}|| d t||}|tkr5|jt }| }|| |t||}t| |d|j S t|)Nr   nvmlDeviceGetProcessUtilization)	r  r  rW  r  r'  r  r<  rO  r  )r  r  r  rg  r  rN  ri  rj  r
  r
  r  r&  	  s   
r&  c                 C   s   t |}td}t|_td|_||_td}|| t|}|t	kr?|jt
 }| }||_|| t|}t| |d|j S t|)Nr   %nvmlDeviceGetProcessesUtilizationInfo)r  r?  ProcessesUtilizationInfo_v1r  r  r@  r  rW  r  r'  r=  rA  rO  r  )r  r  rg  Zc_processesUtilInfor  rN  ri  rj  r
  r
  r  r'    s   

r'  c                 C   Z   t d}t }td}|| t|t|}|tkr)|| t|t|}t| |S t|)NnvmlVgpuInstanceGetMetadatar   )rW  re  r  r  r'  rO  r  )r  r  Zc_vgpuMetadatac_bufferSizerN  r
  r
  r  r*  9     r*  c                 C   r)  )NnvmlDeviceGetVgpuMetadatar   )rW  rl  r  r  r'  rO  r  )r  r  Zc_vgpuPgpuMetadatar+  rN  r
  r
  r  r-  G  r,  r-  c                 C   s2   t d}t }|t| t|t|}t| |S )NnvmlGetVgpuCompatibility)rW  rn  r  rO  )ZvgpuMetadataZpgpuMetadatar  Zc_vgpuPgpuCompatibilityrN  r
  r
  r  r.  U  s
   r.  c                 C   sf   t d}tt}td}|| t|t|}|tkr)|| t|t|}t| nt||j|jfS )NnvmlDeviceGetPgpuMetadataStringr   )	rW  r  rm  r  r  r'  rO  r  r  )r  r  Zc_pgpuMetadatar+  rN  r
  r
  r  r/  \  s   
r/  c                 C   r  )NnvmlDeviceGetVgpuSchedulerLog)ry  rW  r  rO  )r  Zc_vgpu_sched_logr  rN  r
  r
  r  r0  k  r  r0  c                 C   r  )NnvmlDeviceGetVgpuSchedulerState)r  rW  r  rO  )r  Zc_vgpu_sched_stater  rN  r
  r
  r  r1  r  r  r1  c                 C   r  )N&nvmlDeviceGetVgpuSchedulerCapabilities)r  rW  r  rO  )r  Zc_vgpu_sched_capsr  rN  r
  r
  r  r2  y  r  r2  c                 C   s"   t d}|| t|}t| tS )NnvmlDeviceSetVgpuSchedulerStaterW  r  rO  rM  )r  Zsched_stater  rN  r
  r
  r  r3    r  r3  c                 C   s    t d}|t| }t| tS )NnvmlSetVgpuVersionr4  )ZvgpuVersionr  rN  r
  r
  r  r5    r~  r5  c                 C   sb   | d up|d u}|st  } t  }td}|t| t|}t| |r%tS | j| jf|j|jfgS )NnvmlGetVgpuVersion)rb  rW  r  rO  rM  rc  rd  )	supportedr  r  r  rN  r
  r
  r  r6    s   r6  c                 C   r@  )N!nvmlVgpuInstanceGetAccountingModery  r  r
  r
  r  r8    rC  r8  c                 C   sb   t  }td}|| t|d }|tkr-|jt  }| }|| t|t|}t| ||fS t|)N!nvmlVgpuInstanceGetAccountingPids)r  rW  r  r'  r  rO  r  )r  Z
c_pidCountr  rN  ri  Z
c_pidArrayr
  r
  r  r9    s   
r9  c                 C   r  )N"nvmlVgpuInstanceGetAccountingStats)r_  rW  r  rO  )r  r  Zc_accountingStatsr  rN  r
  r
  r  r:    r  r:  c                 C      t d}|| }t| tS )N#nvmlVgpuInstanceClearAccountingPidsr  )r  r  rN  r
  r
  r  r<    re  r<  c                  C   r  )NnvmlGetExcludedDeviceCountr  r  r
  r
  r  r=    r  r=  c                 C   r  )N nvmlGetExcludedDeviceInfoByIndex)r  r  rW  r  rO  )r  r  infor  rN  r
  r
  r  r>    r  r>  c                 C   r@  )NnvmlDeviceGetHostVgpuMode)_nvmlHostVgpuMode_trW  r  rO  r  )r  Zc_host_vgpu_moder  rN  r
  r
  r  r@    rC  r@  c                 C   r  )NnvmlDeviceSetMigModer  )r  r  Zc_activationStatusr  rN  r
  r
  r  rB    r  rB  c                 C   r  )NnvmlDeviceGetMigModer  )r  Zc_currentModeZc_pendingModer  rN  r
  r
  r  rC    rw  rC  c                 C   sT   |dkrt  }td}n|dkrt }td}ntt|| |t|}t| |S )Nr   $nvmlDeviceGetGpuInstanceProfileInfoVr   #nvmlDeviceGetGpuInstanceProfileInfo)r  rW  r  r  r-  r  rO  )r  profiler  r  r  rN  r
  r
  r  rE    s   

rE  c                 C   r  )N)nvmlDeviceGetGpuInstanceRemainingCapacityr  )r  r  r  r  rN  r
  r
  r  rG    r  rG  c                 C   "   t d}|| |||}t| tS )NZ-nvmlDeviceGetGpuInstancePossiblePlacements_v2r  )r  r  placementsRefcountRefr  rN  r
  r
  r  *nvmlDeviceGetGpuInstancePossiblePlacements  r  rK  c                 C   r  )NnvmlDeviceCreateGpuInstancer  rW  r  rO  )r  r  
c_instancer  rN  r
  r
  r  rL    r  rL  c                 C   r  )N(nvmlDeviceCreateGpuInstanceWithPlacementrM  )r  r  r  rN  r  rN  r
  r
  r  rO    r  rO  c                 C   r;  )NnvmlGpuInstanceDestroyr  )r  r  rN  r
  r
  r  rP  
  re  rP  c                 C   rH  )NnvmlDeviceGetGpuInstancesr  )r  r  ZgpuInstancesRefrJ  r  rN  r
  r
  r  rQ    r  rQ  c                 C   r  )NnvmlDeviceGetGpuInstanceByIdrM  )r  r  rN  r  rN  r
  r
  r  rR    r  rR  c                 C   r  )NnvmlGpuInstanceGetInfo)r  rW  r  rO  )r  r  r  rN  r
  r
  r  rS    r  rS  c                 C   sV   |dkrt  }td}n|dkrt }td}ntt|| ||t|}t| |S )Nr   -nvmlGpuInstanceGetComputeInstanceProfileInfoVr   ,nvmlGpuInstanceGetComputeInstanceProfileInfo)r  rW  r  r  r-  r  rO  )r  rF  Z
engProfiler  r  r  rN  r
  r
  r  rU  $  s   

rU  c                 C   r  )N2nvmlGpuInstanceGetComputeInstanceRemainingCapacityr  )r  r  r  r  rN  r
  r
  r  rV  4  r  rV  c                 C   rH  )N3nvmlGpuInstanceGetComputeInstancePossiblePlacementsr  )r  r  rI  rJ  r  rN  r
  r
  r  rW  ;  r  rW  c                 C   r  )N$nvmlGpuInstanceCreateComputeInstancec_nvmlComputeInstance_trW  r  rO  )r  r  rN  r  rN  r
  r
  r  rX  A  r  rX  c                 C   r  )N1nvmlGpuInstanceCreateComputeInstanceWithPlacementrY  )r  r  r  rN  r  rN  r
  r
  r  r[  H  r  r[  c                 C   r;  )NnvmlComputeInstanceDestroyr  )computeInstancer  rN  r
  r
  r  r\  O  re  r\  c                 C   rH  )N"nvmlGpuInstanceGetComputeInstancesr  )r  r  ZcomputeInstancesRefrJ  r  rN  r
  r
  r  r^  U  r  r^  c                 C   r  )N%nvmlGpuInstanceGetComputeInstanceByIdrY  )r  r  rN  r  rN  r
  r
  r  r_  [  r  r_  c                 C   r  )NnvmlComputeInstanceGetInfo_v2)r  rW  r  rO  )r]  r  r  rN  r
  r
  r  r`  b  r  r`  c                 C   rK  r  )r`  )r]  r
  r
  r  nvmlComputeInstanceGetInfoi  rM  ra  c                 C   r  )NnvmlDeviceIsMigDeviceHandle)r  rW  r  rO  )r  Zc_isMigDevicer  rN  r
  r
  r  rb  l  r  rb  c                 C   r@  )NnvmlDeviceGetGpuInstanceIdr  )r  Zc_gpuInstanceIdr  rN  r
  r
  r  rc  s  rC  rc  c                 C   r@  )NnvmlDeviceGetComputeInstanceIdr  )r  Zc_computeInstanceIdr  rN  r
  r
  r  rd  z  rC  rd  c                 C   r@  )NnvmlDeviceGetMaxMigDeviceCountr  )r  r  r  rN  r
  r
  r  re    rC  re  c                 C   rk  )N#nvmlDeviceGetMigDeviceHandleByIndexr*  )r  r  r  	migDevicer  rN  r
  r
  r  rf    r`  rf  c                 C   r  )N,nvmlDeviceGetDeviceHandleFromMigDeviceHandle)r^  rW  r  rO  )rg  r  r  rN  r
  r
  r  rh    r  rh  c                 C   r  )NnvmlDeviceGetAttributes_v2)r  rW  r  rO  )r  Zc_attrsr  rN  r
  r
  r  ri    r  ri  c                 C   rK  r  )ri  )r  r
  r
  r  nvmlDeviceGetAttributes  rM  rj  c                 C   s\   t d}t }t }t }t }|| t|t|t|t|}t| |j|j|j|jfS )NnvmlDeviceGetRemappedRowsr;  )r  r  Zc_corrZc_uncZ
c_bpendingZ
c_bfailurerN  r
  r
  r  rk    s    rk  c                 C   r  )N!nvmlDeviceGetRowRemapperHistogram)r  rW  r  rO  )r  Zc_valsr  rN  r
  r
  r  rl    r  rl  c                 C   r@  )NnvmlDeviceGetArchitecture)_nvmlDeviceArchitecture_trW  r  rO  r  )r  archr  rN  r
  r
  r  rm    rC  rm  c                 C   r@  )NnvmlDeviceGetBusType)_nvmlBusType_trW  r  rO  r  )r  Z	c_busTyper  rN  r
  r
  r  rp    rC  rp  c                 C   r@  )NnvmlDeviceGetIrqNumr  )r  Zc_irqNumr  rN  r
  r
  r  rr    rC  rr  c                 C   r@  )NnvmlDeviceGetNumGpuCoresr  )r  Z
c_numCoresr  rN  r
  r
  r  rs    rC  rs  c                 C   r@  )NnvmlDeviceGetPowerSource)_nvmlPowerSource_trW  r  rO  r  )r  Zc_powerSourcer  rN  r
  r
  r  rt    rC  rt  c                 C   r@  )NnvmlDeviceGetMemoryBusWidthr  )r  Zc_memBusWidthr  rN  r
  r
  r  rv    rC  rv  c                 C   r@  )NnvmlDeviceGetPcieLinkMaxSpeed)_nvmlPcieLinkMaxSpeed_trW  r  rO  r  r  r  r  rN  r
  r
  r  rw    rC  rw  c                 C   r@  )N$nvmlDeviceGetAdaptiveClockInfoStatus)_nvmlAdaptiveClockInfoStatus_trW  r  rO  r  )r  Zc_adaptiveClockInfoStatusr  rN  r
  r
  r  rz    rC  rz  c                 C   r@  )NnvmlDeviceGetPcieSpeedr  ry  r
  r
  r  r|    rC  r|  c                 C   r'  )NnvmlDeviceGetDynamicPstatesInfo)rI  r  r  rW  rO  rM  )r  Zc_dynamicpstatesinforT  ZdynamicpstatesinfoRefr  rN  r
  r
  r  r}    s   
r}  c                 C   s    t d}|| ||}t| tS )NnvmlDeviceSetFanSpeed_v2r  )r  r  r  r  rN  r
  r
  r  r~    r~  r~  c                 C   sN   t |tu}|r
|nt|}td}|| ||}t| |r tS |jd d  S )NnvmlDeviceGetThermalSettings)rI  r  r  rW  rO  rM  r  )r  ZsensorindexZc_thermalsettingsrT  ZthermalsettingsRefr  rN  r
  r
  r  r     s   r  c           
      C   st   t |tupt |tu}|r|nt|}|r|nt|}td}|| t|t|||}	t|	 |r4tS |j|jfS )N nvmlDeviceGetMinMaxClockOfPState)rI  r  r  rW  r  rO  rM  r  )
r  Z	clockTypepstateZminClockMHzZmaxClockMHzrT  ZminClockMHzRefZmaxClockMHzRefr  rN  r
  r
  r  r    s   r  c                   @   s4   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  rI  r  ZclockOffsetMHzZminClockOffsetMHzZmaxClockOffsetMHzN)r  r  r	  r  r  r  r  r^  r
  r
  r
  r  r    r  r  c                 C      t d}|| |}tS )NnvmlDeviceGetClockOffsetsrW  rM  r  r?  r  rN  r
  r
  r  r       
r  c                 C   r  )NnvmlDeviceSetClockOffsetsr  r  r
  r
  r  r  "  r  r  c           	      C   sf   g }t t}tt |j }t|j }| }td}|| ||}t| |D ]}|tkr0|| q%|S )N'nvmlDeviceGetSupportedPerformanceStates)	r  NVML_MAX_GPU_PERF_PSTATESsizeofr  r  rW  rO  NVML_PSTATE_UNKNOWNrp  )	r  Zpstatesr  Zc_sizeZpstates_arrayZ	c_pstatesr  rN  r  r
  r
  r  r  '  s   

r  c                 C   r@  )NnvmlDeviceGetGpcClkVfOffsetr  rW  r  rO  r  r  offsetr  rN  r
  r
  r  r  :  rC  r  c                 C   &   t |}td}|| |}t| tS )NnvmlDeviceSetGpcClkVfOffsetr  rW  rO  rM  r  r  Zc_offsetr  rN  r
  r
  r  r  A  
   
r  c                 C   h   t |tupt |tu}|r|nt|}|r|nt|}td}|| ||}t| |r.tS |j|jfS )N!nvmlDeviceGetGpcClkMinMaxVfOffsetrI  r  r  rW  rO  rM  r  r  Z	minOffsetZ	maxOffsetrT  ZminOffsetRefZmaxOffsetRefr  rN  r
  r
  r  r  H  r  r  c                 C   r@  )NnvmlDeviceGetMemClkVfOffsetr  r  r
  r
  r  r  Q  rC  r  c                 C   r  )NnvmlDeviceSetMemClkVfOffsetr  r  r
  r
  r  r  X  r  r  c                 C   r  )N!nvmlDeviceGetMemClkMinMaxVfOffsetr  r  r
  r
  r  r  _  s   r  c                 C   s$   t | }td}||}t| tS )N&nvmlSystemSetConfComputeGpusReadyStater  rW  rO  rM  )r  r  r  rN  r
  r
  r  r  i  s
   r  c                  C   r  )N&nvmlSystemGetConfComputeGpusReadyStater  r  r  rN  r
  r
  r  r  p  r  r  c                  C   &   t  } td}|t| }t| | S )N$nvmlSystemGetConfComputeCapabilities)r  rW  r  rO  )Zc_ccSysCapsr  rN  r
  r
  r  r  w  
   r  c                  C   r  )NnvmlSystemGetConfComputeState)r  rW  r  rO  r  r
  r
  r  r  ~  r  r  c                 C   s   t d}|| S )N nvmlSystemGetConfComputeSettingsr  )settingsr  r
  r
  r  r    s   r  c                 C   r  )N*nvmlDeviceSetConfComputeUnprotectedMemSizer  r  Zc_ccMemSizer  rN  r
  r
  r  r    r  r  c                 C   r  )N#nvmlDeviceGetConfComputeMemSizeInfo)r  rW  r  rO  r  r
  r
  r  r    r  r  c                 C   r  )N,nvmlDeviceGetConfComputeProtectedMemoryUsage)r  rW  r  rO  )r  r  r  rN  r
  r
  r  r    r  r  c                 C   r  )N&nvmlDeviceGetConfComputeGpuCertificate)r  rW  r  rO  )r  Zc_certr  rN  r
  r
  r  r    r  r  c                 C   sD   t  }tt| | }t|d| td}|| t|}t| |S )Nr  ,nvmlDeviceGetConfComputeGpuAttestationReport)r  r  r  rJ  rW  r  rO  )r  Zc_nonceZc_attestReportZc_nonce_arrr  rN  r
  r
  r  r    s   r  c                 C   s4   t d}t|_| |_td}|t|}t| tS )Nr   0nvmlSystemSetConfComputeKeyRotationThresholdInfo)r  )ConfComputeSetKeyRotationThresholdInfo_v1r  r  rW  r  rO  rM  )Zmax_atk_advc_keyRotationThrInfor  rN  r
  r
  r  r    s   r  c                  C   s.   t d} t| _td}|t| }t| | S )Nr   0nvmlSystemGetConfComputeKeyRotationThresholdInfo)r  )ConfComputeGetKeyRotationThresholdInfo_v1r  rW  r  rO  )r  r  rN  r
  r
  r  r    s   r  c                   @   r|  r}  r  r
  r
  r
  r  r~    r  c                   @   r  )struct_c_nvmlGpmSample_tNr  r
  r
  r
  r  r    r  r  c                   @   r  )c_metricInfo_tZ	shortNameZlongNamer  N)r  r  r	  r  r^  r
  r
  r
  r  r    r6  r  c                   @   s(   e Zd ZdefdefdefdefgZdS )c_nvmlGpmMetric_tZmetricIdr  r  Z
metricInfoN)r  r  r	  r  r  r  r  r^  r
  r
  r
  r  r  !  r  r  c                   @   s2   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_nvmlGpmMetricsGet_tr  Z
numMetricsZsample1Zsample2ZmetricsN)r  r  r	  r  c_nvmlGpmSample_tr  NVML_GPM_METRIC_MAXr^  r
  r
  r
  r  r  )  r  r  c                   @   r  )c_nvmlGpmSupport_tr  ZisSupportedDeviceNr  r
  r
  r
  r  r  4  r  r  c                 C   s    t d}|t| }t| | S )NnvmlGpmMetricsGetr  )Z
metricsGetr  rN  r
  r
  r  r  >  r~  r  c                 C   ra  )NnvmlGpmSampleFreerc  	gpmSampler  rN  r
  r
  r  r  D  re  r  c                  C   r  )NnvmlGpmSampleAlloc)r  rW  r  rO  r  r
  r
  r  r  J  r  r  c                 C   s   t d}|| |}t| |S )NnvmlGpmSampleGetrc  )r  r  r  rN  r
  r
  r  r  Q  r  r  c                 C   s    t d}|| ||}t| |S )NnvmlGpmMigSampleGetrc  )r  r  r  r  rN  r
  r
  r  r  W  r~  r  c                 C   r  )NnvmlGpmQueryDeviceSupport)r  NVML_GPM_SUPPORT_VERSIONr  rW  r  rO  )r  Z
gpmSupportr  rN  r
  r
  r  r  ]  r  r  c                 C   r  )NnvmlGpmSetStreamingEnabledr  )r  r  r  r  rN  r
  r
  r  r  e  r  r  c                 C   r@  )NnvmlGpmQueryIfStreamingEnabledr  )r  r  r  rN  r
  r
  r  r  l  rC  r  i  c                   @   r  )c_nvmlNvLinkPowerThres_tlowPwrThresholdNr  r
  r
  r
  r  r  }  r  r  c                 C   s.   t  }||_td}|| t|}t| tS )N*nvmlDeviceSetNvLinkDeviceLowPowerThreshold)r  r  rW  r  rO  rM  )r  Zl1thresholdr  r  rN  r
  r
  r  r    r  r  c                   @   s,   e Zd Zdee fdefdefdefgZdS )c_nvmlGpuFabricInfo_tclusterUuidr1  cliqueIdr  N)	r  r  r	  r  r  r  r  _nvmlGpuFabricState_tr^  r
  r
  r
  r  r    r  r  i$  c                       sH   e Zd Zdefdee fdefdefdefdefgZ	 fddZ
  ZS )	c_nvmlGpuFabricInfoV_tr  r  r1  r  r  Z
healthMaskc                    r  r  )ru  r  rZ  nvmlGpuFabricInfo_v2r  rx  r
  r  rZ    r  zc_nvmlGpuFabricInfoV_t.__init__)r  r  r	  r  r  NVML_GPU_FABRIC_UUID_LENr  r  r  r^  rZ  r{  r
  r
  rx  r  r    s    
	r  c                 C   r  )NnvmlDeviceGetGpuFabricInfor  r  ZgpuFabricInfor  rN  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceGetGpuFabricInfoVr  r  r
  r
  r  r    r  r  c                 C   r;  )NnvmlSystemSetNvlinkBwModer  r  r  rN  r
  r
  r  r    re  r  c                  C   r  )NnvmlSystemGetNvlinkBwModer  r  r
  r
  r  r    r  r  c                   @   s*   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powerValueMwrl  r  N)r  r  r	  r  _nvmlPowerScopeType_tr^  ro  r
  r
  r
  r  r    r  r  i  c                 C   sB   t |}t }t||_||_t||_td}|| t|}tS )N$nvmlDeviceSetPowerManagementLimit_v2)	r  r  r  r  r  r  rW  r  rM  )r  r  Z
powerLimitr  Zc_powerScopeZc_powerValuer  rN  r
  r
  r  r    s   

r  c                       sn   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dZ  ZS )c_nvmlEccSramErrorStatus_v1_tr  ZaggregateUncParityZaggregateUncSecDedZaggregateCorZvolatileUncParityZvolatileUncSecDedZvolatileCorZaggregateUncBucketL2ZaggregateUncBucketSmZaggregateUncBucketPcieZaggregateUncBucketMcuZaggregateUncBucketOtherZbThresholdExceededc                    r  r  )ru  r  rZ  nvmlEccSramErrorStatus_v1r  rx  r
  r  rZ    r  z&c_nvmlEccSramErrorStatus_v1_t.__init__)r  r  r	  r  r  r^  rZ  r{  r
  r
  rx  r  r    s     r  ih  c                 C   r  )NnvmlDeviceGetSramEccErrorStatusr  )r  r1  r  rN  r
  r
  r  r    r  r  c                       ,   e Zd ZdefdefgZ fddZ  ZS )c_nvmlDeviceCapabilities_v1_tr  ZcapMaskc                    r  r  )ru  r  rZ  nvmlDeviceCapabilities_v1r  rx  r
  r  rZ  !  r  z&c_nvmlDeviceCapabilities_v1_t.__init__r  r
  r
  rx  r  r    
    r  c                 C   r  )NnvmlDeviceGetCapabilitiesr  )r  Zcapsr  r
  r
  r  r  %  r  r  c                	       sX   e Zd Zdefded fded fdefdefdefdefd	efgZ fd
dZ  ZS )c_nvmlPlatformInfo_v1_tr  ZibGuidr   ZrackGuidZchassisPhysicalSlotNumberZcomputeSlotIndexZ	nodeIndexZpeerTyperS  c                    r  r  )ru  r  rZ  nvmlPlatformInfo_v1r  rx  r
  r  rZ  5  r  z c_nvmlPlatformInfo_v1_t.__init__)r  r  r	  r  r  r^  rZ  r{  r
  r
  rx  r  r  )  s    

r  i,  c                 C   r  )NnvmlDeviceGetPlatformInfor  )r  ZplatformInfor  rN  r
  r
  r  r  9  r  r  c                   @   s   e Zd Zded fgZdS )c_nvmlMask255_tmaskr   Nr  r
  r
  r
  r  r  ?  s    
r  c                       8   e Zd ZdefdefdefdefgZ fddZ  ZS )#c_nvmlWorkloadPowerProfileInfo_v1_tr  r  priorityZconflictingmaskc                    r  r  )ru  r  rZ  nvmlWorkloadPowerProfileInfo_v1r  rx  r
  r  rZ  _  r  z,c_nvmlWorkloadPowerProfileInfo_v1_t.__init__r  r  r	  r  r  r^  rZ  r{  r
  r
  rx  r  r  W      r  i+ c                       s6   e Zd Zdefdefdee fgZ fddZ  Z	S )+c_nvmlWorkloadPowerProfileProfilesInfo_v1_tr  perfProfilesMaskZperfProfilec                    r  r  )ru  r  rZ  'nvmlWorkloadPowerProfileProfilesInfo_v1r  rx  r
  r  rZ  j  r  z4c_nvmlWorkloadPowerProfileProfilesInfo_v1_t.__init__)
r  r  r	  r  r  r   NVML_WORKLOAD_POWER_MAX_PROFILESr^  rZ  r{  r
  r
  rx  r  r  c  s    
r  id  c                       s8   e Zd ZdefdefdefdefgZ fddZ  ZS ).c_nvmlWorkloadPowerProfileCurrentProfiles_v1_tr  r  requestedProfilesMaskZenforcedProfilesMaskc                    r  r  )ru  r  rZ  *nvmlWorkloadPowerProfileCurrentProfiles_v1r  rx  r
  r  rZ  v  r  z7c_nvmlWorkloadPowerProfileCurrentProfiles_v1_t.__init__r  r
  r
  rx  r  r  n  r  r  i$  c                       ,   e Zd ZdefdefgZ fddZ  ZS )0c_nvmlWorkloadPowerProfileRequestedProfiles_v1_tr  r  c                    r  r  )ru  r  rZ  ,nvmlWorkloadPowerProfileRequestedProfiles_v1r  rx  r
  r  rZ    r  z9c_nvmlWorkloadPowerProfileRequestedProfiles_v1_t.__init__r  r
  r
  rx  r  r  z  r  r  c                 C   r  )N-nvmlDeviceWorkloadPowerProfileGetProfilesInfor  )r  ZprofilesInfor  rN  r
  r
  r  r    r  r  c                 C   r  )N0nvmlDeviceWorkloadPowerProfileGetCurrentProfilesr  )r  ZcurrentProfilesr  rN  r
  r
  r  r    r  r  c                 C   r  )N2nvmlDeviceWorkloadPowerProfileSetRequestedProfilesr  r  ZrequestedProfilesr  rN  r
  r
  r  r    r  r  c                 C   r  )N4nvmlDeviceWorkloadPowerProfileClearRequestedProfilesr  r  r
  r
  r  r    r  r  c                 C   r  )N#nvmlDeviceGetNvlinkSupportedBwModesr  )r  ZsupportedBwModesr  rN  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceGetNvlinkBwModer  )r  Z	getBwModer  rN  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceSetNvlinkBwModer  )r  Z	setBwModer  rN  r
  r
  r  r    r  r  c                       r  )c_nvmlDramEncryptionInfo_tr  encryptionStatec                    r  r  )ru  r  rZ  nvmlDramEncryptionInfo_v1r  rx  r
  r  rZ    r  z#c_nvmlDramEncryptionInfo_t.__init__)r  r  r	  r  rz  r^  rZ  r{  r
  r
  rx  r  r    r  r  c                 C   r  )NnvmlDeviceGetDramEncryptionMode)r  rW  r  rO  r  r  r
  r
  r  r    rw  r  c                 C   r  r]  r  rL  r
  r
  r  &nvmlDeviceGetCurrentDramEncryptionMode  r  r  c                 C   r  r  r  rL  r
  r
  r  &nvmlDeviceGetPendingDramEncryptionMode  r  r  c                 C   s.   t d}t }||_|| t|}t| d S )NnvmlDeviceSetDramEncryptionMode)rW  r  r  r  rO  )r  r  r  Zc_dramEncryptionModerN  r
  r
  r  r    s   r  c                       r  )c_nvmlPowerSmoothingState_v1_tr  r  c                    r  r  )ru  r  rZ  nvmlPowerSmoothingState_v1r  rx  r
  r  rZ    r  z'c_nvmlPowerSmoothingState_v1_t.__init__r  r
  r
  rx  r  r    r  r  c                       r  ) c_nvmlPowerSmoothingProfile_v1_tr  r  ZparamIdr  c                    r  r  )ru  r  rZ  nvmlPowerSmoothingProfile_v1r  rx  r
  r  rZ    r  z)c_nvmlPowerSmoothingProfile_v1_t.__init__)r  r  r	  r  r  r^  rZ  r{  r
  r
  rx  r  r    r  r  c                 C   r  )N-nvmlDevicePowerSmoothingActivatePresetProfilerc  r  rF  r  rN  r
  r
  r  r
       
r
  c                 C   r  )N0nvmlDevicePowerSmoothingUpdatePresetProfileParamrc  r  r
  r
  r  r    r  r  c                 C   r  )N nvmlDevicePowerSmoothingSetStaterc  )r  r  r  rN  r
  r
  r  r    r  r  r  )r   r   )NN(L  ctypesZctypes.utilr   	functoolsr   rB  r  	threadingrE  r  rz  ZNVML_FEATURE_DISABLEDZNVML_FEATURE_ENABLEDrF  ZNVML_BRAND_UNKNOWNZNVML_BRAND_QUADROZNVML_BRAND_TESLAZNVML_BRAND_NVSZNVML_BRAND_GRIDZNVML_BRAND_GEFORCEZNVML_BRAND_TITANZNVML_BRAND_NVIDIA_VAPPSZNVML_BRAND_NVIDIA_VPCZNVML_BRAND_NVIDIA_VCSZNVML_BRAND_NVIDIA_VWSZNVML_BRAND_NVIDIA_CLOUD_GAMINGZNVML_BRAND_NVIDIA_VGAMINGZNVML_BRAND_QUADRO_RTXZNVML_BRAND_NVIDIA_RTXZNVML_BRAND_NVIDIAZNVML_BRAND_GEFORCE_RTXZNVML_BRAND_TITAN_RTXZNVML_BRAND_COUNTr  Z#NVML_TEMPERATURE_THRESHOLD_SHUTDOWNZ#NVML_TEMPERATURE_THRESHOLD_SLOWDOWNZ"NVML_TEMPERATURE_THRESHOLD_MEM_MAXZ"NVML_TEMPERATURE_THRESHOLD_GPU_MAXZ'NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_MINZ(NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_CURRZ'NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_MAXZ#NVML_TEMPERATURE_THRESHOLD_GPS_CURRZ NVML_TEMPERATURE_THRESHOLD_COUNTr  ZNVML_TEMPERATURE_GPUZNVML_TEMPERATURE_COUNTr  ZNVML_COMPUTEMODE_DEFAULTZ!NVML_COMPUTEMODE_EXCLUSIVE_THREADZNVML_COMPUTEMODE_PROHIBITEDZ"NVML_COMPUTEMODE_EXCLUSIVE_PROCESSZNVML_COMPUTEMODE_COUNTr  ZNVML_MEMORY_LOCATION_L1_CACHEZNVML_MEMORY_LOCATION_L2_CACHEZ"NVML_MEMORY_LOCATION_DEVICE_MEMORYZNVML_MEMORY_LOCATION_DRAMZ"NVML_MEMORY_LOCATION_REGISTER_FILEZ#NVML_MEMORY_LOCATION_TEXTURE_MEMORYZ NVML_MEMORY_LOCATION_TEXTURE_SHMZNVML_MEMORY_LOCATION_CBUZNVML_MEMORY_LOCATION_SRAMZNVML_MEMORY_LOCATION_COUNTZNVML_NVLINK_MAX_LINKSZNVML_NVLINK_MAX_LANESZ_nvmlNvLinkErrorCounter_tZNVML_NVLINK_ERROR_DL_REPLAYZNVML_NVLINK_ERROR_DL_RECOVERYZNVML_NVLINK_ERROR_DL_CRC_FLITZNVML_NVLINK_ERROR_DL_CRC_DATAZNVML_NVLINK_ERROR_DL_ECC_DATAZNVML_NVLINK_ERROR_COUNTZ _nvmlNvLinkEccLaneErrorCounter_tZNVML_NVLINK_ERROR_DL_ECC_LANE0ZNVML_NVLINK_ERROR_DL_ECC_LANE1ZNVML_NVLINK_ERROR_DL_ECC_LANE2ZNVML_NVLINK_ERROR_DL_ECC_LANE3ZNVML_NVLINK_ERROR_DL_ECC_COUNTZ_nvmlNvLinkCapability_tZNVML_NVLINK_CAP_P2P_SUPPORTEDZNVML_NVLINK_CAP_SYSMEM_ACCESSZNVML_NVLINK_CAP_P2P_ATOMICSZNVML_NVLINK_CAP_SYSMEM_ATOMICSZNVML_NVLINK_CAP_SLI_BRIDGEZNVML_NVLINK_CAP_VALIDZNVML_NVLINK_CAP_COUNTr  Z!NVML_NVLINK_COUNTER_PKTFILTER_NOPZ"NVML_NVLINK_COUNTER_PKTFILTER_READZ#NVML_NVLINK_COUNTER_PKTFILTER_WRITEZ#NVML_NVLINK_COUNTER_PKTFILTER_RATOMZ$NVML_NVLINK_COUNTER_PKTFILTER_NRATOMZ#NVML_NVLINK_COUNTER_PKTFILTER_FLUSHZ&NVML_NVLINK_COUNTER_PKTFILTER_RESPDATAZ(NVML_NVLINK_COUNTER_PKTFILTER_RESPNODATAZ!NVML_NVLINK_COUNTER_PKTFILTER_ALLr  ZNVML_NVLINK_COUNTER_UNIT_CYCLESZ NVML_NVLINK_COUNTER_UNIT_PACKETSZNVML_NVLINK_COUNTER_UNIT_BYTESZ!NVML_NVLINK_COUNTER_UNIT_RESERVEDZNVML_NVLINK_COUNTER_UNIT_COUNTr  ZNVML_NVLINK_DEVICE_TYPE_GPUZNVML_NVLINK_DEVICE_TYPE_IBMNPUZNVML_NVLINK_DEVICE_TYPE_SWITCHZNVML_NVLINK_DEVICE_TYPE_UNKNOWNZ_nvmlEccBitType_tZNVML_SINGLE_BIT_ECCZNVML_DOUBLE_BIT_ECCZNVML_ECC_ERROR_TYPE_COUNTr  ZNVML_VOLATILE_ECCZNVML_AGGREGATE_ECCZNVML_ECC_COUNTER_TYPE_COUNTr  Z NVML_MEMORY_ERROR_TYPE_CORRECTEDZ"NVML_MEMORY_ERROR_TYPE_UNCORRECTEDZNVML_MEMORY_ERROR_TYPE_COUNTr  ZNVML_CLOCK_GRAPHICSZNVML_CLOCK_SMZNVML_CLOCK_MEMZNVML_CLOCK_VIDEOZNVML_CLOCK_COUNTr  ZNVML_CLOCK_ID_CURRENTZNVML_CLOCK_ID_APP_CLOCK_TARGETZNVML_CLOCK_ID_APP_CLOCK_DEFAULTZ NVML_CLOCK_ID_CUSTOMER_BOOST_MAXZNVML_CLOCK_ID_COUNTr  ZNVML_DRIVER_WDDMZNVML_DRIVER_WDMZNVML_DRIVER_MCDMr  r  ZNVML_PSTATE_0ZNVML_PSTATE_1ZNVML_PSTATE_2ZNVML_PSTATE_3ZNVML_PSTATE_4ZNVML_PSTATE_5ZNVML_PSTATE_6ZNVML_PSTATE_7ZNVML_PSTATE_8ZNVML_PSTATE_9ZNVML_PSTATE_10ZNVML_PSTATE_11ZNVML_PSTATE_12ZNVML_PSTATE_13ZNVML_PSTATE_14ZNVML_PSTATE_15r  rq  ZNVML_INFOROM_OEMZNVML_INFOROM_ECCZNVML_INFOROM_POWERZNVML_INFOROM_DENZNVML_INFOROM_COUNTr  rM  r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  ZNVML_ERROR_IN_USEr3  ZNVML_ERROR_NO_DATAZ!NVML_ERROR_VGPU_ECC_NOT_SUPPORTEDZ!NVML_ERROR_INSUFFICIENT_RESOURCESZNVML_ERROR_FREQ_NOT_SUPPORTEDr  ZNVML_ERROR_DEPRECATEDZNVML_ERROR_NOT_READYZNVML_ERROR_GPU_NOT_FOUNDZNVML_ERROR_INVALID_STATEr4  r  ZNVML_FAN_NORMALZNVML_FAN_FAILEDr  Z(NVML_FAN_POLICY_TEMPERATURE_CONTINOUS_SWZNVML_FAN_POLICY_MANUALr  ZNVML_LED_COLOR_GREENZNVML_LED_COLOR_AMBERr  ZNVML_GOM_ALL_ONZNVML_GOM_COMPUTEZNVML_GOM_LOW_DPrW  Z9NVML_PAGE_RETIREMENT_CAUSE_MULTIPLE_SINGLE_BIT_ECC_ERRORSZ/NVML_PAGE_RETIREMENT_CAUSE_DOUBLE_BIT_ECC_ERRORZ NVML_PAGE_RETIREMENT_CAUSE_COUNTra  Z*NVML_RESTRICTED_API_SET_APPLICATION_CLOCKSZ+NVML_RESTRICTED_API_SET_AUTO_BOOSTED_CLOCKSZNVML_RESTRICTED_API_COUNTr  ZNVML_BRIDGE_CHIP_PLXZNVML_BRIDGE_CHIP_BRO4ZNVML_MAX_PHYSICAL_BRIDGEr  ZNVML_VALUE_TYPE_DOUBLEZNVML_VALUE_TYPE_UNSIGNED_INTZNVML_VALUE_TYPE_UNSIGNED_LONGZ"NVML_VALUE_TYPE_UNSIGNED_LONG_LONGZ NVML_VALUE_TYPE_SIGNED_LONG_LONGZNVML_VALUE_TYPE_SIGNED_INTZNVML_VALUE_TYPE_UNSIGNED_SHORTZNVML_VALUE_TYPE_COUNTZ_nvmlNvlinkVersion_tZNVML_NVLINK_VERSION_INVALIDZNVML_NVLINK_VERSION_1_0ZNVML_NVLINK_VERSION_2_0ZNVML_NVLINK_VERSION_2_2ZNVML_NVLINK_VERSION_3_0ZNVML_NVLINK_VERSION_3_1ZNVML_NVLINK_VERSION_4_0ZNVML_NVLINK_VERSION_5_0rm  ZNVML_PERF_POLICY_POWERZNVML_PERF_POLICY_THERMALZNVML_PERF_POLICY_SYNC_BOOSTZNVML_PERF_POLICY_BOARD_LIMITZ NVML_PERF_POLICY_LOW_UTILIZATIONZNVML_PERF_POLICY_RELIABILITYZ!NVML_PERF_POLICY_TOTAL_APP_CLOCKSZ"NVML_PERF_POLICY_TOTAL_BASE_CLOCKSZNVML_PERF_POLICY_COUNTr	  ZNVML_ENCODER_QUERY_H264ZNVML_ENCODER_QUERY_HEVCZNVML_ENCODER_QUERY_AV1ZNVML_ENCODER_QUERY_UNKNOWNZ_nvmlFBCSessionType_tZNVML_FBC_SESSION_TYPE_UNKNOWNZNVML_FBC_SESSION_TYPE_TOSYSZNVML_FBC_SESSION_TYPE_CUDAZNVML_FBC_SESSION_TYPE_VIDZNVML_FBC_SESSION_TYPE_HWENCZ_nvmlDetachGpuState_tZNVML_DETACH_GPU_KEEPZNVML_DETACH_GPU_REMOVEZ_nvmlPcieLinkState_tZNVML_PCIE_LINK_KEEPZNVML_PCIE_LINK_SHUT_DOWNrf  ZNVML_TOTAL_POWER_SAMPLESZNVML_GPU_UTILIZATION_SAMPLESZNVML_MEMORY_UTILIZATION_SAMPLESZNVML_ENC_UTILIZATION_SAMPLESZNVML_DEC_UTILIZATION_SAMPLESZNVML_PROCESSOR_CLK_SAMPLESZNVML_MEMORY_CLK_SAMPLESZNVML_MODULE_POWER_SAMPLESZNVML_JPG_UTILIZATION_SAMPLESZNVML_OFA_UTILIZATION_SAMPLESZNVML_SAMPLINGTYPE_COUNTro  ZNVML_PCIE_UTIL_TX_BYTESZNVML_PCIE_UTIL_RX_BYTESZNVML_PCIE_UTIL_COUNTrv  ZNVML_TOPOLOGY_INTERNALZNVML_TOPOLOGY_SINGLEZNVML_TOPOLOGY_MULTIPLEZNVML_TOPOLOGY_HOSTBRIDGEZNVML_TOPOLOGY_NODEZNVML_TOPOLOGY_CPUZNVML_TOPOLOGY_SYSTEMZ_nvmlGpuP2PCapsIndex_tZNVML_P2P_CAPS_INDEX_READZNVML_P2P_CAPS_INDEX_WRITEZNVML_P2P_CAPS_INDEX_NVLINKZNVML_P2P_CAPS_INDEX_ATOMICSZNVML_P2P_CAPS_INDEX_PROPZNVML_P2P_CAPS_INDEX_PCIZNVML_P2P_CAPS_INDEX_UNKNOWNr  ZNVML_P2P_STATUS_OKZ$NVML_P2P_STATUS_CHIPSET_NOT_SUPPOREDZ%NVML_P2P_STATUS_CHIPSET_NOT_SUPPORTEDZ!NVML_P2P_STATUS_GPU_NOT_SUPPORTEDZ*NVML_P2P_STATUS_IOH_TOPOLOGY_NOT_SUPPORTEDZ"NVML_P2P_STATUS_DISABLED_BY_REGKEYZNVML_P2P_STATUS_NOT_SUPPORTEDZNVML_P2P_STATUS_UNKNOWNrn  ZNVML_DEVICE_ARCH_KEPLERZNVML_DEVICE_ARCH_MAXWELLZNVML_DEVICE_ARCH_PASCALZNVML_DEVICE_ARCH_VOLTAZNVML_DEVICE_ARCH_TURINGZNVML_DEVICE_ARCH_AMPEREZNVML_DEVICE_ARCH_ADAZNVML_DEVICE_ARCH_HOPPERZNVML_DEVICE_ARCH_BLACKWELLZNVML_DEVICE_ARCH_T23XZNVML_DEVICE_ARCH_UNKNOWNrq  ZNVML_BUS_TYPE_UNKNOWNZNVML_BUS_TYPE_PCIZNVML_BUS_TYPE_PCIEZNVML_BUS_TYPE_FPCIZNVML_BUS_TYPE_AGPru  ZNVML_POWER_SOURCE_ACZNVML_POWER_SOURCE_BATTERYZNVML_POWER_SOURCE_UNDERSIZEDr{  Z+NVML_ADAPTIVE_CLOCKING_INFO_STATUS_DISABLEDZ*NVML_ADAPTIVE_CLOCKING_INFO_STATUS_ENABLEDZ_nvmlClockLimitId_tZNVML_CLOCK_LIMIT_ID_RANGE_STARTZNVML_CLOCK_LIMIT_ID_TDPZNVML_CLOCK_LIMIT_ID_UNLIMITEDrx  Z NVML_PCIE_LINK_MAX_SPEED_INVALIDZ!NVML_PCIE_LINK_MAX_SPEED_2500MBPSZ!NVML_PCIE_LINK_MAX_SPEED_5000MBPSZ!NVML_PCIE_LINK_MAX_SPEED_8000MBPSZ"NVML_PCIE_LINK_MAX_SPEED_16000MBPSZ"NVML_PCIE_LINK_MAX_SPEED_32000MBPSZ"NVML_PCIE_LINK_MAX_SPEED_64000MBPSZ_nvmlPcieAtomicsCapability_tZ NVML_PCIE_ATOMICS_CAP_FETCHADD32Z NVML_PCIE_ATOMICS_CAP_FETCHADD64ZNVML_PCIE_ATOMICS_CAP_SWAP32ZNVML_PCIE_ATOMICS_CAP_SWAP64ZNVML_PCIE_ATOMICS_CAP_CAS32ZNVML_PCIE_ATOMICS_CAP_CAS64ZNVML_PCIE_ATOMICS_CAP_CAS128ZNVML_PCIE_ATOMICS_OPS_MAXrX  ZNVML_AFFINITY_SCOPE_NODEZNVML_AFFINITY_SCOPE_SOCKETZ_nvmlDeviceGpuRecoveryAction_tZNVML_GPU_RECOVERY_ACTION_NONEZ"NVML_GPU_RECOVERY_ACTION_GPU_RESETZ$NVML_GPU_RECOVERY_ACTION_NODE_REBOOTZ"NVML_GPU_RECOVERY_ACTION_DRAIN_P2PZ(NVML_GPU_RECOVERY_ACTION_DRAIN_AND_RESETZnvmlFlagDefaultZnvmlFlagForceZNVML_INIT_FLAG_NO_GPUSZNVML_INIT_FLAG_NO_ATTACHZNVML_MAX_GPC_COUNTrp  r  rn  r  r  r  r  rQ  rO  Z'NVML_DEVICE_GPU_PART_NUMBER_BUFFER_SIZEr  r  r  rJ  r!  rP  r  rk  rm  Z+NVML_DEVICE_GPU_FRU_PART_NUMBER_BUFFER_SIZEr8  Z!NVML_DEVICE_PCI_BUS_ID_LEGACY_FMTZNVML_DEVICE_PCI_BUS_ID_FMTr  r  ZNVML_VALUE_NOT_AVAILABLE_uintZNVML_FI_DEV_ECC_CURRENTZNVML_FI_DEV_ECC_PENDINGZNVML_FI_DEV_ECC_SBE_VOL_TOTALZNVML_FI_DEV_ECC_DBE_VOL_TOTALZNVML_FI_DEV_ECC_SBE_AGG_TOTALZNVML_FI_DEV_ECC_DBE_AGG_TOTALZNVML_FI_DEV_ECC_SBE_VOL_L1ZNVML_FI_DEV_ECC_DBE_VOL_L1ZNVML_FI_DEV_ECC_SBE_VOL_L2ZNVML_FI_DEV_ECC_DBE_VOL_L2ZNVML_FI_DEV_ECC_SBE_VOL_DEVZNVML_FI_DEV_ECC_DBE_VOL_DEVZNVML_FI_DEV_ECC_SBE_VOL_REGZNVML_FI_DEV_ECC_DBE_VOL_REGZNVML_FI_DEV_ECC_SBE_VOL_TEXZNVML_FI_DEV_ECC_DBE_VOL_TEXZNVML_FI_DEV_ECC_DBE_VOL_CBUZNVML_FI_DEV_ECC_SBE_AGG_L1ZNVML_FI_DEV_ECC_DBE_AGG_L1ZNVML_FI_DEV_ECC_SBE_AGG_L2ZNVML_FI_DEV_ECC_DBE_AGG_L2ZNVML_FI_DEV_ECC_SBE_AGG_DEVZNVML_FI_DEV_ECC_DBE_AGG_DEVZNVML_FI_DEV_ECC_SBE_AGG_REGZNVML_FI_DEV_ECC_DBE_AGG_REGZNVML_FI_DEV_ECC_SBE_AGG_TEXZNVML_FI_DEV_ECC_DBE_AGG_TEXZNVML_FI_DEV_ECC_DBE_AGG_CBUZNVML_FI_DEV_RETIRED_SBEZNVML_FI_DEV_RETIRED_DBEZNVML_FI_DEV_RETIRED_PENDINGZ*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L0Z*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L1Z*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L2Z*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L3Z*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L4Z*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L5Z-NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_TOTALZ*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L0Z*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L1Z*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L2Z*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L3Z*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L4Z*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L5Z-NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_TOTALZ(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L0Z(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L1Z(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L2Z(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L3Z(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L4Z(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L5Z+NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_TOTALZ*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L0Z*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L1Z*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L2Z*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L3Z*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L4Z*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L5Z-NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_TOTALZ"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L0Z"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L1Z"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L2Z"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L3Z"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L4Z"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L5Z%NVML_FI_DEV_NVLINK_BANDWIDTH_C0_TOTALZ"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L0Z"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L1Z"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L2Z"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L3Z"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L4Z"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L5Z%NVML_FI_DEV_NVLINK_BANDWIDTH_C1_TOTALZNVML_FI_DEV_PERF_POLICY_POWERZNVML_FI_DEV_PERF_POLICY_THERMALZ"NVML_FI_DEV_PERF_POLICY_SYNC_BOOSTZ#NVML_FI_DEV_PERF_POLICY_BOARD_LIMITZ'NVML_FI_DEV_PERF_POLICY_LOW_UTILIZATIONZ#NVML_FI_DEV_PERF_POLICY_RELIABILITYZ(NVML_FI_DEV_PERF_POLICY_TOTAL_APP_CLOCKSZ)NVML_FI_DEV_PERF_POLICY_TOTAL_BASE_CLOCKSZNVML_FI_DEV_MEMORY_TEMPZ$NVML_FI_DEV_TOTAL_ENERGY_CONSUMPTIONZ NVML_FI_DEV_NVLINK_SPEED_MBPS_L0Z NVML_FI_DEV_NVLINK_SPEED_MBPS_L1Z NVML_FI_DEV_NVLINK_SPEED_MBPS_L2Z NVML_FI_DEV_NVLINK_SPEED_MBPS_L3Z NVML_FI_DEV_NVLINK_SPEED_MBPS_L4Z NVML_FI_DEV_NVLINK_SPEED_MBPS_L5Z$NVML_FI_DEV_NVLINK_SPEED_MBPS_COMMONZNVML_FI_DEV_NVLINK_LINK_COUNTZNVML_FI_DEV_RETIRED_PENDING_SBEZNVML_FI_DEV_RETIRED_PENDING_DBEZNVML_FI_DEV_PCIE_REPLAY_COUNTERZ(NVML_FI_DEV_PCIE_REPLAY_ROLLOVER_COUNTERZ*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L6Z*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L7Z*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L8Z*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L9Z+NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L10Z+NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L11Z*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L6Z*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L7Z*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L8Z*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L9Z+NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L10Z+NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L11Z(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L6Z(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L7Z(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L8Z(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L9Z)NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L10Z)NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L11Z*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L6Z*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L7Z*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L8Z*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L9Z+NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L10Z+NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L11Z"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L6Z"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L7Z"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L8Z"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L9Z#NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L10Z#NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L11Z"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L6Z"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L7Z"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L8Z"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L9Z#NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L10Z#NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L11Z NVML_FI_DEV_NVLINK_SPEED_MBPS_L6Z NVML_FI_DEV_NVLINK_SPEED_MBPS_L7Z NVML_FI_DEV_NVLINK_SPEED_MBPS_L8Z NVML_FI_DEV_NVLINK_SPEED_MBPS_L9Z!NVML_FI_DEV_NVLINK_SPEED_MBPS_L10Z!NVML_FI_DEV_NVLINK_SPEED_MBPS_L11Z%NVML_FI_DEV_NVLINK_THROUGHPUT_DATA_TXZ%NVML_FI_DEV_NVLINK_THROUGHPUT_DATA_RXZ$NVML_FI_DEV_NVLINK_THROUGHPUT_RAW_TXZ$NVML_FI_DEV_NVLINK_THROUGHPUT_RAW_RXZNVML_FI_DEV_REMAPPED_CORZNVML_FI_DEV_REMAPPED_UNCZNVML_FI_DEV_REMAPPED_PENDINGZNVML_FI_DEV_REMAPPED_FAILUREZ#NVML_FI_DEV_NVLINK_REMOTE_NVLINK_IDZ)NVML_FI_DEV_NVSWITCH_CONNECTED_LINK_COUNTZ*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L0Z*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L1Z*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L2Z*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L3Z*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L4Z*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L5Z*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L6Z*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L7Z*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L8Z*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L9Z+NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L10Z+NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L11Z-NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_TOTALZ"NVML_FI_DEV_NVLINK_ERROR_DL_REPLAYZ$NVML_FI_DEV_NVLINK_ERROR_DL_RECOVERYZNVML_FI_DEV_NVLINK_ERROR_DL_CRCZNVML_FI_DEV_NVLINK_GET_SPEEDZNVML_FI_DEV_NVLINK_GET_STATEZNVML_FI_DEV_NVLINK_GET_VERSIONZ"NVML_FI_DEV_NVLINK_GET_POWER_STATEZ&NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLDZ'NVML_FI_DEV_PCIE_L0_TO_RECOVERY_COUNTERZNVML_FI_DEV_C2C_LINK_COUNTZNVML_FI_DEV_C2C_LINK_GET_STATUSZNVML_FI_DEV_C2C_LINK_GET_MAX_BWZ)NVML_FI_DEV_PCIE_COUNT_CORRECTABLE_ERRORSZ$NVML_FI_DEV_PCIE_COUNT_NAKS_RECEIVEDZ%NVML_FI_DEV_PCIE_COUNT_RECEIVER_ERRORZNVML_FI_DEV_PCIE_COUNT_BAD_TLPZ NVML_FI_DEV_PCIE_COUNT_NAKS_SENTZNVML_FI_DEV_PCIE_COUNT_BAD_DLLPZ&NVML_FI_DEV_PCIE_COUNT_NON_FATAL_ERRORZ"NVML_FI_DEV_PCIE_COUNT_FATAL_ERRORZ&NVML_FI_DEV_PCIE_COUNT_UNSUPPORTED_REQZ!NVML_FI_DEV_PCIE_COUNT_LCRC_ERRORZ!NVML_FI_DEV_PCIE_COUNT_LANE_ERRORZ&NVML_FI_DEV_IS_RESETLESS_MIG_SUPPORTEDZNVML_FI_DEV_POWER_AVERAGEZNVML_FI_DEV_POWER_INSTANTZNVML_FI_DEV_POWER_MIN_LIMITZNVML_FI_DEV_POWER_MAX_LIMITZNVML_FI_DEV_POWER_DEFAULT_LIMITZNVML_FI_DEV_POWER_CURRENT_LIMITZNVML_FI_DEV_ENERGYZ!NVML_FI_DEV_POWER_REQUESTED_LIMITZ'NVML_FI_DEV_TEMPERATURE_SHUTDOWN_TLIMITZ'NVML_FI_DEV_TEMPERATURE_SLOWDOWN_TLIMITZ&NVML_FI_DEV_TEMPERATURE_MEM_MAX_TLIMITZ&NVML_FI_DEV_TEMPERATURE_GPU_MAX_TLIMITZNVML_FI_DEV_PCIE_COUNT_TX_BYTESZNVML_FI_DEV_PCIE_COUNT_RX_BYTESZ5NVML_FI_DEV_IS_MIG_MODE_INDEPENDENT_MIG_QUERY_CAPABLEZ*NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD_MAXZ%NVML_FI_DEV_NVLINK_COUNT_XMIT_PACKETSZ#NVML_FI_DEV_NVLINK_COUNT_XMIT_BYTESZ$NVML_FI_DEV_NVLINK_COUNT_RCV_PACKETSZ"NVML_FI_DEV_NVLINK_COUNT_RCV_BYTESZ%NVML_FI_DEV_NVLINK_COUNT_VL15_DROPPEDZ0NVML_FI_DEV_NVLINK_COUNT_MALFORMED_PACKET_ERRORSZ.NVML_FI_DEV_NVLINK_COUNT_BUFFER_OVERRUN_ERRORSZ#NVML_FI_DEV_NVLINK_COUNT_RCV_ERRORSZ*NVML_FI_DEV_NVLINK_COUNT_RCV_REMOTE_ERRORSZ+NVML_FI_DEV_NVLINK_COUNT_RCV_GENERAL_ERRORSZ4NVML_FI_DEV_NVLINK_COUNT_LOCAL_LINK_INTEGRITY_ERRORSZ&NVML_FI_DEV_NVLINK_COUNT_XMIT_DISCARDSZ8NVML_FI_DEV_NVLINK_COUNT_LINK_RECOVERY_SUCCESSFUL_EVENTSZ4NVML_FI_DEV_NVLINK_COUNT_LINK_RECOVERY_FAILED_EVENTSZ-NVML_FI_DEV_NVLINK_COUNT_LINK_RECOVERY_EVENTSZ&NVML_FI_DEV_NVLINK_COUNT_RAW_BER_LANE0Z&NVML_FI_DEV_NVLINK_COUNT_RAW_BER_LANE1Z NVML_FI_DEV_NVLINK_COUNT_RAW_BERZ)NVML_FI_DEV_NVLINK_COUNT_EFFECTIVE_ERRORSZ&NVML_FI_DEV_NVLINK_COUNT_EFFECTIVE_BERZ&NVML_FI_DEV_NVLINK_COUNT_SYMBOL_ERRORSZ#NVML_FI_DEV_NVLINK_COUNT_SYMBOL_BERZ*NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD_MINZ,NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD_UNITSZ0NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD_SUPPORTEDZNVML_FI_DEV_RESET_STATUSZ"NVML_FI_DEV_DRAIN_AND_RESET_STATUSZ&NVML_FI_DEV_PCIE_OUTBOUND_ATOMICS_MASKZ%NVML_FI_DEV_PCIE_INBOUND_ATOMICS_MASKZ#NVML_FI_DEV_GET_GPU_RECOVERY_ACTIONZ&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_0Z&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_1Z&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_2Z&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_3Z&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_4Z&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_5Z&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_6Z&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_7Z&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_8Z&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_9Z'NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_10Z'NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_11Z'NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_12Z'NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_13Z'NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_14Z'NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_15ZNVML_FI_PWR_SMOOTHING_ENABLEDZNVML_FI_PWR_SMOOTHING_PRIV_LVLZ+NVML_FI_PWR_SMOOTHING_IMM_RAMP_DOWN_ENABLEDZ&NVML_FI_PWR_SMOOTHING_APPLIED_TMP_CEILZ'NVML_FI_PWR_SMOOTHING_APPLIED_TMP_FLOORZ3NVML_FI_PWR_SMOOTHING_MAX_PERCENT_TMP_FLOOR_SETTINGZ3NVML_FI_PWR_SMOOTHING_MIN_PERCENT_TMP_FLOOR_SETTINGZ=NVML_FI_PWR_SMOOTHING_HW_CIRCUITRY_PERCENT_LIFETIME_REMAININGZ-NVML_FI_PWR_SMOOTHING_MAX_NUM_PRESET_PROFILESZ/NVML_FI_PWR_SMOOTHING_PROFILE_PERCENT_TMP_FLOORZ*NVML_FI_PWR_SMOOTHING_PROFILE_RAMP_UP_RATEZ,NVML_FI_PWR_SMOOTHING_PROFILE_RAMP_DOWN_RATEZ0NVML_FI_PWR_SMOOTHING_PROFILE_RAMP_DOWN_HYST_VALZ+NVML_FI_PWR_SMOOTHING_ACTIVE_PRESET_PROFILEZ6NVML_FI_PWR_SMOOTHING_ADMIN_OVERRIDE_PERCENT_TMP_FLOORZ1NVML_FI_PWR_SMOOTHING_ADMIN_OVERRIDE_RAMP_UP_RATEZ3NVML_FI_PWR_SMOOTHING_ADMIN_OVERRIDE_RAMP_DOWN_RATEZ7NVML_FI_PWR_SMOOTHING_ADMIN_OVERRIDE_RAMP_DOWN_HYST_VALZNVML_FI_MAXZNVML_NVLINK_STATE_INACTIVEZNVML_NVLINK_STATE_ACTIVEZNVML_NVLINK_STATE_SLEEPZ*NVML_NVLINK_LOW_POWER_THRESHOLD_UNIT_100USZ)NVML_NVLINK_LOW_POWER_THRESHOLD_UNIT_50USZ!NVML_GPU_VIRTUALIZATION_MODE_NONEZ(NVML_GPU_VIRTUALIZATION_MODE_PASSTHROUGHZ!NVML_GPU_VIRTUALIZATION_MODE_VGPUZ&NVML_GPU_VIRTUALIZATION_MODE_HOST_VGPUZ&NVML_GPU_VIRTUALIZATION_MODE_HOST_VSGArS  LockrQ  r  r  r  Z_nvmlVgpuVmIdType_tZNVML_VGPU_VM_ID_DOMAIN_IDZNVML_VGPU_VM_ID_UUIDrI  Z&NVML_GRID_LICENSE_FEATURE_CODE_UNKNOWNZ#NVML_GRID_LICENSE_FEATURE_CODE_VGPUZ)NVML_GRID_LICENSE_FEATURE_CODE_NVIDIA_RTXZ+NVML_GRID_LICENSE_FEATURE_CODE_VWORKSTATIONZ%NVML_GRID_LICENSE_FEATURE_CODE_GAMINGZ&NVML_GRID_LICENSE_FEATURE_CODE_COMPUTEr  Z_nvmlGridLicenseExpiryStatus_tZ&NVML_GRID_LICENSE_EXPIRY_NOT_AVAILABLEZ NVML_GRID_LICENSE_EXPIRY_INVALIDZNVML_GRID_LICENSE_EXPIRY_VALIDZ'NVML_GRID_LICENSE_EXPIRY_NOT_APPLICABLEZ"NVML_GRID_LICENSE_EXPIRY_PERMANENTr  ZNVML_VGPU_CAP_NVLINK_P2PZNVML_VGPU_CAP_GPUDIRECTZ"NVML_VGPU_CAP_MULTI_VGPU_EXCLUSIVEZNVML_VGPU_CAP_EXCLUSIVE_TYPEZNVML_VGPU_CAP_EXCLUSIVE_SIZEZNVML_VGPU_CAP_COUNTr  Z-NVML_VGPU_DRIVER_CAP_HETEROGENEOUS_MULTI_VGPUZ NVML_VGPU_DRIVER_CAP_WARM_UPDATEZNVML_VGPU_DRIVER_CAP_COUNTr  Z*NVML_DEVICE_VGPU_CAP_FRACTIONAL_MULTI_VGPUZ5NVML_DEVICE_VGPU_CAP_HETEROGENEOUS_TIMESLICE_PROFILESZ2NVML_DEVICE_VGPU_CAP_HETEROGENEOUS_TIMESLICE_SIZESZ*NVML_DEVICE_VGPU_CAP_READ_DEVICE_BUFFER_BWZ+NVML_DEVICE_VGPU_CAP_WRITE_DEVICE_BUFFER_BWZ%NVML_DEVICE_VGPU_CAP_DEVICE_STREAMINGZ%NVML_DEVICE_VGPU_CAP_MINI_QUARTER_GPUZ-NVML_DEVICE_VGPU_CAP_COMPUTE_MEDIA_ENGINE_GPUZ NVML_DEVICE_VGPU_CAP_WARM_UPDATEZ+NVML_DEVICE_VGPU_CAP_HOMOGENEOUS_PLACEMENTSZNVML_DEVICE_VGPU_CAP_COUNTrj  Z1NVML_VGPU_INSTANCE_GUEST_INFO_STATE_UNINITIALIZEDZ/NVML_VGPU_INSTANCE_GUEST_INFO_STATE_INITIALIZEDro  ZNVML_VGPU_VM_COMPATIBILITY_NONEZNVML_VGPU_VM_COMPATIBILITY_COLDZ$NVML_VGPU_VM_COMPATIBILITY_HIBERNATEZ NVML_VGPU_VM_COMPATIBILITY_SLEEPZNVML_VGPU_VM_COMPATIBILITY_LIVErp  Z"NVML_VGPU_COMPATIBILITY_LIMIT_NONEZ)NVML_VGPU_COMPATIBILITY_LIMIT_HOST_DRIVERZ*NVML_VGPU_COMPATIBILITY_LIMIT_GUEST_DRIVERZ!NVML_VGPU_COMPATIBILITY_LIMIT_GPUZ#NVML_VGPU_COMPATIBILITY_LIMIT_OTHERrA  ZNVML_HOST_VGPU_MODE_NON_SRIOVZNVML_HOST_VGPU_MODE_SRIOVZ _nvmlConfComputeGpusReadyState_tZ'NVML_CC_ACCEPTING_CLIENT_REQUESTS_FALSEZ&NVML_CC_ACCEPTING_CLIENT_REQUESTS_TRUEZ_nvmlConfComputeGpuCaps_tZ"NVML_CC_SYSTEM_GPUS_CC_NOT_CAPABLEZNVML_CC_SYSTEM_GPUS_CC_CAPABLEZ_nvmlConfComputeCpuCaps_tZNVML_CC_SYSTEM_CPU_CAPS_NONEZNVML_CC_SYSTEM_CPU_CAPS_AMD_SEVZ!NVML_CC_SYSTEM_CPU_CAPS_INTEL_TDXZ#NVML_CC_SYSTEM_CPU_CAPS_AMD_SEV_SNPZ$NVML_CC_SYSTEM_CPU_CAPS_AMD_SNP_VTOMZ_nvmlConfComputeDevToolsMode_tZ NVML_CC_SYSTEM_DEVTOOLS_MODE_OFFZNVML_CC_SYSTEM_DEVTOOLS_MODE_ONZNVML_CC_SYSTEM_MULTIGPU_NONEZ&NVML_CC_SYSTEM_MULTIGPU_PROTECTED_PCIEZ&NVML_CC_SYSTEM_ENVIRONMENT_UNAVAILABLEZNVML_CC_SYSTEM_ENVIRONMENT_SIMZNVML_CC_SYSTEM_ENVIRONMENT_PRODZ_nvmlConfComputeCcFeature_tZNVML_CC_SYSTEM_FEATURE_DISABLEDZNVML_CC_SYSTEM_FEATURE_ENABLEDZ0_nvmlConfComputeCcKeyRotationThreshAttackerAdv_tZ2NVML_CC_KEY_ROTATION_THRESH_ATTACKER_ADVANTAGE_MINZ2NVML_CC_KEY_ROTATION_THRESH_ATTACKER_ADVANTAGE_MAXr  r  r  r  r6  rL  rO  r   rP  rW  objectrX  re  ri  Z	Structurerj  r  r  rk  r~  r  ZnvmlC2cModeInfo_v1r  r  r  r  r  r^  r  ZnvmlPciInfoExt_v1r  r  r  r  r  r  r  r  ZnvmlMemory_v2r  r  r  r  r  r  Zc_nvmlProcessInfo_tr  ZNVML_PROCESS_MODE_COMPUTEZNVML_PROCESS_MODE_GRAPHICSZNVML_PROCESS_MODE_MPSr  r  r  ZnvmlProcessDetailList_v1r  r  r  r  r  Unionr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  Z!NVML_VGPU_PGPU_HETEROGENEOUS_MODEZNVML_VGPU_PGPU_HOMOGENEOUS_MODEr  r  r  r  r  r  r  r  r  r"  r$  r  r'  r  r*  ZNVML_GRID_LICENSE_STATE_UNKNOWNZ%NVML_GRID_LICENSE_STATE_UNINITIALIZEDZ/NVML_GRID_LICENSE_STATE_UNLICENSED_UNRESTRICTEDZ-NVML_GRID_LICENSE_STATE_UNLICENSED_RESTRICTEDZ"NVML_GRID_LICENSE_STATE_UNLICENSEDZ NVML_GRID_LICENSE_STATE_LICENSEDr4  r7  r<  r=  r?  r(  rB  rC  rL  rR  rT  rU  rV  rW  rX  rY  r  r[  r/  ZnvmlEventTypeSingleBitEccErrorZnvmlEventTypeDoubleBitEccErrorZnvmlEventTypePStateZnvmlEventTypeXidCriticalErrorZnvmlEventTypeClockZnvmlEventTypePowerSourceChangeZnvmlEventMigConfigChangeZ#nvmlEventTypeSingleBitEccErrorStormZ nvmlEventTypeDramRetirementEventZ"nvmlEventTypeDramRetirementFailureZ nvmlEventTypeNonFatalPoisonErrorZnvmlEventTypeFatalPoisonErrorZ nvmlEventTypeGpuUnavailableErrorZnvmlEventTypeGpuRecoveryActionZnvmlEventTypeNoneZnvmlEventTypeAllZnvmlClocksEventReasonGpuIdleZ.nvmlClocksEventReasonApplicationsClocksSettingZ&nvmlClocksEventReasonUserDefinedClocksZnvmlClocksEventReasonSwPowerCapZnvmlClocksEventReasonHwSlowdownZnvmlClocksEventReasonSyncBoostZ&nvmlClocksEventReasonSwThermalSlowdownZ&nvmlClocksEventReasonHwThermalSlowdownZ)nvmlClocksEventReasonHwPowerBrakeSlowdownZ(nvmlClocksEventReasonDisplayClockSettingZnvmlClocksEventReasonNoneZnvmlClocksEventReasonAllZnvmlClocksThrottleReasonGpuIdleZ1nvmlClocksThrottleReasonApplicationsClocksSettingZ)nvmlClocksThrottleReasonUserDefinedClocksZ"nvmlClocksThrottleReasonSwPowerCapZ"nvmlClocksThrottleReasonHwSlowdownZ!nvmlClocksThrottleReasonSyncBoostZ)nvmlClocksThrottleReasonSwThermalSlowdownZ)nvmlClocksThrottleReasonHwThermalSlowdownZ,nvmlClocksThrottleReasonHwPowerBrakeSlowdownZ+nvmlClocksThrottleReasonDisplayClockSettingZnvmlClocksThrottleReasonNoneZnvmlClocksThrottleReasonAllr]  r_  rb  re  rl  rn  Z"NVML_VGPU_SCHEDULER_POLICY_UNKNOWNZ&NVML_VGPU_SCHEDULER_POLICY_BEST_EFFORTZ&NVML_VGPU_SCHEDULER_POLICY_EQUAL_SHAREZ&NVML_VGPU_SCHEDULER_POLICY_FIXED_SHAREr  r}  ZNVML_VGPU_SCHEDULER_ARR_DEFAULTZNVML_VGPU_SCHEDULER_ARR_DISABLEZNVML_VGPU_SCHEDULER_ARR_ENABLErq  rt  ru  rx  ry  r  r  r  r  r  r  r  r  ZNVML_DEVICE_MIG_DISABLEZNVML_DEVICE_MIG_ENABLEZ!NVML_GPU_INSTANCE_PROFILE_1_SLICEZ!NVML_GPU_INSTANCE_PROFILE_2_SLICEZ!NVML_GPU_INSTANCE_PROFILE_3_SLICEZ!NVML_GPU_INSTANCE_PROFILE_4_SLICEZ!NVML_GPU_INSTANCE_PROFILE_7_SLICEZ!NVML_GPU_INSTANCE_PROFILE_8_SLICEZ!NVML_GPU_INSTANCE_PROFILE_6_SLICEZ&NVML_GPU_INSTANCE_PROFILE_1_SLICE_REV1Z&NVML_GPU_INSTANCE_PROFILE_2_SLICE_REV1Z&NVML_GPU_INSTANCE_PROFILE_1_SLICE_REV2Z%NVML_GPU_INSTANCE_PROFILE_1_SLICE_GFXZ%NVML_GPU_INSTANCE_PROFILE_2_SLICE_GFXZ%NVML_GPU_INSTANCE_PROFILE_4_SLICE_GFXZNVML_GPU_INSTANCE_PROFILE_COUNTr  r  r  r  r  r  r  Z%NVML_COMPUTE_INSTANCE_PROFILE_1_SLICEZ%NVML_COMPUTE_INSTANCE_PROFILE_2_SLICEZ%NVML_COMPUTE_INSTANCE_PROFILE_3_SLICEZ%NVML_COMPUTE_INSTANCE_PROFILE_4_SLICEZ%NVML_COMPUTE_INSTANCE_PROFILE_7_SLICEZ%NVML_COMPUTE_INSTANCE_PROFILE_8_SLICEZ%NVML_COMPUTE_INSTANCE_PROFILE_6_SLICEZ*NVML_COMPUTE_INSTANCE_PROFILE_1_SLICE_REV1Z#NVML_COMPUTE_INSTANCE_PROFILE_COUNTZ+NVML_COMPUTE_INSTANCE_ENGINE_PROFILE_SHAREDZ*NVML_COMPUTE_INSTANCE_ENGINE_PROFILE_COUNTr  r  r  r  r  r  ZNVML_GPU_UTILIZATION_DOMAIN_GPUZNVML_GPU_UTILIZATION_DOMAIN_FBZNVML_GPU_UTILIZATION_DOMAIN_VIDZNVML_GPU_UTILIZATION_DOMAIN_BUSr  r  r  ZNVML_THERMAL_TARGET_NONEZNVML_THERMAL_TARGET_GPUZNVML_THERMAL_TARGET_MEMORYZ NVML_THERMAL_TARGET_POWER_SUPPLYZNVML_THERMAL_TARGET_BOARDZNVML_THERMAL_TARGET_VCD_BOARDZNVML_THERMAL_TARGET_VCD_INLETZNVML_THERMAL_TARGET_VCD_OUTLETZNVML_THERMAL_TARGET_ALLZNVML_THERMAL_TARGET_UNKNOWNZNVML_THERMAL_CONTROLLER_NONEZ$NVML_THERMAL_CONTROLLER_GPU_INTERNALZNVML_THERMAL_CONTROLLER_ADM1032ZNVML_THERMAL_CONTROLLER_ADT7461ZNVML_THERMAL_CONTROLLER_MAX6649ZNVML_THERMAL_CONTROLLER_MAX1617ZNVML_THERMAL_CONTROLLER_LM99ZNVML_THERMAL_CONTROLLER_LM89ZNVML_THERMAL_CONTROLLER_LM64ZNVML_THERMAL_CONTROLLER_G781ZNVML_THERMAL_CONTROLLER_ADT7473Z!NVML_THERMAL_CONTROLLER_SBMAX6649Z NVML_THERMAL_CONTROLLER_VBIOSEVTZNVML_THERMAL_CONTROLLER_OSZ'NVML_THERMAL_CONTROLLER_NVSYSCON_CANOASZ%NVML_THERMAL_CONTROLLER_NVSYSCON_E551Z NVML_THERMAL_CONTROLLER_MAX6649RZ NVML_THERMAL_CONTROLLER_ADT7473SZNVML_THERMAL_CONTROLLER_UNKNOWNr  r  r  ZNVML_THERMAL_COOLER_SIGNAL_NONEZ!NVML_THERMAL_COOLER_SIGNAL_TOGGLEZ#NVML_THERMAL_COOLER_SIGNAL_VARIABLEZ NVML_THERMAL_COOLER_SIGNAL_COUNTr  ZNVML_THERMAL_COOLER_TARGET_NONEZNVML_THERMAL_COOLER_TARGET_GPUZ!NVML_THERMAL_COOLER_TARGET_MEMORYZ'NVML_THERMAL_COOLER_TARGET_POWER_SUPPLYZ&NVML_THERMAL_COOLER_TARGET_GPU_RELATEDr  r  r  r  rZ  r  r  r  r  r  r  r  Z*NVML_CC_CEC_ATTESTATION_REPORT_NOT_PRESENTZ&NVML_CC_CEC_ATTESTATION_REPORT_PRESENTr  r  r  r  r  r  r  r  r  r  r  r  r  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  r2  r4  r6  r;  r:  r=  r?  r>  rA  rD  rE  rJ  rH  rN  rP  rR  rV  r]  r_  rb  rf  rh  rl  rm  ro  rr  rt  ru  rv  rx  r}  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  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  r2  r4  r7  r8  r9  r:  r>  r?  rB  rC  rD  rF  rG  rH  rI  rJ  rK  rL  rM  rO  rP  rV  r\  r_  r`  rc  rd  re  rl  rn  rq  rs  ru  ry  r{  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  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  r1  r2  r3  r5  r6  r8  r9  r:  r<  r=  r>  r@  rB  rC  rE  rD  rG  rK  rL  rO  rP  rQ  rR  rS  rU  rT  rV  rW  rX  r[  r\  r^  r_  r`  ra  rb  rc  rd  re  rf  rh  ri  rj  rk  rl  rm  rp  rr  rs  rt  rv  rw  rz  r|  r}  r~  r  r  r  ZnvmlClockOffset_v1r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  ZNVML_GPM_METRIC_GRAPHICS_UTILZNVML_GPM_METRIC_SM_UTILZNVML_GPM_METRIC_SM_OCCUPANCYZNVML_GPM_METRIC_INTEGER_UTILZNVML_GPM_METRIC_ANY_TENSOR_UTILZ NVML_GPM_METRIC_DFMA_TENSOR_UTILZ NVML_GPM_METRIC_HMMA_TENSOR_UTILZ NVML_GPM_METRIC_IMMA_TENSOR_UTILZNVML_GPM_METRIC_DRAM_BW_UTILZNVML_GPM_METRIC_FP64_UTILZNVML_GPM_METRIC_FP32_UTILZNVML_GPM_METRIC_FP16_UTILZNVML_GPM_METRIC_PCIE_TX_PER_SECZNVML_GPM_METRIC_PCIE_RX_PER_SECZNVML_GPM_METRIC_NVDEC_0_UTILZNVML_GPM_METRIC_NVDEC_1_UTILZNVML_GPM_METRIC_NVDEC_2_UTILZNVML_GPM_METRIC_NVDEC_3_UTILZNVML_GPM_METRIC_NVDEC_4_UTILZNVML_GPM_METRIC_NVDEC_5_UTILZNVML_GPM_METRIC_NVDEC_6_UTILZNVML_GPM_METRIC_NVDEC_7_UTILZNVML_GPM_METRIC_NVJPG_0_UTILZNVML_GPM_METRIC_NVJPG_1_UTILZNVML_GPM_METRIC_NVJPG_2_UTILZNVML_GPM_METRIC_NVJPG_3_UTILZNVML_GPM_METRIC_NVJPG_4_UTILZNVML_GPM_METRIC_NVJPG_5_UTILZNVML_GPM_METRIC_NVJPG_6_UTILZNVML_GPM_METRIC_NVJPG_7_UTILZNVML_GPM_METRIC_NVOFA_0_UTILZNVML_GPM_METRIC_NVOFA_1_UTILZ'NVML_GPM_METRIC_NVLINK_TOTAL_RX_PER_SECZ'NVML_GPM_METRIC_NVLINK_TOTAL_TX_PER_SECZ$NVML_GPM_METRIC_NVLINK_L0_RX_PER_SECZ$NVML_GPM_METRIC_NVLINK_L0_TX_PER_SECZ$NVML_GPM_METRIC_NVLINK_L1_RX_PER_SECZ$NVML_GPM_METRIC_NVLINK_L1_TX_PER_SECZ$NVML_GPM_METRIC_NVLINK_L2_RX_PER_SECZ$NVML_GPM_METRIC_NVLINK_L2_TX_PER_SECZ$NVML_GPM_METRIC_NVLINK_L3_RX_PER_SECZ$NVML_GPM_METRIC_NVLINK_L3_TX_PER_SECZ$NVML_GPM_METRIC_NVLINK_L4_RX_PER_SECZ$NVML_GPM_METRIC_NVLINK_L4_TX_PER_SECZ$NVML_GPM_METRIC_NVLINK_L5_RX_PER_SECZ$NVML_GPM_METRIC_NVLINK_L5_TX_PER_SECZ$NVML_GPM_METRIC_NVLINK_L6_RX_PER_SECZ$NVML_GPM_METRIC_NVLINK_L6_TX_PER_SECZ$NVML_GPM_METRIC_NVLINK_L7_RX_PER_SECZ$NVML_GPM_METRIC_NVLINK_L7_TX_PER_SECZ$NVML_GPM_METRIC_NVLINK_L8_RX_PER_SECZ$NVML_GPM_METRIC_NVLINK_L8_TX_PER_SECZ$NVML_GPM_METRIC_NVLINK_L9_RX_PER_SECZ$NVML_GPM_METRIC_NVLINK_L9_TX_PER_SECZ%NVML_GPM_METRIC_NVLINK_L10_RX_PER_SECZ%NVML_GPM_METRIC_NVLINK_L10_TX_PER_SECZ%NVML_GPM_METRIC_NVLINK_L11_RX_PER_SECZ%NVML_GPM_METRIC_NVLINK_L11_TX_PER_SECZ%NVML_GPM_METRIC_NVLINK_L12_RX_PER_SECZ%NVML_GPM_METRIC_NVLINK_L12_TX_PER_SECZ%NVML_GPM_METRIC_NVLINK_L13_RX_PER_SECZ%NVML_GPM_METRIC_NVLINK_L13_TX_PER_SECZ%NVML_GPM_METRIC_NVLINK_L14_RX_PER_SECZ%NVML_GPM_METRIC_NVLINK_L14_TX_PER_SECZ%NVML_GPM_METRIC_NVLINK_L15_RX_PER_SECZ%NVML_GPM_METRIC_NVLINK_L15_TX_PER_SECZ%NVML_GPM_METRIC_NVLINK_L16_RX_PER_SECZ%NVML_GPM_METRIC_NVLINK_L16_TX_PER_SECZ%NVML_GPM_METRIC_NVLINK_L17_RX_PER_SECZ%NVML_GPM_METRIC_NVLINK_L17_TX_PER_SECr  r  r  r  r  r  ZNVML_GPM_METRICS_GET_VERSIONr  r  r  r  r  r  r  r  r  r  Z"NVML_NVLINK_POWER_STATE_HIGH_SPEEDZNVML_NVLINK_POWER_STATE_LOWZ#NVML_NVLINK_LOW_POWER_THRESHOLD_MINZ#NVML_NVLINK_LOW_POWER_THRESHOLD_MAXZ%NVML_NVLINK_LOW_POWER_THRESHOLD_RESETZ'NVML_NVLINK_LOW_POWER_THRESHOLD_DEFAULTr  r  r  r  Z#NVML_GPU_FABRIC_STATE_NOT_SUPPORTEDZ!NVML_GPU_FABRIC_STATE_NOT_STARTEDZ!NVML_GPU_FABRIC_STATE_IN_PROGRESSZNVML_GPU_FABRIC_STATE_COMPLETEDr  Z5NVML_GPU_FABRIC_HEALTH_MASK_DEGRADED_BW_NOT_SUPPORTEDZ,NVML_GPU_FABRIC_HEALTH_MASK_DEGRADED_BW_TRUEZ-NVML_GPU_FABRIC_HEALTH_MASK_DEGRADED_BW_FALSEZ-NVML_GPU_FABRIC_HEALTH_MASK_SHIFT_DEGRADED_BWZ-NVML_GPU_FABRIC_HEALTH_MASK_WIDTH_DEGRADED_BWZ8NVML_GPU_FABRIC_HEALTH_MASK_ROUTE_RECOVERY_NOT_SUPPORTEDZ/NVML_GPU_FABRIC_HEALTH_MASK_ROUTE_RECOVERY_TRUEZ0NVML_GPU_FABRIC_HEALTH_MASK_ROUTE_RECOVERY_FALSEZ0NVML_GPU_FABRIC_HEALTH_MASK_SHIFT_ROUTE_RECOVERYZ0NVML_GPU_FABRIC_HEALTH_MASK_WIDTH_ROUTE_RECOVERYZ9NVML_GPU_FABRIC_HEALTH_MASK_ROUTE_UNHEALTHY_NOT_SUPPORTEDZ0NVML_GPU_FABRIC_HEALTH_MASK_ROUTE_UNHEALTHY_TRUEZ1NVML_GPU_FABRIC_HEALTH_MASK_ROUTE_UNHEALTHY_FALSEZ1NVML_GPU_FABRIC_HEALTH_MASK_SHIFT_ROUTE_UNHEALTHYZ1NVML_GPU_FABRIC_HEALTH_MASK_WIDTH_ROUTE_UNHEALTHYZANVML_GPU_FABRIC_HEALTH_MASK_ACCESS_TIMEOUT_RECOVERY_NOT_SUPPORTEDZ8NVML_GPU_FABRIC_HEALTH_MASK_ACCESS_TIMEOUT_RECOVERY_TRUEZ9NVML_GPU_FABRIC_HEALTH_MASK_ACCESS_TIMEOUT_RECOVERY_FALSEZ9NVML_GPU_FABRIC_HEALTH_MASK_SHIFT_ACCESS_TIMEOUT_RECOVERYZ9NVML_GPU_FABRIC_HEALTH_MASK_WIDTH_ACCESS_TIMEOUT_RECOVERYr  r  r  r  ZNVML_GPU_NVLINK_BW_MODE_FULLZNVML_GPU_NVLINK_BW_MODE_OFFZNVML_GPU_NVLINK_BW_MODE_MINZNVML_GPU_NVLINK_BW_MODE_HALFZ NVML_GPU_NVLINK_BW_MODE_3QUARTERZNVML_GPU_NVLINK_BW_MODE_COUNTr  r  r  ZNVML_POWER_SCOPE_GPUZNVML_POWER_SCOPE_MODULEZNVML_POWER_SCOPE_MEMORYr  ZnvmlPowerValue_v2r  r  r  r  ZNVML_DEV_CAP_EGMr  r  r  r  r  r  r  r  ZNVML_POWER_PROFILE_MAX_PZNVML_POWER_PROFILE_MAX_QZNVML_POWER_PROFILE_COMPUTEZNVML_POWER_PROFILE_MEMORY_BOUNDZNVML_POWER_PROFILE_NETWORKZNVML_POWER_PROFILE_BALANCEDZ NVML_POWER_PROFILE_LLM_INFERENCEZNVML_POWER_PROFILE_LLM_TRAININGZNVML_POWER_PROFILE_RBMZNVML_POWER_PROFILE_DCPCIEZNVML_POWER_PROFILE_HMMA_SPARSEZNVML_POWER_PROFILE_HMMA_DENSEZ NVML_POWER_PROFILE_SYNC_BALANCEDZNVML_POWER_PROFILE_HPCZNVML_POWER_PROFILE_MIGZNVML_POWER_PROFILE_MAXr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  Z%NVML_POWER_SMOOTHING_MAX_NUM_PROFILESZ+NVML_POWER_SMOOTHING_ADMIN_OVERRIDE_NOT_SETZ4NVML_POWER_SMOOTHING_PROFILE_PARAM_PERCENT_TMP_FLOORZ/NVML_POWER_SMOOTHING_PROFILE_PARAM_RAMP_UP_RATEZ1NVML_POWER_SMOOTHING_PROFILE_PARAM_RAMP_DOWN_RATEZ7NVML_POWER_SMOOTHING_PROFILE_PARAM_RAMP_DOWN_HYSTERESISr  r  r	  r  r
  r  r  r
  r
  r
  r  <module>   s@  $
-
4
			


	
	

		
		


	
	"	

												""""#
	

							
		
	
					


					