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
  M/home/ubuntu/vllm_env/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 )	NVMLErrorUninitializedzInvalid ArgumentzNot SupportedzInsufficient PermissionszAlready Initializedz	Not FoundzInsufficient SizezInsufficient External PowerzDriver Not LoadedTimeoutzInterrupt Request IssuezNVML Shared Library Not FoundzFunction Not FoundzCorrupted infoROMzGPU is lostzGPU requires restartz-The operating system has blocked the request.z,RM has detected an NVML/RM version mismatch.zInsufficient MemoryzUnknown Errorc                 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)nvmlErrorCoder
  r
  r  nvmlExceptionClass  s   

r8  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 )ak  
    Generates a hierarchy of classes on top of NVMLError class.

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

    NVMLError is a parent class. Each NVML_ERROR_* gets its own subclass.
    e.g. NVML_ERROR_ALREADY_INITIALIZED will be turned into NVMLError_AlreadyInitialized
    c                 S   s   g | ]	}| d r|qS )NVML_ERROR_)
startswith).0xr
  r
  r  
<listcomp>  s    z/_extractNVMLErrorsAsClasses.<locals>.<listcomp>
NVMLError_r9   _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
  )rB  rC  r
  rA  r  gen_new
  s   z,_extractNVMLErrorsAsClasses.<locals>.gen_newr  N)sysmodulesr  dirstringcapwordsreplacegetattrtyper  r  setattrr  )this_modulenvmlErrorsNameserr_name
class_nameerr_valrD  new_error_classr
  r
  r  _extractNVMLErrorsAsClasses  s   

 
rT  c                 C   s   | t krt| | S r  )NVML_SUCCESSr  )retr
  r
  r  _nvmlCheckReturn  s   rW  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"  rK  releaseAttributeErrorr.  )namer
  r
  r  _nvmlGetFunctionPointer  s   


r_  c                   @   s   e Zd Zdd Zdd ZdS )nvmlFriendlyObjectc                 C   s   |D ]
}t | |||  qd S r  )rM  )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	  rb  r  r
  r
  r
  r  r`  4  s    r`  c                 C   sH   i }| j D ]}|d }t| |}t|tr| n|||< qt|}|S Nr   )_fields_rK  
isinstancebytesdecoder`  )structdr<  keyr  r  r
  r
  r  nvmlStructToFriendlyObject;  s   

rm  c                 C   sJ   |j D ]}|d }| j| }tjdkrt|||  qt||| q|S )Nr   r  )rf  rc  rE  version_inforM  encode)r  modelr<  rl  r  r
  r
  r  nvmlFriendlyObjectToStructF  s   


rq  c                   @   r  )struct_c_nvmlUnit_tNr  r
  r
  r
  r  rr  R  r  rr  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, ))rf  rK  _fmt_append	__class__r  join)r  resultr<  rl  r  fmtr
  r
  r  r  j  s   




z_PrintableStructure.__str__c                    s4   t t| |}t|trt|tr|S | S |S r  )superrs  __getattribute__rg  rh  r  ri  )r  r^  resry  r
  r  r~  w  s   

z$_PrintableStructure.__getattribute__c                    s(   t |tr	| }tt| || d S r  )rg  r  ro  r}  rs  __setattr__)r  r^  r  r  r
  r  r    s   
z_PrintableStructure.__setattr__)	r  r  r	  __doc__rw  r  r~  r  __classcell__r
  r
  r  r  rs  V  s    rs  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_tr^  r+   idserialfirmwareVersionNr  r  r	  c_charrf  r
  r
  r
  r  r        



r  c                   @      e Zd ZdefgZdS )c_nvmlC2cModeInfo_v1_tisC2cEnabledNr  r  r	  c_uintrf  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_trf  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,   currentvoltagepowerN)r  r  r	  r  r  rf  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_trf  r
  r
  r
  r  r        r  c                   @   r  )c_nvmlUnitFanSpeeds_tfansr!   countN)r  r  r	  r  r  rf  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_SIZErf  rw  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  	reserved0	reserved1	reserved2	reserved3r  r  r  r  r  r  r  r  N)r  r  r	  r  %NVML_DEVICE_PCI_BUS_ID_BUFFER_V2_SIZEr  rf  rw  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_tbusIdLegacyr  r  r  r  r  r  r  r  r  N)	r  r  r	  r  r  r  r  rf  rw  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_SIZErf  r
  r
  r
  r  r         
r  iT  c                   @   r  )c_nvmlExcludedDeviceInfo_tpciuuidN)r  r  r	  r  r  NVML_DEVICE_UUID_BUFFER_SIZErf  r
  r
  r
  r  r    r  r  c                   @   r  )nvmlNvLinkUtilizationControl_tunits	pktfilterN)r  r  r	  "_nvmlNvLinkUtilizationCountUnits_t%_nvmlNvLinkUtilizationCountPktTypes_trf  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usedrt  %d BNr  r  r	  c_ulonglongrf  rw  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  rt  r  Nr  r  r	  r  r  rf  rw  r
  r
  r
  r  r        r  i(  c                   @   r  )c_nvmlBAR1Memory_t	bar1Totalbar1Freebar1Usedrt  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_tclkApiDomain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_tbGlobalStatusclkMonListSize
clkMonListN)r  r  r	  r  r  MAX_CLK_DOMAINSrf  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  rf  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  rf  rw  r
  r
  r
  r  r  c  s    
r  i  c                   @   r  )c_nvmlBridgeChipInfo_trL  	fwVersionN)r  r  r	  _nvmlBridgeChipType_tr  rf  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_tbridgeCountbridgeChipInfor   N)r  r  r	  r  r  rf  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_tl1Cachel2CachedeviceMemoryregisterFileNr  r  r	  r  rf  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_tgpumemoryrt  z%d %%N)r  r  r	  r  rf  rw  r
  r
  r
  r  r    s
    r  c                   @   r  )c_nvmlHwbcEntry_thwbcIdr  r   N)r  r  r	  r  r  rf  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_tdValuiValulValullValsllValsiValusValN)r  r  r	  c_doubler  c_ulongr  
c_longlongc_intc_ushortrf  r
  r
  r
  r  r	        r	  c                   @   r  )c_nvmlSample_t	timeStampsampleValueN)r  r  r	  r  r	  rf  r
  r
  r
  r  r    r  r  c                   @   r  )c_nvmlViolationTime_treferenceTime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	timestamplatencyUsec	valueType
nvmlReturnr  N)	r  r  r	  c_uint32c_int64_nvmlValueType_t_nvmlReturn_tr	  rf  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  bwModestotalBwModesc                       t t| jtd d S N)r  )r}  r(  rb  nvmlNvlinkSupportedBwModes_v1r  r  r
  r  rb       z*c_nvmlNvlinkSupportedBwModes_v1_t.__init__)	r  r  r	  r  c_uint8$NVML_NVLINK_TOTAL_SUPPORTED_BW_MODESrf  rb  r  r
  r
  r  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  bIsBestbwModec                    r+  r,  )r}  r2  rb  nvmlNvlinkGetBwMode_v1r  r  r
  r  rb    r.  z#c_nvmlNvlinkGetBwMode_v1_t.__init__r  r  r	  r  r/  rf  rb  r  r
  r
  r  r  r2        r2  c                       r1  )c_nvmlNvlinkSetBwMode_v1_tr  bSetBestr4  c                    r+  r,  )r}  r8  rb  nvmlNvlinkSetBwMode_v1r  r  r
  r  rb    r.  z#c_nvmlNvlinkSetBwMode_v1_t.__init__r6  r
  r
  r  r  r8    r7  r8  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  rf  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  NrA  r
  r
  r
  r  rC    s    
rC  i   c                   @   r  )c_nvmlVgpuTypeBar1Info_v1_tr  bar1SizeNr  r
  r
  r
  r  rD    r  rD  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	  rf  r
  r
  r
  r  rF        rF  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  rG  rH  rI  rJ  rK  jpgUtilofaUtilN)r  r  r	  r  rL  r	  rf  r
  r
  r
  r  rN        rN  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  rN  rf  r
  r
  r
  r  rR        
rR  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_trG  r  processNamer  rH  rI  rJ  rK  N)	r  r  r	  rL  r  r  NVML_VGPU_NAME_BUFFER_SIZEr  rf  r
  r
  r
  r  rX  (  s    
rX  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_trY  r  rG  r  rH  rI  rJ  rK  rO  rP  N)	r  r  r	  r  rZ  r  rL  r  rf  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  vgpuProcessCountrU  vgpuProcUtilArrayN)r  r  r	  r  r  r  r[  rf  r
  r
  r
  r  r]  B  rB  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$  c_uint16r/  rf  r
  r
  r
  r  rc  T  r  rc  c                   @   "   e Zd ZdefdefdefgZdS )c_nvmlVgpuLicenseInfo_t
isLicensedlicenseExpirycurrentStateN)r  r  r	  r/  rc  r  rf  r
  r
  r
  r  rn  f  
    rn  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  rG  	codecTypehResolutionvResolution
averageFpsencodeLatencyNr  r  r	  r  rL  rf  r
  r
  r
  r  rs  m  rQ  rs  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  rH  rI  rJ  rK  Nr  r
  r
  r
  r  r{  y  rM  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  rH  rI  rJ  rK  rO  rP  Nr  r  r	  r  r  rf  r
  r
  r
  r  r|    rQ  r|  c                   @   r\  )#c_nvmlProcessesUtilizationInfo_v1_tr  processSamplesCountrU  procUtilArrayN)r  r  r	  r  r  r  r|  rf  r
  r
  r
  r  r~    rB  r~  c                   @   rb  )	c_nvmlGridLicenseExpiry_trd  re  rf  rg  rh  ri  rj  Nrk  r
  r
  r
  r  r    r  r  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featureEnabledrp  N)	r  r  r	  _nvmlGridLicenseFeatureCode_tr  r  NVML_GRID_LICENSE_BUFFER_SIZEr  rf  r
  r
  r
  r  r    s    

r  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  r  #NVML_GRID_LICENSE_FEATURE_MAX_COUNTrf  r
  r
  r
  r  r    
    
r  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_tr  r  r  r  r  Nr  r  r	  r  r  r  r  rf  r
  r
  r
  r  r    s    

r  c                   @   r  )!c_nvmlGridLicensableFeatures_v3_tr  r  r  N)r  r  r	  r  r  r  r  rf  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_nvmlGridLicensableFeature_v2_tr  r  r  r  Nr  r
  r
  r
  r  r    s    

r  c                   @   r  )!c_nvmlGridLicensableFeatures_v2_tr  r  r  N)r  r  r	  r  r  r  r  rf  r
  r
  r
  r  r    r  r  c                   @   r  )c_nvmlGridLicensableFeature_tr  r  r  Nr  r
  r
  r
  r  r    r  r  c                   @   r  )c_nvmlGridLicensableFeatures_tr  r  r  N)r  r  r	  r  r  r  r  rf  r
  r
  r
  r  r    r  r  c                   @   r  )c_nvmlMarginTemperature_v1_tr  marginTemperatureN)r  r  r	  r  r  rf  r
  r
  r
  r  r    r  r  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  	eventType	eventDatar  r  r  N)r  r  r	  c_nvmlDevice_tr  r  rf  rw  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_tgpuUtilizationmemoryUtilizationmaxMemoryUsagetime	startTime	isRunningr  r
   Nr  r
  r
  r
  r  r  L  s    
r  c                   @   r  )c_nvmlVgpuVersion_t
minVersion
maxVersionNr  r
  r
  r
  r  r  W  r  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d fdefd	efd
efdee fg
ZdS )c_nvmlVgpuMetadata_tr  revisionguestInfoStateguestDriverVersionhostDriverVersionr  r   vgpuVirtualizationCapsguestVgpuVersionopaqueDataSize
opaqueDataN)	r  r  r	  r  _nvmlVgpuGuestInfoState_tr  r  #NVML_VGPU_METADATA_OPAQUE_DATA_SIZErf  r
  r
  r
  r  r  \  s    



r  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  r  r  pgpuVirtualizationCapsr  r
   hostSupportedVgpuRanger  r  N)	r  r  r	  r  r  r  r  (NVML_VGPU_PGPU_METADATA_OPAQUE_DATA_SIZErf  r
  r
  r
  r  r  i  s    


r  c                   @   r  )c_nvmlVgpuPgpuCompatibility_tvgpuVmCompatibilitycompatibilityLimitCodeN)r  r  r	  _nvmlVgpuVmCompatibility_t%_nvmlVgpuPgpuCompatibilityLimitCode_trf  r
  r
  r
  r  r  t  r  r  c                   @   r  )c_nvmlVgpuSchedDataWithARR_t	avgFactor	timesliceNr  r
  r
  r
  r  r    r  r  c                   @   r  )c_nvmlVgpuSchedData_tr  Nr  r
  r
  r
  r  r    r  r  c                   @   r  )c_nvmlVgpuSchedulerParams_tvgpuSchedDataWithARRvgpuSchedDataN)r  r  r	  r  r  rf  r
  r
  r
  r  r    r  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_nvmlVgpuSchedulerLogEntry_tr   timeRunTotaltimeRunswRunlistIdtargetTimeSlicecumulativePreemptionTimeNr}  r
  r
  r
  r  r    rM  r  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_tengineIdschedulerPolicyarrModeschedulerParamsentriesCount
logEntriesN)r  r  r	  r  r  r  !NVML_SCHEDULER_SW_MAX_LOG_ENTRIESrf  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_nvmlVgpuSchedulerGetState_tr  r  r  N)r  r  r	  r  r  rf  r
  r
  r
  r  r    rr  r  c                   @   r  )c_nvmlVgpuSchedSetDataWithARR_tr  	frequencyNr  r
  r
  r
  r  r    r  r  c                   @   r  )c_nvmlVgpuSchedSetData_tr  Nr  r
  r
  r
  r  r    r  r  c                   @   r  )c_nvmlVgpuSchedulerSetParams_tr  r  N)r  r  r	  r  r  rf  r
  r
  r
  r  r    r  r  c                   @   r  )c_nvmlVgpuSchedulerSetState_tr  enableARRModer  N)r  r  r	  r  r  rf  r
  r
  r
  r  r    rr  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_tsupportedSchedulersmaxTimesliceminTimesliceisArrModeSupportedmaxFrequencyForARRminFrequencyForARRmaxAvgFactorForARRminAvgFactorForARRN)r  r  r	  r  *NVML_SUPPORTED_VGPU_SCHEDULER_POLICY_COUNTrf  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_t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_trt  r  rG  displayOrdinalsessionTypesessionFlagshMaxResolutionvMaxResolutionrv  rw  r  r  Nrz  r
  r
  r
  r  r    s    r  c                   @   r  )c_nvmlGpuInstancePlacement_tstartra  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  r^  c                    r+  r,  )r}  r  rb  nvmlGpuInstanceProfileInfo_v2r  r  r
  r  rb  %  r.  z*c_nvmlGpuInstanceProfileInfo_v2_t.__init__)
r  r  r	  r  r  r  NVML_DEVICE_NAME_V2_BUFFER_SIZErf  rb  r  r
  r
  r  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  rf  r
  r
  r
  r  r  (      r  c                   @   r  )struct_c_nvmlGpuInstance_tNr  r
  r
  r
  r  r  /  r  r  c                   @   r  ) c_nvmlComputeInstancePlacement_tr  ra  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  r^  c                    r+  r,  )r}  r  rb  !nvmlComputeInstanceProfileInfo_v2r  r  r
  r  rb  a  r.  z.c_nvmlComputeInstanceProfileInfo_v2_t.__init__)	r  r  r	  r  r  r   rf  rb  r  r
  r
  r  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  rf  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_t
bIsPresentr   
percentageincThresholddecThresholdNr  r
  r
  r
  r  r  q  s    r  c                   @   r  )c_nvmlGpuDynamicPstatesInfo_tflagsutilizationN)r  r  r	  r  r  NVML_MAX_GPU_UTILIZATIONSrf  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
controllerdefaultMinTempdefaultMaxTempcurrentTemptargetN)r  r  r	  r  rf  r
  r
  r
  r  r    r  r  c                   @   r  )c_nvmlGpuThermalSettings_tr  sensorN)r  r  r	  r  r   NVML_MAX_THERMAL_SENSORS_PER_GPUrf  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_trf  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)  r_  byrefrW  r*  r+  )handlec_coolerInfofnrV  r
  r
  r  r.    s   r.  c                   @   r  )struct_c_nvmlComputeInstance_tNr  r
  r
  r
  r  r4    r  r4  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  gpuInstanceSliceCountcomputeInstanceSliceCountr  Nr  r
  r
  r
  r  r5    r  r5  c                   @   r  ) c_nvmlRowRemapperHistogramValuesmaxhighpartiallownoneNr  r
  r
  r
  r  r8    r  r8  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@  rA  multiGpuModec                    r+  r,  )r}  rB  rb   nvmlSystemConfComputeSettings_v1r  r  r
  r  rb    r.  z-c_nvmlSystemConfComputeSettings_v1_t.__init__r  r  r	  r  rf  rb  r  r
  r
  r  r  rB    s    rB  c                   @   r  )c_nvmlConfComputeSystemCaps_tcpuCapsgpusCapsNr  r
  r
  r
  r  rF    r  rF  c                   @   r  )c_nvmlConfComputeMemSizeInfo_tprotectedMemSizeKibunprotectedMemSizeKibNr  r
  r
  r
  r  rI    r  rI  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_tcertChainSizeattestationCertChainSize	certChainattestationCertChainN)r  r  r	  r  r/  NVML_GPU_CERT_CHAIN_SIZE$NVML_GPU_ATTESTATION_CERT_CHAIN_SIZErf  r
  r
  r
  r  rL   	  s    

rL  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_tisCecAttestationReportPresentattestationReportSizececAttestationReportSizenonceattestationReportcecAttestationReportN)	r  r  r	  r  r/  NVML_CC_GPU_CEC_NONCE_SIZE#NVML_CC_GPU_ATTESTATION_REPORT_SIZE'NVML_CC_GPU_CEC_ATTESTATION_REPORT_SIZErf  r
  r
  r
  r  rS  	  s    


rS  c                   @   r  ).c_nvmlConfComputeSetKeyRotationThresholdInfo_tr  maxAttackerAdvantageNr  r  r	  r  r  rf  r
  r
  r
  r  r]  	  r  r]  c                   @   r  ).c_nvmlConfComputeGetKeyRotationThresholdInfo_tr  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
  )rg  r  ro  )r;  argr
  r
  r  r=  *	  s   " z4convertStrBytes.<locals>.wrapper.<locals>.<listcomp>)rg  rh  r  ri  )argskwargsr  funcr
  r  wrapper'	  s   

z convertStrBytes.<locals>.wrapperr  )r   rE  rn  rf  rg  r
  re  r  convertStrBytes	  s
   	
ri  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 _v2)NVMLError_FunctionNotFoundr  r  )rc  rd  re  r
  r  rg  :	  s   z'throwOnVersionMismatch.<locals>.wrapperr   rh  r
  re  r  throwOnVersionMismatch9	  s   rl  c                 C   s:   t   td}|| }t| t  td7 at  d S )NnvmlInitWithFlagsr   )_LoadNvmlLibraryr_  rW  rY  rZ  _nvmlLib_refcountr\  )r  r3  rV  r
  r
  r  rm  F	  s   rm  c                   C   s   t d d S re  )rm  r
  r
  r
  r  nvmlInitW	  s   rp  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   winWINDIRz
C:/WindowszSystem32/nvml.dllProgramFileszC:/Program Filesz!NVIDIA Corporation/NVSMI/nvml.dllzlibnvidia-ml.so.1)r[  rY  rZ  rE  platformCDLLospathrz  getenvOSErrorrW  r-  r\  )oser
  r
  r  rn  [	  s4   &
rn  c                  C   s:   t d} |  }t| t  dtk rtd8 at  d S )NnvmlShutdownr   r   )r_  rW  rY  rZ  ro  r\  )r3  rV  r
  r
  r  r{  }	  s   r{  c                 C   s   t d}t|_|| }|S )Nr  )r_  c_char_prestype)r{  r3  rV  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_SIZEr_  r  rW  r  	c_versionr3  rV  r
  r
  r  r  	  
   r  c                  C   (   t  } td}|t| }t| | jS )NnvmlSystemGetCudaDriverVersionr  r_  r0  rW  r  c_cuda_versionr3  rV  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  r_  r  rW  r  )r  c_namer3  rV  r
  r
  r  r  	  
   r  c                  C   r~  )NnvmlSystemGetDriverVersion)r  r  r_  r  rW  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  r_  r0  rU  r(  r  r  r  rW  )c_counthicsr3  rV  	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  r_  r0  r  r  rW  )c_branchInfor3  rV  r
  r
  r  r  	  s   r  c                  C   r  )NnvmlUnitGetCountr  r_  r0  rW  r  r  r3  rV  r
  r
  r  r  	  r  r  c                 C   0   t | }t }td}||t|}t| |S )NnvmlUnitGetHandleByIndex)r  c_nvmlUnit_tr_  r0  rW  )r)  c_indexunitr3  rV  r
  r
  r  r  	     r  c                 C   (   t  }td}|| t|}t| |S )NnvmlUnitGetUnitInfo)r  r_  r0  rW  r  c_infor3  rV  r
  r
  r  r  	  
   r  c                 C   r  )NnvmlUnitGetLedState)r  r_  r0  rW  )r  c_stater3  rV  r
  r
  r  r  	  r  r  c                 C   r  )NnvmlUnitGetPsuInfo)r  r_  r0  rW  r  r
  r
  r  r  	  r  r  c                 C   s0   t  }td}|| t |t|}t| |jS )NnvmlUnitGetTemperaturer  )r  rL  c_tempr3  rV  r
  r
  r  r  
  
   r  c                 C   r  )NnvmlUnitGetFanSpeedInfo)r  r_  r0  rW  )r  c_speedsr3  rV  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  r_  r0  r(  rU  rW  r  )r  r  r3  rV  r
  r
  r  nvmlUnitGetDeviceCount
  s   r  c                 C   s@   t t| }t|j }| }td}|| t||}t| |S )Nr  )r  r  r  r  r_  r0  rW  )r  r  device_array	c_devicesr3  rV  r
  r
  r  r  
  s   
r  c                  C   r  )NnvmlDeviceGetCount_v2r  r  r
  r
  r  nvmlDeviceGetCount%
  r  r  c                 C   r  )NnvmlDeviceGetHandleByIndex_v2r  r  r_  r0  rW  )r)  r  r  r3  rV  r
  r
  r  nvmlDeviceGetHandleByIndex,
  r  r  c                 C   r  )NnvmlDeviceGetHandleBySerialr|  r  r_  r0  rW  )r  c_serialr  r3  rV  r
  r
  r  r  4
     r  c                 C   r  )NnvmlDeviceGetHandleByUUIDr  )r  c_uuidr  r3  rV  r
  r
  r  r  =
  r  r  c                 C   r  )N nvmlDeviceGetHandleByPciBusId_v2r  )pciBusIdc_busIdr  r3  rV  r
  r
  r  nvmlDeviceGetHandleByPciBusIdF
  r  r  c                 C   .   t t}td}|| |tt}t| |jS )NnvmlDeviceGetName)r  r   r_  r  rW  r  )r1  r  r3  rV  r
  r
  r  r  O
  
   r  c                   @   r  )c_nvmlDevicePerfModes_v1_tr  r  Nr  r  r	  r  r  NVML_PERF_MODES_BUFFER_SIZErf  r
  r
  r
  r  r  W
  r  r  i c                 C   0   t  }t|_td}|| t|}t| |jS )NnvmlDeviceGetPerformanceModes)r  nvmlDevicePerfModes_v1r  r_  r0  rW  r  )r1  	perfModesr3  rV  r
  r
  r  r  _
     r  c                   @   r  )"c_nvmlDeviceCurrentClockFreqs_v1_tr  r  Nr  r
  r
  r
  r  r  h
  r  r  c                 C   r  )NnvmlDeviceGetCurrentClockFreqs)r  nvmlDeviceCurrentClockFreqs_v1r  r_  r0  rW  r  )r1  currentClockFreqsr3  rV  r
  r
  r  r  p
  r  r  c                 C   *   t  }td}|| t|}t| |jS )NnvmlDeviceGetBoardIdr  )r1  c_idr3  rV  r
  r
  r  r  y
  
   r  c                 C   r  )NnvmlDeviceGetMultiGpuBoardr  )r1  
c_multiGpur3  rV  r
  r
  r  r  
  r  r  c                 C   r  )NnvmlDeviceGetBrand)_nvmlBrandType_tr_  r0  rW  r  )r1  c_typer3  rV  r
  r
  r  r  
  r  r  c                 C   r  )NnvmlDeviceGetC2cModeInfoV)r  r_  r0  rW  r1  r  r3  rV  r
  r
  r  nvmlDeviceGetC2cModeInfoV1
  r  r  c                 C      t | S r  )r  r1  r
  r
  r  r  
     r  c                 C   r  )NnvmlDeviceGetBoardPartNumber)r  #NVML_DEVICE_PART_NUMBER_BUFFER_SIZEr_  r  rW  r  )r1  c_part_numberr3  rV  r
  r
  r  r  
  r  r  c                 C   r  )NnvmlDeviceGetSerial)r  NVML_DEVICE_SERIAL_BUFFER_SIZEr_  r  rW  r  )r1  r  r3  rV  r
  r
  r  r  
  r  r  c                 C   sD   t |tu}|r
|nt|}td}|| |}|r|S t| |jS )NnvmlDeviceGetModuleId)rL  r  r0  r_  rW  r  )r1  moduleIdisReferencemoduleIdRefr3  rV  r
  r
  r  r  
  s   
r  c                 C   8   t | }| }td}|| |t|t|}t| |S )NnvmlDeviceGetMemoryAffinityr  r_  r0  _nvmlAffinityScope_trW  )r1  nodeSetSizescopeaffinity_array
c_affinityr3  rV  r
  r
  r  r  
     r  c                 C   r  )N#nvmlDeviceGetCpuAffinityWithinScoper  )r1  
cpuSetSizer  r  r  r3  rV  r
  r
  r  r  
  r  r  c                 C   s2   t | }| }td}|| |t|}t| |S )NnvmlDeviceGetCpuAffinity)r  r_  r0  rW  )r1  r  r  r  r3  rV  r
  r
  r  r  
     r  c                 C      t d}|| }t| d S )NnvmlDeviceSetCpuAffinityr_  rW  r1  r3  rV  r
  r
  r  r  
     r  c                 C   r  )NnvmlDeviceClearCpuAffinityr  r  r
  r
  r  r  
  r  r  c                 C   *   t d}t }|| t|}t| |jS )NnvmlDeviceGetNumaNodeIdr_  r  r0  rW  r  )r1  r3  noderV  r
  r
  r  r  
  
   r  c                 C   r  )NnvmlDeviceGetMinorNumberr  )r1  c_minor_numberr3  rV  r
  r
  r  r  
  r  r  c                 C   r  )NnvmlDeviceGetUUID)r  NVML_DEVICE_UUID_V2_BUFFER_SIZEr_  r  rW  r  )r1  r  r3  rV  r
  r
  r  r  
  r  r  c                 C   s4   t t}td}|| t||tt}t| |jS )NnvmlDeviceGetInforomVersion)r  'NVML_DEVICE_INFOROM_VERSION_BUFFER_SIZEr_  _nvmlInforomObject_tr  rW  r  )r1  infoRomObjectr  r3  rV  r
  r
  r  r  
  s   
r  c                 C   r  )N nvmlDeviceGetInforomImageVersion)r  r  r_  r  rW  r  r1  r  r3  rV  r
  r
  r  r  
  r  r  c                 C   r  )N)nvmlDeviceGetInforomConfigurationChecksumr  )r1  
c_checksumr3  rV  r
  r
  r  r	     r  r	  c                 C   r  )NnvmlDeviceValidateInforomr  r  r
  r
  r  r    r  r  c                 C   s<   t  }t }td}|| t|t|}t| |j|jgS )NnvmlDeviceGetLastBBXFlushTime)r  r  r_  r0  rW  r  )r1  c_timestampc_durationUsr3  rV  r
  r
  r  r       r  c                 C   r  )NnvmlDeviceGetDisplayMode_nvmlEnableState_tr_  r0  rW  r  r1  c_moder3  rV  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceGetDisplayActiver  r  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceGetPersistenceModer  )r1  r  r3  rV  r
  r
  r  r  %  r  r  c                 C      t d}|| |}t| d S )NnvmlDeviceGetPciInfoExtr  r  r
  r
  r  r  ,     
r  c                 C   r  )NnvmlDeviceGetPciInfo_v3r  r_  r0  rW  r  r
  r
  r  r  2  r  r  c                 C   r  r  )r  r  r
  r
  r  nvmlDeviceGetPciInfo9  r  r  c                 C   0   t  }td}|| t|t|}t| |jS )NnvmlDeviceGetClockInfor  r_  _nvmlClockType_tr0  rW  r  r1  rL  c_clockr3  rV  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  r_  r   _nvmlClockId_tr0  rW  r  )r1  rL  r  r"  r3  rV  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  r_  r0  rU  r(  r  rW  rangerx  r  )r1  r  r3  rV  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+  )	r1  memoryClockMHzr  r3  rV  r-  r.  r/  r0  r
  r
  r  r1    s   
r1  c                 C   r  )NnvmlDeviceGetFanSpeedr  )r1  c_speedr3  rV  r
  r
  r  r3    r  r3  c                 C   ,   t  }td}|| |t|}t| |jS )NnvmlDeviceGetFanSpeed_v2r  r1  fanr4  r3  rV  r
  r
  r  r6    
   r6  c                   @   r  )c_nvmlFanSpeedInfo_tr  r8  r  Nr  r
  r
  r
  r  r:    rr  r:  c                 C   s6   t  }d|_t|_td}|| t|}t| |jS )Nr   nvmlDeviceGetFanSpeedRPM)r:  r8  nvmlFanSpeedInfo_v1r  r_  r0  rW  r  )r1  
c_fanSpeedr3  rV  r
  r
  r  r;    s   r;  c                 C   r5  )NnvmlDeviceGetTargetFanSpeedr  r7  r
  r
  r  r>    r9  r>  c                 C   r  )NnvmlDeviceGetNumFansr  )r  	c_numFansr3  rV  r
  r
  r  r?    r  r?  c                 C      t d}|| |}t| tS )NnvmlDeviceSetDefaultFanSpeed_v2r_  rW  rU  )r1  r)  r3  rV  r
  r
  r  rB    r  rB  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rL  r  r0  r_  rW  rU  r  )r1  minSpeedmaxSpeedr  minSpeedRefmaxSpeedRefr3  rV  r
  r
  r  rD       rD  c                 C   sF   t |tu}|r
|nt|}td}|| ||}t| |r tS |jS )N nvmlDeviceGetFanControlPolicy_v2rE  )r1  r8  fanControlPolicyr  fanControlPolicyRefr3  rV  r
  r
  r  rK    s   rK  c                 C   s$   t d}|| |t|}t| tS )NnvmlDeviceSetFanControlPolicy)r_  _nvmlFanControlPolicy_trW  rU  )r1  r8  rL  r3  rV  r
  r
  r  rN       rN  c                   @   rm  )c_nvmlTemperature_v1_tr  
sensorTypetemperatureN)r  r  r	  r  _nvmlTemperatureSensors_tr  rf  r
  r
  r
  r  rQ    rr  rQ  c                 C   s:   t  }t|_t||_td}|| t|}t| |jS )NnvmlDeviceGetTemperatureV)	rQ  nvmlTemperature_v1r  rT  rR  r_  r0  rW  rS  r1  r&  r  r3  rV  r
  r
  r  nvmlDeviceGetTemperatureV1  s   
rX  c                 C   s   |t kr	t| |S ttr  )rV  rX  r  $NVML_ERROR_ARGUMENT_VERSION_MISMATCH)r1  r&  r  r
  r
  r  rU    s   
rU  c                 C   r  )NnvmlDeviceGetTemperature)r  r_  rT  r0  rW  r  rW  r
  r
  r  rZ    r  rZ  c                 C   r  )N!nvmlDeviceGetTemperatureThreshold)r  r_  _nvmlTemperatureThresholds_tr0  rW  r  )r1  	thresholdr  r3  rV  r
  r
  r  r[    r  r[  c                 C   s4   t  }||_td}|| t|t|}t| d S )N!nvmlDeviceSetTemperatureThreshold)r  r  r_  r\  r0  rW  )r1  r]  tempr  r3  rV  r
  r
  r  r^    s   r^  c                 C   r  )NnvmlDeviceGetMarginTemperature)r  nvmlMarginTemperature_v1r  r_  r0  rW  r  )r1  c_marginTempInfor3  rV  r
  r
  r  r`    s   r`  c                 C   r  )NnvmlDeviceGetPowerState_nvmlPstates_tr_  r0  rW  r  r1  c_pstater3  rV  r
  r
  r  rc  #  r  rc  c                 C   r  )NnvmlDeviceGetPerformanceStaterd  rf  r
  r
  r  rh  *  r  rh  c                 C   r  )N nvmlDeviceGetPowerManagementModer  )r1  
c_pcapModer3  rV  r
  r
  r  ri  1  r  ri  c                 C   r  )N!nvmlDeviceGetPowerManagementLimitr  r1  c_limitr3  rV  r
  r
  r  rk  8  r  rk  c                 C   <   t  }t  }td}|| t|t|}t| |j|jgS )N,nvmlDeviceGetPowerManagementLimitConstraintsr  )r1  
c_minLimit
c_maxLimitr3  rV  r
  r
  r  ro  @  r  ro  c                 C   r  )N(nvmlDeviceGetPowerManagementDefaultLimitr  rl  r
  r
  r  rr  I  r  rr  c                 C   r  )NnvmlDeviceGetEnforcedPowerLimitr  rl  r
  r
  r  rs  R  r  rs  c                 C   r  )NnvmlDeviceGetPowerUsager  )r1  c_wattsr3  rV  r
  r
  r  rt  Y  r  rt  c                 C   r  )N#nvmlDeviceGetTotalEnergyConsumption)c_uint64r_  r0  rW  r  )r1  c_millijoulesr3  rV  r
  r
  r  rv  `  r  rv  c                 C   rn  )NnvmlDeviceGetGpuOperationMode)_nvmlGpuOperationMode_tr_  r0  rW  r  r1  c_currStatec_pendingStater3  rV  r
  r
  r  ry  h  r  ry  c                 C      t | d S re  ry  r  r
  r
  r  $nvmlDeviceGetCurrentGpuOperationModeq  r   r  c                 C   r~  Nr   r  r  r
  r
  r  $nvmlDeviceGetPendingGpuOperationModeu  r   r  c                 C   sB   |s
t  }td}n
t }||_td}|| t|}t| |S )NnvmlDeviceGetMemoryInfonvmlDeviceGetMemoryInfo_v2)r  r_  r  r  r0  rW  )r1  r  c_memoryr3  rV  r
  r
  r  r  x  s   
r  c                 C   r  )NnvmlDeviceGetBAR1MemoryInfo)r  r_  r0  rW  )r1  c_bar1_memoryr3  rV  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceGetComputeMode)_nvmlComputeMode_tr_  r0  rW  r  r  r
  r
  r  r    r  r  c                 C   s<   t  }t  }td}|| t|t|}t| |j|jfS )N"nvmlDeviceGetCudaComputeCapabilityr  )r1  c_majorc_minorr3  rV  r
  r
  r  r    r  r  c                 C   rn  )NnvmlDeviceGetEccModer  r{  r
  r
  r  r    r  r  c                 C   r~  re  r  r  r
  r
  r  nvmlDeviceGetCurrentEccMode  r   r  c                 C   r~  r  r  r  r
  r
  r  nvmlDeviceGetPendingEccMode  r   r  c                 C   s,   t  }td}|| t|}t| |jgS )NnvmlDeviceGetDefaultEccModer  )r1  c_defaultStater3  rV  r
  r
  r  r    s
   r  c                 C   r&  )NnvmlDeviceGetTotalEccErrors)r  r_  _nvmlMemoryErrorType_t_nvmlEccCounterType_tr0  rW  r  )r1  	errorTypecounterTyper  r3  rV  r
  r
  r  r    s   
r  c                 C   s4   t  }td}|| t|t|t|}t| |S )NnvmlDeviceGetDetailedEccErrors)r  r_  r  r  r0  rW  )r1  r  r  c_countsr3  rV  r
  r
  r  r    s   
r  c                 C   s<   t  }td}|| t|t|t|t|}t| |jS )NnvmlDeviceGetMemoryErrorCounter)r  r_  r  r  _nvmlMemoryLocation_tr0  rW  r  )r1  r  r  locationTyper  r3  rV  r
  r
  r  r    s   r  c                 C   r  )NnvmlDeviceGetUtilizationRates)r  r_  r0  rW  )r1  c_utilr3  rV  r
  r
  r  r    r  r  c                 C   rn  )NnvmlDeviceGetEncoderUtilizationr  r1  r  c_samplingPeriodr3  rV  r
  r
  r  r    r  r  c                 C   rn  )NnvmlDeviceGetDecoderUtilizationr  r  r
  r
  r  r    r  r  c                 C   rn  )NnvmlDeviceGetJpgUtilizationr  r  r
  r
  r  r    r  r  c                 C   rn  )NnvmlDeviceGetOfaUtilizationr  r  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceGetPcieReplayCounterr  )r1  c_replayr3  rV  r
  r
  r  r    r  r  c                 C   rn  )NnvmlDeviceGetDriverModel)_nvmlDriverModel_tr_  r0  rW  r  )r1  c_currModelc_pendingModelr3  rV  r
  r
  r  r    r  r  c                 C   r~  re  r  r  r
  r
  r  nvmlDeviceGetCurrentDriverModel  r   r  c                 C   r~  r  r  r  r
  r
  r  nvmlDeviceGetPendingDriverModel	  r   r  c                 C   r  )NnvmlDeviceGetVbiosVersion)r  %NVML_DEVICE_VBIOS_VERSION_BUFFER_SIZEr_  r  rW  r  r  r
  r
  r  r    r  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  r_  r0  rU  r(  r  r  rW  r,  rm  r  "NVML_VALUE_NOT_AVAILABLE_ulonglongrx  r  	r1  r  r3  rV  
proc_arrayc_procsr/  r0  r  r
  r
  r  r    &   
r  c           	      C   r  )Nr   'nvmlDeviceGetComputeRunningProcesses_v3r   r
   r  r_  r0  rU  r(  r  c_nvmlProcessInfo_v3_trW  r,  rm  r  r  rx  r  r  r
  r
  r  r  5  &   
r  c                 C   r  r  )r  r  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   r  r  )r  r  r
  r
  r  %nvmlDeviceGetGraphicsRunningProcesses  r  r  c                 C   r  r  )*nvmlDeviceGetMPSComputeRunningProcesses_v3r  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  r_  r0  rU  r(  r  r  castr  r  rW  r,  r  r  r  r  rx  r  )
r1  r  r  c_processDetailListr3  rV  r  r/  r0  r  r
  r
  r  r    s,   

r  c                 C   rn  )N%nvmlDeviceGetAutoBoostedClocksEnabledr  )r1  c_isEnabledc_defaultIsEnabledr3  rV  r
  r
  r  r  
  r  r  c                 C   "   t d}|| t|}t| d S )NnvmlUnitSetLedState)r_  r  rW  )r  r  r3  rV  r
  r
  r  r       r  c                 C   r  )NnvmlDeviceSetPersistenceModer_  r  rW  r1  r  r3  rV  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceSetComputeMode)r_  r  rW  r  r
  r
  r  r     r  r  c                 C   r  )NnvmlDeviceSetEccModer  r  r
  r
  r  r  &  r  r  c                 C   r  )NnvmlDeviceClearEccErrorCounts)r_  r  rW  )r1  r  r3  rV  r
  r
  r  r  ,  r  r  c                 C   r  )NnvmlDeviceSetDriverModel)r_  r  rW  )r1  rp  r3  rV  r
  r
  r  r  2  r  r  c                 C   r  )N%nvmlDeviceSetAutoBoostedClocksEnabledr  )r1  enabledr3  rV  r
  r
  r  r  8  r  r  c                 C   (   t d}|| t|t|}t| d S )N,nvmlDeviceSetDefaultAutoBoostedClocksEnabled)r_  r  r  rW  )r1  r  r  r3  rV  r
  r
  r  r  ?     r  c                 C   (   t d}|| t|t|}t| d S )NnvmlDeviceSetGpuLockedClocksr_  r  rW  )r1  minGpuClockMHzmaxGpuClockMHzr3  rV  r
  r
  r  r  F  r  r  c                 C   r  )NnvmlDeviceResetGpuLockedClocksr  r  r
  r
  r  r  L  r  r  c                 C   r  )NnvmlDeviceSetMemoryLockedClocksr  )r1  minMemClockMHzmaxMemClockMHzr3  rV  r
  r
  r  r  R  r  r  c                 C   r  )N!nvmlDeviceResetMemoryLockedClocksr  r  r
  r
  r  r  X  r  r  c                 C   B   t |tu}|r
|nt|}td}|| |}t| |rtS |S )NnvmlDeviceGetClkMonStatus)rL  r  r0  r_  rW  rU  )r1  c_clkMonInfor  c_clkMonInfoRefr3  rV  r
  r
  r  r  ^  s   
r  c                 C   r  )NnvmlDeviceSetApplicationsClocksr  )r1  r  maxGraphicsClockMHzr3  rV  r
  r
  r  r  g  r  r  c                 C   r  )N!nvmlDeviceResetApplicationsClocksr  r  r
  r
  r  r  n  r  r  c                 C   r  )N!nvmlDeviceSetPowerManagementLimitr  )r1  limitr3  rV  r
  r
  r  r  u  r  r  c                 C   r  )NnvmlDeviceSetGpuOperationMode)r_  rz  rW  r  r
  r
  r  r  |  r  r  c                  C   s&   t d} t }| t|}t| |S )NnvmlEventSetCreate)r_  c_nvmlEventSet_tr0  rW  )r3  eventSetrV  r
  r
  r  r    s
   r  c                 C   s$   t d}|| t||}t| d S )NnvmlDeviceRegisterEvents)r_  r  rW  )r1  
eventTypesr  r3  rV  r
  r
  r  r    rP  r  c                 C   r  )N nvmlDeviceGetSupportedEventTypesr  r_  r0  rW  r  )r1  c_eventTypesr3  rV  r
  r
  r  r    r  r  c                 C   s.   t d}t }|| t|t|}t| |S )NnvmlEventSetWait_v2)r_  r  r0  r  rW  )r  	timeoutmsr3  datarV  r
  r
  r  r    s
   r  c                 C   s
   t | |S r  )r  )r  r  r
  r
  r  nvmlEventSetWait  rd  r  c                 C   r  )NnvmlEventSetFreer  )r  r3  rV  r
  r
  r  r    r  r  c                 C   s0   t d}t }|| |t|}t| |jdkS )NnvmlDeviceOnSameBoardr   r  )handle1handle2r3  onSameBoardrV  r
  r
  r  r    s
   
r  c                 C   r  )N#nvmlDeviceGetCurrPcieLinkGenerationr_  r  r0  rW  r  r1  r3  genrV  r
  r
  r  r    r  r  c                 C   r  )N"nvmlDeviceGetMaxPcieLinkGenerationr   r  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceGetCurrPcieLinkWidthr   r1  r3  widthrV  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceGetMaxPcieLinkWidthr   r  r
  r
  r  r    r  r  c                 C   r  )N%nvmlDeviceGetGpuMaxPcieLinkGenerationr   r  r
  r
  r  r    r  r  c                 C   r  )N+nvmlDeviceGetSupportedClocksThrottleReasonsr  r1  	c_reasonsr3  rV  r
  r
  r  r	    r  r	  c                 C   r  )N(nvmlDeviceGetSupportedClocksEventReasonsr  r
  r
  r
  r  r    r  r  c                 C   r  )N)nvmlDeviceGetCurrentClocksThrottleReasonsr  r
  r
  r
  r  r    r  r  c                 C   r  )N&nvmlDeviceGetCurrentClocksEventReasonsr  r
  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceGetIndexr   )r1  r3  r  rV  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceGetAccountingModer  r  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceSetAccountingModer  r  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceClearAccountingPidsr  r  r
  r
  r  r    r  r  c                 C   s@   t  }td}|| t|t|}t| |jtjkrd |_|S )NnvmlDeviceGetAccountingStats)r  r_  r  r0  rW  r  r  r  )r1  r  statsr3  rV  r
  r
  r  r    s   r  c                 C   sP   t t| }t |j  }td}|| t||}t| ttt|d|j S )NnvmlDeviceGetAccountingPidsr   )	r  !nvmlDeviceGetAccountingBufferSizer  r_  r0  rW  listmapint)r1  r  pidsr3  rV  r
  r
  r  r    s   r  c                 C   .   t  }td}|| t|}t| t|jS )Nr  )r  r_  r0  rW  r  r  )r1  
bufferSizer3  rV  r
  r
  r  r  &  
   
r  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  r_  r0  rU  r(  r  r  r  rW  r  r  r  )r  sourceFilterc_sourcer  r3  rV  
page_arrayc_pagesr
  r
  r  r  -  s   
r  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   )r  )r;  r0  r#  c_timesr
  r  r=  [  s   & z0nvmlDeviceGetRetiredPages_v2.<locals>.<listcomp>)r  r  r_  r0  rU  r(  r  r  r  rW  r,  )r  r   r!  r  r3  rV  r"  times_arrayr
  r&  r  r$  D  s   

r$  c                 C   r  )N&nvmlDeviceGetRetiredPagesPendingStatus)r  r_  r0  rW  r  r  )r  	c_pendingr3  rV  r
  r
  r  r)  ]  r  r)  c                 C   s4   t  }td}|| t|t|}t| t|jS )NnvmlDeviceGetAPIRestriction)r  r_  _nvmlRestrictedAPI_tr0  rW  r  r  )r  apiTypec_permissionr3  rV  r
  r
  r  r+  d  s
   
r+  c                 C   r  )NnvmlDeviceSetAPIRestriction)r_  r,  r  rW  )r1  r-  isRestrictedr3  rV  r
  r
  r  r/  k  r  r/  c                 C   r  )NnvmlDeviceGetBridgeChipInfo)r  r_  r0  rW  )r1  bridgeHierarchyr3  rV  r
  r
  r  r1  q  r  r1  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&  r_  r0  rU  r  r  r  rW  )r  sampling_typer  c_sampling_typec_time_stampc_sample_countc_sample_value_typer3  rV  sampleArray	c_samplesr
  r
  r  r3  x  s   
r3  c                 C   2   t |}t }td}|| |t|}t| |S )NnvmlDeviceGetViolationStatus)_nvmlPerfPolicyType_tr  r_  r0  rW  )r  perfPolicyTypec_perfPolicy_type
c_violTimer3  rV  r
  r
  r  r=    s   r=  c                 C   r  )NnvmlDeviceGetPcieThroughput)r  r_  _nvmlPcieUtilCounter_tr0  rW  r  )r  counterr  r3  rV  r
  r
  r  rB    r  rB  c                 C   sj   t d}td}|| t|d }|tkrt|t|j }| }|| t||}t| t|d|j S )Nr   nvmlSystemGetTopologyGpuSet	r  r_  r0  rU  r  r  r  rW  r  )	cpuNumberr  r3  rV  r  r  r
  r
  r  rE    s   
rE  c                 C   sn   t d}td}|| |t|d }|tkrt|t|j }| }|| |t||}t| t|d|j S )Nr    nvmlDeviceGetTopologyNearestGpusrF  )r  levelr  r3  rV  r  r  r
  r
  r  rH    s   
rH  c                 C   r5  )N#nvmlDeviceGetTopologyCommonAncestor)_nvmlGpuTopologyLevel_tr_  r0  rW  r  )device1device2c_levelr3  rV  r
  r
  r  rJ    r9  rJ  c                 C   s@   t  }t  }td}|| ||t|t|}t| |j|jfS )N%nvmlDeviceGetNvLinkUtilizationCounterr  )r  linkrD  c_rxcounterc_txcounterr3  rV  r
  r
  r  rO    s   rO  c                 C   s"   t d}|| |||}t| d S )N(nvmlDeviceFreezeNvLinkUtilizationCounterr  )r  rP  rD  freezer3  rV  r
  r
  r  rS    r  rS  c                 C   s    t d}|| ||}t| d S )N'nvmlDeviceResetNvLinkUtilizationCounterr  )r  rP  rD  r3  rV  r
  r
  r  rU       rU  c                 C   s(   t d}|| ||t||}t| d S )N%nvmlDeviceSetNvLinkUtilizationControlr_  r0  rW  )r  rP  rD  controlresetr3  rV  r
  r
  r  rW    r  rW  c                 C   ,   t  }td}|| ||t|}t| |S )N%nvmlDeviceGetNvLinkUtilizationControl)r  r_  r0  rW  )r  rP  rD  	c_controlr3  rV  r
  r
  r  r\    
   r\  c                 C   .   t  }td}|| ||t|}t| |jS )NnvmlDeviceGetNvLinkCapabilityr  )r  rP  
capabilityc_capResultr3  rV  r
  r
  r  r`    
   r`  c                 C   r_  )NnvmlDeviceGetNvLinkErrorCounterr  )r  rP  rD  c_resultr3  rV  r
  r
  r  rd    rc  rd  c                 C   r  )N"nvmlDeviceResetNvLinkErrorCountersr  )r  rP  r3  rV  r
  r
  r  rf    r  rf  c                 C   *   t  }td}|| |t|}t| |S )N#nvmlDeviceGetNvLinkRemotePciInfo_v2r  )r  rP  c_pcir3  rV  r
  r
  r   nvmlDeviceGetNvLinkRemotePciInfo  
   rj  c                 C   r5  )N#nvmlDeviceGetNvLinkRemoteDeviceType)_nvmlNvLinkDeviceType_tr_  r0  rW  r  )r1  rP  r  r3  rV  r
  r
  r  rl    r9  rl  c                 C   r5  )NnvmlDeviceGetNvLinkStater  )r  rP  
c_isActiver3  rV  r
  r
  r  rn    r9  rn  c                 C   r5  )NnvmlDeviceGetNvLinkVersionr  )r  rP  r  r3  rV  r
  r
  r  rp    r9  rp  c                 C   s"   t d}|t| |}t| d S )NnvmlDeviceModifyDrainStater_  pointerrW  )pciInfonewStater3  rV  r
  r
  r  rq    r  rq  c                 C   .   t  }td}|t| t|}t| |jS )NnvmlDeviceQueryDrainState)r  r_  rs  r0  rW  r  )rt  
c_newStater3  rV  r
  r
  r  rw    rc  rw  c                 C       t d}|t| }t| d S )NnvmlDeviceRemoveGpurr  rt  r3  rV  r
  r
  r  rz  #  rV  rz  c                 C   ry  )NnvmlDeviceDiscoverGpusrr  r{  r
  r
  r  r|  )  rV  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  lenr_  	enumerater  r  	TypeErrorc_int32r0  rW  r1  fieldIds
values_arrvaluesr3  r0  r  rV  r
  r
  r  r~  /     r~  c              	   C   r}  )NnvmlDeviceClearFieldValuesr  r  r
  r
  r  r  >  r  r  c                 C   r  )NnvmlDeviceGetVirtualizationModer  )r1  c_virtualization_moder3  rV  r
  r
  r  r  M  r  r  c                 C      t d}|| |S )NnvmlDeviceSetVirtualizationModer_  )r1  virtualization_moder3  r
  r
  r  r  T     
r  c                 C   2   t d}t|_td}|| t|}t| |jS )Nr   "nvmlDeviceGetVgpuHeterogeneousMode)r;  VgpuHeterogeneousMode_v1r  r_  r0  rW  r  )r1  c_vgpuHeterogeneousModer3  rV  r
  r
  r  r  X     r  c                 C   s6   t d}t|_||_td}|| t|}t| tS )Nr   "nvmlDeviceSetVgpuHeterogeneousMode)r;  r  r  r  r_  r0  rW  rU  )r1  heterogeneous_moder  r3  rV  r
  r
  r  r  `  s   r  c                 C   r  )Nr   nvmlVgpuInstanceGetPlacementId)r<  VgpuPlacementId_v1r  r_  r0  rW  r=  )rG  c_placementr3  rV  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  r_  r0  rW  rC  VgpuPlacementList_v2r  r  r  r  r>  VgpuPlacementList_v1r  rY  r@  )	r1  
vgpuTypeIdr  r  c_max_instancesr3  rV  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  r_  r0  rW  rC  r  r  r  r  r>  r  r@  )r1  r  r  r  r3  rV  r  r  r
  r
  r  r    s"   

r  c                 C   rv  )NnvmlGetVgpuDriverCapabilities)r  r_  _nvmlVgpuDriverCapability_tr0  rW  r  )ra  rb  r3  rV  r
  r
  r  r    rc  r  c                 C   r  )NnvmlDeviceGetVgpuCapabilities)r  r_  _nvmlDeviceVgpuCapability_tr0  rW  r  )r1  ra  rb  r3  rV  r
  r
  r  r    r  r  c                 C   s$   t d}|| t||}t| tS )NnvmlDeviceSetVgpuCapabilities)r_  r  rW  rU  )r1  ra  r  r3  rV  r
  r
  r  r    rP  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  r_  r0  rU  r(  _nvmlVgpuTypeId_tr  rW  r,  rx  r  r1  c_vgpu_countr3  rV  vgpu_type_ids_arrayc_vgpu_type_idsvgpusr0  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  c_profile_idr3  rV  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  r_  r0  rW  r  )r  c_classc_buffer_sizer3  rV  r
  r
  r  r       r  c                 C   r  )NnvmlVgpuTypeGetNamer  )r  r  r  r3  rV  r
  r
  r  r    r  r  c                 C   s@   t d}t d}td}|| t|t|}t| |j|jfS )Nr   nvmlVgpuTypeGetDeviceIDr  )r  c_device_idc_subsystem_idr3  rV  r
  r
  r  r    s   r  c                 C   r  )Nr   nvmlVgpuTypeGetFramebufferSizer  )r  	c_fb_sizer3  rV  r
  r
  r  r    r  r  c                 C   r  )Nr   nvmlVgpuTypeGetNumDisplayHeadsr  )r  c_num_headsr3  rV  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  c_xdimc_ydimr3  rV  r
  r
  r  r    s   r  c                 C   s2   t t}tt}td}|| ||}t| |jS )NnvmlVgpuTypeGetLicense)r  r  r  r_  rW  r  )r  	c_licenser  r3  rV  r
  r
  r  r    s   r  c                 C   r  )Nr   nvmlVgpuTypeGetFrameRateLimitr  )r  c_frl_configr3  rV  r
  r
  r  r  &  r  r  c                 C   r  )Nr   nvmlVgpuTypeGetGspHeapSizer  )r  
c_gsp_heapr3  rV  r
  r
  r  r  -  r  r  c                 C   r  )Nr   nvmlVgpuTypeGetFbReservationr  )r  c_fb_reservationr3  rV  r
  r
  r  r  4  r  r  c                 C   .   t  }t|_td}|| t|}t| |S )N#nvmlVgpuInstanceGetRuntimeStateSize)r`  VgpuRuntimeState_v1r  r_  r0  rW  )rG  c_runtime_stater3  rV  r
  r
  r  r  ;     r  c                 C   s.   t d}td}|| |t|}t| |jS )Nr   r  r  )r1  r  r  r3  rV  r
  r
  r  r  C  s
   r  c                 C   r  )Nr    nvmlVgpuTypeGetMaxInstancesPerVmr  )r  c_max_instances_per_vmr3  rV  r
  r
  r  r  J  r  r  c                 C   s0   t d}t|_td}|| t|}t| |S )Nr   nvmlVgpuTypeGetBAR1Info)rD  VgpuTypeBar1Info_v1r  r_  r0  rW  )r  
c_bar1Infor3  rV  r
  r
  r  r  Q  r  r  c                 C   r  )Nr   nvmlDeviceGetActiveVgpus)r  r_  r0  rU  r(  rL  r  rW  r,  rx  r  )r1  r  r3  rV  vgpu_instance_arrayc_vgpu_instancesr  r0  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  r  r_  r0  rW  r  )rG  c_vm_idr  c_vm_id_typer3  rV  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  r_  r0  rW  r  rG  r  r  r3  rV  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  r_  r0  rW  r  )rG  c_driver_versionr  r3  rV  r
  r
  r  r    r  r  c                 C   r  )Nr    nvmlVgpuInstanceGetLicenseStatusr  )rG  c_license_statusr3  rV  r
  r
  r  r    r  r  c                 C   s(   t d}t }|| t|}t| |S )N!nvmlVgpuInstanceGetLicenseInfo_v2)r_  rn  r0  rW  )rG  r3  c_license_inforV  r
  r
  r  r    s
   r  c                 C   r  r  )r  )rG  r
  r
  r  nvmlVgpuInstanceGetLicenseInfo  r  r  c                 C   r  )Nr   !nvmlVgpuInstanceGetFrameRateLimitr  )rG  c_frlr3  rV  r
  r
  r  r    r  r  c                 C   r  )NnvmlVgpuInstanceGetEccModer  rG  r  r3  rV  r
  r
  r  r    r  r  c                 C   r  )Nr   nvmlVgpuInstanceGetTyper  )rG  c_vgpu_typer3  rV  r
  r
  r  r    r  r  c                 C   r  )Nr   "nvmlVgpuInstanceGetEncoderCapacityr  )rG  c_encoder_capacityr3  rV  r
  r
  r  r    r  r  c                 C   r  )N"nvmlVgpuInstanceSetEncoderCapacityr  )rG  encoder_capacityr3  r
  r
  r  r    r  r  c                 C   r  )Nr   nvmlVgpuInstanceGetFbUsager  )rG  
c_fb_usager3  rV  r
  r
  r  r    r  r  c                 C   s2   t d}td}|| t|t|}t| |jS )Nr   nvmlVgpuTypeGetCapabilities)r  r_  _nvmlVgpuCapability_tr0  rW  r  )r  ra  c_cap_resultr3  rV  r
  r
  r  r    s
   r  c                 C   r  )Nr    nvmlVgpuInstanceGetGpuInstanceIdr  )rG  r  r3  rV  r
  r
  r  r    r  r  c                 C   s2   t t}td}|| |ttt}t| |jS )NnvmlVgpuInstanceGetGpuPciId)r  r  r_  r0  r  rW  r  )rG  c_vgpuPciIdr3  rV  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&  r_  r0  rU  r(  r  rF  rW  r  )	r1  r  r  r7  r9  r3  rV  r:  r;  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  rR  VgpuInstancesUtilizationInfo_v1r  r&  rS  r  rT  rU  r_  r0  rU  r(  rN  rV  rW  r  )r1  r  r7  c_vgpuUtilInfor3  rV  r:  r;  r
  r
  r  r     s$   

r  c                 C   r_  )NnvmlDeviceGetP2PStatus)_nvmlGpuP2PStatus_tr_  r0  rW  r  )rL  rM  p2pIndexc_p2pstatusr3  rV  r
  r
  r  r    rc  r  c                 C   r  )N&nvmlDeviceGetGridLicensableFeatures_v4)r  r_  r0  rW  )r1  c_get_grid_licensable_featuresr3  rV  r
  r
  r  r  %  s
   r  c                 C   r  r  )r  r  r
  r
  r  #nvmlDeviceGetGridLicensableFeatures-  r  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_SIZEr_  rW  rU  r  )r1  r  isUserDefinedr3  rV  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nvmlDeviceGetGspFirmwareModerE  )r1  	isEnableddefaultModer  isEnabledRefdefaultModeRefr3  rV  r
  r
  r  r  9  s   r  c                 C   s6   t d}t|}td}|| |t|}t| |jS )Nr   nvmlDeviceGetEncoderCapacity)r  _nvmlEncoderQueryType_tr_  r0  rW  r  )r1  encoderQueryTyper  c_encoderQuery_typer3  rV  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  r_  r0  rU  r(  r  rX  rW  r  )r1  r  r  r7  r3  rV  r:  r;  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^  rU  r_  r0  rU  r(  r[  r_  rW  r  )r1  r  r7  c_vgpuProcUtilInfor3  rV  r:  r;  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   nvmlDeviceGetEncoderStatsr  )r1  c_encoderCountc_encodeFpsc_encoderLatencyr3  rV  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  r_  r0  rU  r  rs  rW  r,  rx  r  r1  c_session_countr3  rV  session_array
c_sessionssessionsr0  r
  r
  r  r"       

r"  c                 C   r  )NnvmlDeviceGetFBCStatsr  r_  r0  rW  )r1  
c_fbcStatsr3  rV  r
  r
  r  r*    r  r*  c                 C   r!  )Nr   nvmlDeviceGetFBCSessions
r  r_  r0  rU  r  r  rW  r,  rx  r  r$  r
  r
  r  r-    r)  r-  c                 C   r  )Nr   nvmlVgpuInstanceGetEncoderStatsr  )rG  r  r  r  r3  rV  r
  r
  r  r/    r   r/  c                 C   r!  )Nr   "nvmlVgpuInstanceGetEncoderSessionsr#  rG  r%  r3  rV  r&  r'  r(  r0  r
  r
  r  r0    r)  r0  c                 C   r  )NnvmlVgpuInstanceGetFBCStatsr+  )rG  r,  r3  rV  r
  r
  r  r2    r  r2  c                 C   r!  )Nr   nvmlVgpuInstanceGetFBCSessionsr.  r1  r
  r
  r  r3    r)  r3  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  r_  r0  r(  r  r{  rW  r  )r1  r  r  r7  r3  rV  r:  r;  r
  r
  r  r4  	  s   
r4  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  rU  r_  r0  r(  r|  r  rW  r  )r1  r  r7  c_processesUtilInfor3  rV  r:  r;  r
  r
  r  r5    s   

r5  c                 C   Z   t d}t }td}|| t|t|}|tkr)|| t|t|}t| |S t|)NnvmlVgpuInstanceGetMetadatar   )r_  r  r  r0  r(  rW  r  )rG  r3  c_vgpuMetadatac_bufferSizerV  r
  r
  r  r9  9     r9  c                 C   r8  )NnvmlDeviceGetVgpuMetadatar   )r_  r  r  r0  r(  rW  r  )r1  r3  c_vgpuPgpuMetadatar;  rV  r
  r
  r  r=  G  r<  r=  c                 C   s2   t d}t }|t| t|t|}t| |S )NnvmlGetVgpuCompatibility)r_  r  r0  rW  )vgpuMetadatapgpuMetadatar3  c_vgpuPgpuCompatibilityrV  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   )	r_  r  r  r  r0  r(  rW  r  r  )r1  r3  c_pgpuMetadatar;  rV  r
  r
  r  rC  \  s   
rC  c                 C   r  )NnvmlDeviceGetVgpuSchedulerLog)r  r_  r0  rW  )r1  c_vgpu_sched_logr3  rV  r
  r
  r  rE  k  r  rE  c                 C   r  )NnvmlDeviceGetVgpuSchedulerState)r  r_  r0  rW  )r1  c_vgpu_sched_stater3  rV  r
  r
  r  rG  r  r  rG  c                 C   r  )N&nvmlDeviceGetVgpuSchedulerCapabilities)r  r_  r0  rW  )r1  c_vgpu_sched_capsr3  rV  r
  r
  r  rI  y  r  rI  c                 C   s"   t d}|| t|}t| tS )NnvmlDeviceSetVgpuSchedulerStater_  r0  rW  rU  )r1  sched_stater3  rV  r
  r
  r  rK    r  rK  c                 C   s    t d}|t| }t| tS )NnvmlSetVgpuVersionrL  )vgpuVersionr3  rV  r
  r
  r  rN    rV  rN  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)r  r_  r0  rW  rU  r  r  )	supportedr  r  r3  rV  r
  r
  r  rP    s   rP  c                 C   r  )N!nvmlVgpuInstanceGetAccountingModer  r  r
  r
  r  rR    r  rR  c                 C   sb   t  }td}|| t|d }|tkr-|jt  }| }|| t|t|}t| ||fS t|)N!nvmlVgpuInstanceGetAccountingPids)r  r_  r0  r(  r  rW  r  )rG  
c_pidCountr3  rV  r:  
c_pidArrayr
  r
  r  rS    s   
rS  c                 C   rg  )N"nvmlVgpuInstanceGetAccountingStats)r  r_  r0  rW  )rG  r  c_accountingStatsr3  rV  r
  r
  r  rV    rk  rV  c                 C      t d}|| }t| tS )N#nvmlVgpuInstanceClearAccountingPidsrC  )rG  r3  rV  r
  r
  r  rY    r  rY  c                  C   r  )NnvmlGetExcludedDeviceCountr  r  r
  r
  r  rZ    r  rZ  c                 C   r  )N nvmlGetExcludedDeviceInfoByIndex)r  r  r_  r0  rW  )r)  r  infor3  rV  r
  r
  r  r[    r  r[  c                 C   r  )NnvmlDeviceGetHostVgpuMode)_nvmlHostVgpuMode_tr_  r0  rW  r  )r1  c_host_vgpu_moder3  rV  r
  r
  r  r]    r  r]  c                 C   r5  )NnvmlDeviceSetMigModer  )r  r  c_activationStatusr3  rV  r
  r
  r  r`    r9  r`  c                 C   rn  )NnvmlDeviceGetMigModer  )r  c_currentModec_pendingModer3  rV  r
  r
  r  rb    r  rb  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  r_  r  r  r.  r0  rW  )r  profiler  r  r3  rV  r
  r
  r  rf    s   

rf  c                 C   r5  )N)nvmlDeviceGetGpuInstanceRemainingCapacityr  )r  r  r  r3  rV  r
  r
  r  rh    r9  rh  c                 C   "   t d}|| |||}t| tS )N-nvmlDeviceGetGpuInstancePossiblePlacements_v2rC  )r  r  placementsRefcountRefr3  rV  r
  r
  r  *nvmlDeviceGetGpuInstancePossiblePlacements  r  rm  c                 C   rg  )NnvmlDeviceCreateGpuInstancer  r_  r0  rW  )r  r  
c_instancer3  rV  r
  r
  r  rn    rk  rn  c                 C   r[  )N(nvmlDeviceCreateGpuInstanceWithPlacementro  )r  r  r  rp  r3  rV  r
  r
  r  rq    r^  rq  c                 C   rX  )NnvmlGpuInstanceDestroyrC  )r  r3  rV  r
  r
  r  rr  
  r  rr  c                 C   ri  )NnvmlDeviceGetGpuInstancesrC  )r  r  gpuInstancesRefrl  r3  rV  r
  r
  r  rs    r  rs  c                 C   rg  )NnvmlDeviceGetGpuInstanceByIdro  )r  r  rp  r3  rV  r
  r
  r  ru    rk  ru  c                 C   r  )NnvmlGpuInstanceGetInfo)r  r_  r0  rW  )r  r  r3  rV  r
  r
  r  rv    r  rv  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  r_  r  r  r.  r0  rW  )r  rg  
engProfiler  r  r3  rV  r
  r
  r  rx  $  s   

rx  c                 C   r5  )N2nvmlGpuInstanceGetComputeInstanceRemainingCapacityr  )r  r  r  r3  rV  r
  r
  r  rz  4  r9  rz  c                 C   ri  )N3nvmlGpuInstanceGetComputeInstancePossiblePlacementsrC  )r  r  rk  rl  r3  rV  r
  r
  r  r{  ;  r  r{  c                 C   rg  )N$nvmlGpuInstanceCreateComputeInstancec_nvmlComputeInstance_tr_  r0  rW  )r  r  rp  r3  rV  r
  r
  r  r|  A  rk  r|  c                 C   r[  )N1nvmlGpuInstanceCreateComputeInstanceWithPlacementr}  )r  r  r  rp  r3  rV  r
  r
  r  r  H  r^  r  c                 C   rX  )NnvmlComputeInstanceDestroyrC  )computeInstancer3  rV  r
  r
  r  r  O  r  r  c                 C   ri  )N"nvmlGpuInstanceGetComputeInstancesrC  )r  r  computeInstancesRefrl  r3  rV  r
  r
  r  r  U  r  r  c                 C   rg  )N%nvmlGpuInstanceGetComputeInstanceByIdr}  )r  r  rp  r3  rV  r
  r
  r  r  [  rk  r  c                 C   r  )NnvmlComputeInstanceGetInfo_v2)r  r_  r0  rW  )r  r  r3  rV  r
  r
  r  r  b  r  r  c                 C   r  r  )r  )r  r
  r
  r  nvmlComputeInstanceGetInfoi  r  r  c                 C   r  )NnvmlDeviceIsMigDeviceHandle)r  r_  r0  rW  )r  c_isMigDevicer3  rV  r
  r
  r  r  l  r  r  c                 C   r  )NnvmlDeviceGetGpuInstanceIdr  )r  c_gpuInstanceIdr3  rV  r
  r
  r  r  s  r  r  c                 C   r  )NnvmlDeviceGetComputeInstanceIdr  )r  c_computeInstanceIdr3  rV  r
  r
  r  r  z  r  r  c                 C   r  )NnvmlDeviceGetMaxMigDeviceCountr  )r  r  r3  rV  r
  r
  r  r    r  r  c                 C   r<  )N#nvmlDeviceGetMigDeviceHandleByIndexr  )r  r)  r  	migDevicer3  rV  r
  r
  r  r    r  r  c                 C   r  )N,nvmlDeviceGetDeviceHandleFromMigDeviceHandle)r  r_  r0  rW  )r  r  r3  rV  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceGetAttributes_v2)r5  r_  r0  rW  )r  c_attrsr3  rV  r
  r
  r  r    r  r  c                 C   r  r  )r  )r  r
  r
  r  nvmlDeviceGetAttributes  r  r  c                 C   s\   t d}t }t }t }t }|| t|t|t|t|}t| |j|j|j|jfS )NnvmlDeviceGetRemappedRowsr   )r  r3  c_corrc_unc
c_bpending
c_bfailurerV  r
  r
  r  r    s    r  c                 C   r  )N!nvmlDeviceGetRowRemapperHistogram)r8  r_  r0  rW  )r  c_valsr3  rV  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceGetArchitecture)_nvmlDeviceArchitecture_tr_  r0  rW  r  )r  archr3  rV  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceGetBusType)_nvmlBusType_tr_  r0  rW  r  )r  	c_busTyper3  rV  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceGetIrqNumr  )r  c_irqNumr3  rV  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceGetNumGpuCoresr  )r  
c_numCoresr3  rV  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceGetPowerSource)_nvmlPowerSource_tr_  r0  rW  r  )r  c_powerSourcer3  rV  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceGetMemoryBusWidthr  )r  c_memBusWidthr3  rV  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceGetPcieLinkMaxSpeed)_nvmlPcieLinkMaxSpeed_tr_  r0  rW  r  r  r4  r3  rV  r
  r
  r  r    r  r  c                 C   r  )N$nvmlDeviceGetAdaptiveClockInfoStatus)_nvmlAdaptiveClockInfoStatus_tr_  r0  rW  r  )r  c_adaptiveClockInfoStatusr3  rV  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceGetPcieSpeedr  r  r
  r
  r  r    r  r  c                 C   r  )NnvmlDeviceGetDynamicPstatesInfo)rL  r  r0  r_  rW  rU  )r  c_dynamicpstatesinfor  dynamicpstatesinfoRefr3  rV  r
  r
  r  r    s   
r  c                 C   s    t d}|| ||}t| tS )NnvmlDeviceSetFanSpeed_v2rC  )r1  r)  r  r3  rV  r
  r
  r  r    rV  r  c                 C   sN   t |tu}|r
|nt|}td}|| ||}t| |r tS |jd d  S )NnvmlDeviceGetThermalSettings)rL  r%  r0  r_  rW  rU  r&  )r  sensorindexc_thermalsettingsr  thermalsettingsRefr3  rV  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)rL  r  r0  r_  r   rW  rU  r  )
r  	clockTypepstateminClockMHzmaxClockMHzr  minClockMHzRefmaxClockMHzRefr3  rV  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  rL  r  clockOffsetMHzminClockOffsetMHzmaxClockOffsetMHzN)r  r  r	  r  r   re  r  rf  r
  r
  r
  r  r    rM  r  c                 C      t d}|| |}tS )NnvmlDeviceGetClockOffsetsr_  rU  r  r\  r3  rV  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  re  r_  rW  NVML_PSTATE_UNKNOWNrx  )	r  pstatesr  c_sizepstates_array	c_pstatesr3  rV  r  r
  r
  r  r  '  s   

r  c                 C   r  )NnvmlDeviceGetGpcClkVfOffsetr  r_  r0  rW  r  r  offsetr3  rV  r
  r
  r  r  :  r  r  c                 C   &   t |}td}|| |}t| tS )NnvmlDeviceSetGpcClkVfOffsetr  r_  rW  rU  r  r  c_offsetr3  rV  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rL  r  r0  r_  rW  rU  r  r  	minOffset	maxOffsetr  minOffsetRefmaxOffsetRefr3  rV  r
  r
  r  r  H  rJ  r  c                 C   r  )NnvmlDeviceGetMemClkVfOffsetr  r  r
  r
  r  r  Q  r  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  r_  rW  rU  )r  r  r3  rV  r
  r
  r  r  i  s
   r  c                  C   r  )N&nvmlSystemGetConfComputeGpusReadyStater  r  r3  rV  r
  r
  r  r  p  r  r  c                  C   &   t  } td}|t| }t| | S )N$nvmlSystemGetConfComputeCapabilities)rF  r_  r0  rW  )c_ccSysCapsr3  rV  r
  r
  r  r  w  
   r  c                  C   r  )NnvmlSystemGetConfComputeState)r>  r_  r0  rW  r  r
  r
  r  r  ~  r  r  c                 C   s   t d}|| S )N nvmlSystemGetConfComputeSettingsr  )settingsr3  r
  r
  r  r    s   r  c                 C   rA  )N*nvmlDeviceSetConfComputeUnprotectedMemSizerC  r  c_ccMemSizer3  rV  r
  r
  r  r    r  r  c                 C   r  )N#nvmlDeviceGetConfComputeMemSizeInfo)rI  r_  r0  rW  r  r
  r
  r  r    r  r  c                 C   r  )N,nvmlDeviceGetConfComputeProtectedMemoryUsage)r  r_  r0  rW  )r  r  r3  rV  r
  r
  r  r    r  r  c                 C   r  )N&nvmlDeviceGetConfComputeGpuCertificate)rL  r_  r0  rW  )r  c_certr3  rV  r
  r
  r  r    r  r  c                 C   sD   t  }tt| | }t|d| td}|| t|}t| |S )NrW  ,nvmlDeviceGetConfComputeGpuAttestationReport)rS  r/  r  rM  r_  r0  rW  )r  c_noncec_attestReportc_nonce_arrr3  rV  r
  r
  r  r    s   r  c                 C   s4   t d}t|_| |_td}|t|}t| tS )Nr   0nvmlSystemSetConfComputeKeyRotationThresholdInfo)r]  )ConfComputeSetKeyRotationThresholdInfo_v1r  r^  r_  r0  rW  rU  )max_atk_advc_keyRotationThrInfor3  rV  r
  r
  r  r    s   r  c                  C   s.   t d} t| _td}|t| }t| | S )Nr   0nvmlSystemGetConfComputeKeyRotationThresholdInfo)r`  )ConfComputeGetKeyRotationThresholdInfo_v1r  r_  r0  rW  )r   r3  rV  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_t	shortNamelongNamer  N)r  r  r	  r|  rf  r
  r
  r
  r  r    rr  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_tmetricIdr#  r  
metricInfoN)r  r  r	  r  r'  r  r  rf  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  
numMetricssample1sample2metricsN)r  r  r	  r  c_nvmlGpmSample_tr  NVML_GPM_METRIC_MAXrf  r
  r
  r
  r  r
  )  rW  r
  c                   @   r  )c_nvmlGpmSupport_tr  isSupportedDeviceNr  r
  r
  r
  r  r  4  r  r  c                 C   s    t d}|t| }t| | S )NnvmlGpmMetricsGetrX  )
metricsGetr3  rV  r
  r
  r  r  >  rV  r  c                 C   r  )NnvmlGpmSampleFreer  	gpmSampler3  rV  r
  r
  r  r  D  r  r  c                  C   r  )NnvmlGpmSampleAlloc)r  r_  r0  rW  r  r
  r
  r  r  J  r  r  c                 C   s   t d}|| |}t| |S )NnvmlGpmSampleGetr  )r  r  r3  rV  r
  r
  r  r  Q  r  r  c                 C   s    t d}|| ||}t| |S )NnvmlGpmMigSampleGetr  )r  r  r  r3  rV  r
  r
  r  r  W  rV  r  c                 C   r  )NnvmlGpmQueryDeviceSupport)r  NVML_GPM_SUPPORT_VERSIONr  r_  r0  rW  )r  
gpmSupportr3  rV  r
  r
  r  r  ]  r  r  c                 C   r  )NnvmlGpmSetStreamingEnabledr  )r  r  r  r3  rV  r
  r
  r  r  e  r  r  c                 C   r  )NnvmlGpmQueryIfStreamingEnabledr  )r  r  r3  rV  r
  r
  r  r  l  r  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!  r_  r0  rW  rU  )r  l1thresholdr  r3  rV  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clusterUuidrj  cliqueIdr  N)	r  r  r	  r  r  r'  r$  _nvmlGpuFabricState_trf  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%  rj  r&  r  
healthMaskc                    r+  r,  )r}  r(  rb  nvmlGpuFabricInfo_v2r  r  r
  r  rb    r.  zc_nvmlGpuFabricInfoV_t.__init__)r  r  r	  r  r  NVML_GPU_FABRIC_UUID_LENr'  r$  r'  rf  rb  r  r
  r
  r  r  r(    s    
	r(  c                 C   rA  )NnvmlDeviceGetGpuFabricInforC  r  gpuFabricInfor3  rV  r
  r
  r  r,    r  r,  c                 C   rA  )NnvmlDeviceGetGpuFabricInfoVrC  r-  r
  r
  r  r/    r  r/  c                 C   rX  )NnvmlSystemSetNvlinkBwModerC  r  r3  rV  r
  r
  r  r0    r  r0  c                  C   r  )NnvmlSystemGetNvlinkBwModer  r1  r
  r
  r  r2    r  r2  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powerValueMwrt  r  N)r  r  r	  r  _nvmlPowerScopeType_trf  rw  r
  r
  r
  r  r3    r  r3  i  c                 C   sB   t |}t }t||_||_t||_td}|| t|}tS )N$nvmlDeviceSetPowerManagementLimit_v2)	r6  r3  r  r  r4  r5  r_  r0  rU  )r  r4  
powerLimitr  c_powerScopec_powerValuer3  rV  r
  r
  r  r7    s   

r7  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  aggregateUncParityaggregateUncSecDedaggregateCorvolatileUncParityvolatileUncSecDedvolatileCoraggregateUncBucketL2aggregateUncBucketSmaggregateUncBucketPcieaggregateUncBucketMcuaggregateUncBucketOtherbThresholdExceededc                    r+  r,  )r}  r;  rb  nvmlEccSramErrorStatus_v1r  r  r
  r  rb    r.  z&c_nvmlEccSramErrorStatus_v1_t.__init__)r  r  r	  r  r  rf  rb  r  r
  r
  r  r  r;    s     r;  ih  c                 C   rA  )NnvmlDeviceGetSramEccErrorStatusrC  )r  rj  r3  rV  r
  r
  r  rI    r  rI  c                       ,   e Zd ZdefdefgZ fddZ  ZS )c_nvmlDeviceCapabilities_v1_tr  capMaskc                    r+  r,  )r}  rK  rb  nvmlDeviceCapabilities_v1r  r  r
  r  rb  !  r.  z&c_nvmlDeviceCapabilities_v1_t.__init__rE  r
  r
  r  r  rK    
    rK  c                 C   r  )NnvmlDeviceGetCapabilitiesr  )r  capsr3  r
  r
  r  rO  %  r  rO  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  ibGuidr   rackGuidchassisPhysicalSlotNumbercomputeSlotIndex	nodeIndexpeerTyper  c                    r+  r,  )r}  rQ  rb  nvmlPlatformInfo_v1r  r  r
  r  rb  5  r.  z c_nvmlPlatformInfo_v1_t.__init__)r  r  r	  r  r  rf  rb  r  r
  r
  r  r  rQ  )  s    

rQ  i,  c                 C   rA  )NnvmlDeviceGetPlatformInforC  )r  platformInfor3  rV  r
  r
  r  rY  9  r  rY  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  priorityconflictingmaskc                    r+  r,  )r}  r^  rb  nvmlWorkloadPowerProfileInfo_v1r  r  r
  r  rb  _  r.  z,c_nvmlWorkloadPowerProfileInfo_v1_t.__init__r  r  r	  r  r[  rf  rb  r  r
  r
  r  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  perfProfilesMaskperfProfilec                    r+  r,  )r}  rd  rb  'nvmlWorkloadPowerProfileProfilesInfo_v1r  r  r
  r  rb  j  r.  z4c_nvmlWorkloadPowerProfileProfilesInfo_v1_t.__init__)
r  r  r	  r  r[  r^   NVML_WORKLOAD_POWER_MAX_PROFILESrf  rb  r  r
  r
  r  r  rd  c  s    
rd  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  re  requestedProfilesMaskenforcedProfilesMaskc                    r+  r,  )r}  ri  rb  *nvmlWorkloadPowerProfileCurrentProfiles_v1r  r  r
  r  rb  v  r.  z7c_nvmlWorkloadPowerProfileCurrentProfiles_v1_t.__init__rb  r
  r
  r  r  ri  n  rc  ri  i$  c                       ,   e Zd ZdefdefgZ fddZ  ZS )0c_nvmlWorkloadPowerProfileRequestedProfiles_v1_tr  rj  c                    r+  r,  )r}  rn  rb  ,nvmlWorkloadPowerProfileRequestedProfiles_v1r  r  r
  r  rb    r.  z9c_nvmlWorkloadPowerProfileRequestedProfiles_v1_t.__init__rb  r
  r
  r  r  rn  z  rN  rn  c                 C   rA  )N-nvmlDeviceWorkloadPowerProfileGetProfilesInforC  )r  profilesInfor3  rV  r
  r
  r  rp    r  rp  c                 C   rA  )N0nvmlDeviceWorkloadPowerProfileGetCurrentProfilesrC  )r  currentProfilesr3  rV  r
  r
  r  rr    r  rr  c                 C   rA  )N2nvmlDeviceWorkloadPowerProfileSetRequestedProfilesrC  r  requestedProfilesr3  rV  r
  r
  r  rt    r  rt  c                 C   rA  )N4nvmlDeviceWorkloadPowerProfileClearRequestedProfilesrC  ru  r
  r
  r  rw    r  rw  c                 C   rA  )N#nvmlDeviceGetNvlinkSupportedBwModesrC  )r  supportedBwModesr3  rV  r
  r
  r  rx    r  rx  c                 C   rA  )NnvmlDeviceGetNvlinkBwModerC  )r  	getBwModer3  rV  r
  r
  r  rz    r  rz  c                 C   rA  )NnvmlDeviceSetNvlinkBwModerC  )r  	setBwModer3  rV  r
  r
  r  r|    r  r|  c                       rm  )c_nvmlDramEncryptionInfo_tr  encryptionStatec                    r+  r,  )r}  r~  rb  nvmlDramEncryptionInfo_v1r  r  r
  r  rb    r.  z#c_nvmlDramEncryptionInfo_t.__init__)r  r  r	  r  r  rf  rb  r  r
  r
  r  r  r~    rN  r~  c                 C   rn  )NnvmlDeviceGetDramEncryptionMode)r~  r_  r0  rW  r  r{  r
  r
  r  r    r  r  c                 C   r~  re  r  r  r
  r
  r  &nvmlDeviceGetCurrentDramEncryptionMode  r   r  c                 C   r~  r  r  r  r
  r
  r  &nvmlDeviceGetPendingDramEncryptionMode  r   r  c                 C   s.   t d}t }||_|| t|}t| d S )NnvmlDeviceSetDramEncryptionMode)r_  r~  r  r0  rW  )r1  r  r3  c_dramEncryptionModerV  r
  r
  r  r    s   r  c                       rJ  )c_nvmlPowerSmoothingState_v1_tr  r  c                    r+  r,  )r}  r  rb  nvmlPowerSmoothingState_v1r  r  r
  r  rb    r.  z'c_nvmlPowerSmoothingState_v1_t.__init__rE  r
  r
  r  r  r    rN  r  c                       r]  ) c_nvmlPowerSmoothingProfile_v1_tr  r  paramIdr  c                    r+  r,  )r}  r  rb  nvmlPowerSmoothingProfile_v1r  r  r
  r  rb    r.  z)c_nvmlPowerSmoothingProfile_v1_t.__init__)r  r  r	  r  r  rf  rb  r  r
  r
  r  r  r    rc  r  c                 C   r  )N-nvmlDevicePowerSmoothingActivatePresetProfiler  r  rg  r3  rV  r
  r
  r  r       
r  c                 C   r  )N0nvmlDevicePowerSmoothingUpdatePresetProfileParamr  r  r
  r
  r  r    r  r  c                 C   r  )N nvmlDevicePowerSmoothingSetStater  )r  r  r3  rV  r
  r
  r  r    r  r  r  )r   r   )NN(L  ctypesctypes.utilr   	functoolsr   rE  rv  	threadingrH  r  r  NVML_FEATURE_DISABLEDNVML_FEATURE_ENABLEDr  NVML_BRAND_UNKNOWNNVML_BRAND_QUADRONVML_BRAND_TESLANVML_BRAND_NVSNVML_BRAND_GRIDNVML_BRAND_GEFORCENVML_BRAND_TITANNVML_BRAND_NVIDIA_VAPPSNVML_BRAND_NVIDIA_VPCNVML_BRAND_NVIDIA_VCSNVML_BRAND_NVIDIA_VWSNVML_BRAND_NVIDIA_CLOUD_GAMINGNVML_BRAND_NVIDIA_VGAMINGNVML_BRAND_QUADRO_RTXNVML_BRAND_NVIDIA_RTXNVML_BRAND_NVIDIANVML_BRAND_GEFORCE_RTXNVML_BRAND_TITAN_RTXNVML_BRAND_COUNTr\  #NVML_TEMPERATURE_THRESHOLD_SHUTDOWN#NVML_TEMPERATURE_THRESHOLD_SLOWDOWN"NVML_TEMPERATURE_THRESHOLD_MEM_MAX"NVML_TEMPERATURE_THRESHOLD_GPU_MAX'NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_MIN(NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_CURR'NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_MAX#NVML_TEMPERATURE_THRESHOLD_GPS_CURR NVML_TEMPERATURE_THRESHOLD_COUNTrT  NVML_TEMPERATURE_GPUNVML_TEMPERATURE_COUNTr  NVML_COMPUTEMODE_DEFAULT!NVML_COMPUTEMODE_EXCLUSIVE_THREADNVML_COMPUTEMODE_PROHIBITED"NVML_COMPUTEMODE_EXCLUSIVE_PROCESSNVML_COMPUTEMODE_COUNTr  NVML_MEMORY_LOCATION_L1_CACHENVML_MEMORY_LOCATION_L2_CACHE"NVML_MEMORY_LOCATION_DEVICE_MEMORYNVML_MEMORY_LOCATION_DRAM"NVML_MEMORY_LOCATION_REGISTER_FILE#NVML_MEMORY_LOCATION_TEXTURE_MEMORY NVML_MEMORY_LOCATION_TEXTURE_SHMNVML_MEMORY_LOCATION_CBUNVML_MEMORY_LOCATION_SRAMNVML_MEMORY_LOCATION_COUNTNVML_NVLINK_MAX_LINKSNVML_NVLINK_MAX_LANES_nvmlNvLinkErrorCounter_tNVML_NVLINK_ERROR_DL_REPLAYNVML_NVLINK_ERROR_DL_RECOVERYNVML_NVLINK_ERROR_DL_CRC_FLITNVML_NVLINK_ERROR_DL_CRC_DATANVML_NVLINK_ERROR_DL_ECC_DATANVML_NVLINK_ERROR_COUNT _nvmlNvLinkEccLaneErrorCounter_tNVML_NVLINK_ERROR_DL_ECC_LANE0NVML_NVLINK_ERROR_DL_ECC_LANE1NVML_NVLINK_ERROR_DL_ECC_LANE2NVML_NVLINK_ERROR_DL_ECC_LANE3NVML_NVLINK_ERROR_DL_ECC_COUNT_nvmlNvLinkCapability_tNVML_NVLINK_CAP_P2P_SUPPORTEDNVML_NVLINK_CAP_SYSMEM_ACCESSNVML_NVLINK_CAP_P2P_ATOMICSNVML_NVLINK_CAP_SYSMEM_ATOMICSNVML_NVLINK_CAP_SLI_BRIDGENVML_NVLINK_CAP_VALIDNVML_NVLINK_CAP_COUNTr  !NVML_NVLINK_COUNTER_PKTFILTER_NOP"NVML_NVLINK_COUNTER_PKTFILTER_READ#NVML_NVLINK_COUNTER_PKTFILTER_WRITE#NVML_NVLINK_COUNTER_PKTFILTER_RATOM$NVML_NVLINK_COUNTER_PKTFILTER_NRATOM#NVML_NVLINK_COUNTER_PKTFILTER_FLUSH&NVML_NVLINK_COUNTER_PKTFILTER_RESPDATA(NVML_NVLINK_COUNTER_PKTFILTER_RESPNODATA!NVML_NVLINK_COUNTER_PKTFILTER_ALLr  NVML_NVLINK_COUNTER_UNIT_CYCLES NVML_NVLINK_COUNTER_UNIT_PACKETSNVML_NVLINK_COUNTER_UNIT_BYTES!NVML_NVLINK_COUNTER_UNIT_RESERVEDNVML_NVLINK_COUNTER_UNIT_COUNTrm  NVML_NVLINK_DEVICE_TYPE_GPUNVML_NVLINK_DEVICE_TYPE_IBMNPUNVML_NVLINK_DEVICE_TYPE_SWITCHNVML_NVLINK_DEVICE_TYPE_UNKNOWN_nvmlEccBitType_tNVML_SINGLE_BIT_ECCNVML_DOUBLE_BIT_ECCNVML_ECC_ERROR_TYPE_COUNTr  NVML_VOLATILE_ECCNVML_AGGREGATE_ECCNVML_ECC_COUNTER_TYPE_COUNTr   NVML_MEMORY_ERROR_TYPE_CORRECTED"NVML_MEMORY_ERROR_TYPE_UNCORRECTEDNVML_MEMORY_ERROR_TYPE_COUNTr   NVML_CLOCK_GRAPHICSNVML_CLOCK_SMNVML_CLOCK_MEMNVML_CLOCK_VIDEONVML_CLOCK_COUNTr(  NVML_CLOCK_ID_CURRENTNVML_CLOCK_ID_APP_CLOCK_TARGETNVML_CLOCK_ID_APP_CLOCK_DEFAULT NVML_CLOCK_ID_CUSTOMER_BOOST_MAXNVML_CLOCK_ID_COUNTr  NVML_DRIVER_WDDMNVML_DRIVER_WDMNVML_DRIVER_MCDMr  re  NVML_PSTATE_0NVML_PSTATE_1NVML_PSTATE_2NVML_PSTATE_3NVML_PSTATE_4NVML_PSTATE_5NVML_PSTATE_6NVML_PSTATE_7NVML_PSTATE_8NVML_PSTATE_9NVML_PSTATE_10NVML_PSTATE_11NVML_PSTATE_12NVML_PSTATE_13NVML_PSTATE_14NVML_PSTATE_15r  r  NVML_INFOROM_OEMNVML_INFOROM_ECCNVML_INFOROM_POWERNVML_INFOROM_DENNVML_INFOROM_COUNTr'  rU  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  NVML_ERROR_IN_USEr4  NVML_ERROR_NO_DATA!NVML_ERROR_VGPU_ECC_NOT_SUPPORTED!NVML_ERROR_INSUFFICIENT_RESOURCESNVML_ERROR_FREQ_NOT_SUPPORTEDrY  NVML_ERROR_DEPRECATEDNVML_ERROR_NOT_READYNVML_ERROR_GPU_NOT_FOUNDNVML_ERROR_INVALID_STATEr5  r  NVML_FAN_NORMALNVML_FAN_FAILEDrO  (NVML_FAN_POLICY_TEMPERATURE_CONTINOUS_SWNVML_FAN_POLICY_MANUALr  NVML_LED_COLOR_GREENNVML_LED_COLOR_AMBERrz  NVML_GOM_ALL_ONNVML_GOM_COMPUTENVML_GOM_LOW_DPr  9NVML_PAGE_RETIREMENT_CAUSE_MULTIPLE_SINGLE_BIT_ECC_ERRORS/NVML_PAGE_RETIREMENT_CAUSE_DOUBLE_BIT_ECC_ERROR NVML_PAGE_RETIREMENT_CAUSE_COUNTr,  *NVML_RESTRICTED_API_SET_APPLICATION_CLOCKS+NVML_RESTRICTED_API_SET_AUTO_BOOSTED_CLOCKSNVML_RESTRICTED_API_COUNTr  NVML_BRIDGE_CHIP_PLXNVML_BRIDGE_CHIP_BRO4NVML_MAX_PHYSICAL_BRIDGEr&  NVML_VALUE_TYPE_DOUBLENVML_VALUE_TYPE_UNSIGNED_INTNVML_VALUE_TYPE_UNSIGNED_LONG"NVML_VALUE_TYPE_UNSIGNED_LONG_LONG NVML_VALUE_TYPE_SIGNED_LONG_LONGNVML_VALUE_TYPE_SIGNED_INTNVML_VALUE_TYPE_UNSIGNED_SHORTNVML_VALUE_TYPE_COUNT_nvmlNvlinkVersion_tNVML_NVLINK_VERSION_INVALIDNVML_NVLINK_VERSION_1_0NVML_NVLINK_VERSION_2_0NVML_NVLINK_VERSION_2_2NVML_NVLINK_VERSION_3_0NVML_NVLINK_VERSION_3_1NVML_NVLINK_VERSION_4_0NVML_NVLINK_VERSION_5_0r>  NVML_PERF_POLICY_POWERNVML_PERF_POLICY_THERMALNVML_PERF_POLICY_SYNC_BOOSTNVML_PERF_POLICY_BOARD_LIMIT NVML_PERF_POLICY_LOW_UTILIZATIONNVML_PERF_POLICY_RELIABILITY!NVML_PERF_POLICY_TOTAL_APP_CLOCKS"NVML_PERF_POLICY_TOTAL_BASE_CLOCKSNVML_PERF_POLICY_COUNTr  NVML_ENCODER_QUERY_H264NVML_ENCODER_QUERY_HEVCNVML_ENCODER_QUERY_AV1NVML_ENCODER_QUERY_UNKNOWN_nvmlFBCSessionType_tNVML_FBC_SESSION_TYPE_UNKNOWNNVML_FBC_SESSION_TYPE_TOSYSNVML_FBC_SESSION_TYPE_CUDANVML_FBC_SESSION_TYPE_VIDNVML_FBC_SESSION_TYPE_HWENC_nvmlDetachGpuState_tNVML_DETACH_GPU_KEEPNVML_DETACH_GPU_REMOVE_nvmlPcieLinkState_tNVML_PCIE_LINK_KEEPNVML_PCIE_LINK_SHUT_DOWNr4  NVML_TOTAL_POWER_SAMPLESNVML_GPU_UTILIZATION_SAMPLESNVML_MEMORY_UTILIZATION_SAMPLESNVML_ENC_UTILIZATION_SAMPLESNVML_DEC_UTILIZATION_SAMPLESNVML_PROCESSOR_CLK_SAMPLESNVML_MEMORY_CLK_SAMPLESNVML_MODULE_POWER_SAMPLESNVML_JPG_UTILIZATION_SAMPLESNVML_OFA_UTILIZATION_SAMPLESNVML_SAMPLINGTYPE_COUNTrC  NVML_PCIE_UTIL_TX_BYTESNVML_PCIE_UTIL_RX_BYTESNVML_PCIE_UTIL_COUNTrK  NVML_TOPOLOGY_INTERNALNVML_TOPOLOGY_SINGLENVML_TOPOLOGY_MULTIPLENVML_TOPOLOGY_HOSTBRIDGENVML_TOPOLOGY_NODENVML_TOPOLOGY_CPUNVML_TOPOLOGY_SYSTEM_nvmlGpuP2PCapsIndex_tNVML_P2P_CAPS_INDEX_READNVML_P2P_CAPS_INDEX_WRITENVML_P2P_CAPS_INDEX_NVLINKNVML_P2P_CAPS_INDEX_ATOMICSNVML_P2P_CAPS_INDEX_PROPNVML_P2P_CAPS_INDEX_PCINVML_P2P_CAPS_INDEX_UNKNOWNr  NVML_P2P_STATUS_OK$NVML_P2P_STATUS_CHIPSET_NOT_SUPPORED%NVML_P2P_STATUS_CHIPSET_NOT_SUPPORTED!NVML_P2P_STATUS_GPU_NOT_SUPPORTED*NVML_P2P_STATUS_IOH_TOPOLOGY_NOT_SUPPORTED"NVML_P2P_STATUS_DISABLED_BY_REGKEYNVML_P2P_STATUS_NOT_SUPPORTEDNVML_P2P_STATUS_UNKNOWNr  NVML_DEVICE_ARCH_KEPLERNVML_DEVICE_ARCH_MAXWELLNVML_DEVICE_ARCH_PASCALNVML_DEVICE_ARCH_VOLTANVML_DEVICE_ARCH_TURINGNVML_DEVICE_ARCH_AMPERENVML_DEVICE_ARCH_ADANVML_DEVICE_ARCH_HOPPERNVML_DEVICE_ARCH_BLACKWELLNVML_DEVICE_ARCH_T23XNVML_DEVICE_ARCH_UNKNOWNr  NVML_BUS_TYPE_UNKNOWNNVML_BUS_TYPE_PCINVML_BUS_TYPE_PCIENVML_BUS_TYPE_FPCINVML_BUS_TYPE_AGPr  NVML_POWER_SOURCE_ACNVML_POWER_SOURCE_BATTERYNVML_POWER_SOURCE_UNDERSIZEDr  +NVML_ADAPTIVE_CLOCKING_INFO_STATUS_DISABLED*NVML_ADAPTIVE_CLOCKING_INFO_STATUS_ENABLED_nvmlClockLimitId_tNVML_CLOCK_LIMIT_ID_RANGE_STARTNVML_CLOCK_LIMIT_ID_TDPNVML_CLOCK_LIMIT_ID_UNLIMITEDr   NVML_PCIE_LINK_MAX_SPEED_INVALID!NVML_PCIE_LINK_MAX_SPEED_2500MBPS!NVML_PCIE_LINK_MAX_SPEED_5000MBPS!NVML_PCIE_LINK_MAX_SPEED_8000MBPS"NVML_PCIE_LINK_MAX_SPEED_16000MBPS"NVML_PCIE_LINK_MAX_SPEED_32000MBPS"NVML_PCIE_LINK_MAX_SPEED_64000MBPS_nvmlPcieAtomicsCapability_t NVML_PCIE_ATOMICS_CAP_FETCHADD32 NVML_PCIE_ATOMICS_CAP_FETCHADD64NVML_PCIE_ATOMICS_CAP_SWAP32NVML_PCIE_ATOMICS_CAP_SWAP64NVML_PCIE_ATOMICS_CAP_CAS32NVML_PCIE_ATOMICS_CAP_CAS64NVML_PCIE_ATOMICS_CAP_CAS128NVML_PCIE_ATOMICS_OPS_MAXr  NVML_AFFINITY_SCOPE_NODENVML_AFFINITY_SCOPE_SOCKET_nvmlDeviceGpuRecoveryAction_tNVML_GPU_RECOVERY_ACTION_NONE"NVML_GPU_RECOVERY_ACTION_GPU_RESET$NVML_GPU_RECOVERY_ACTION_NODE_REBOOT"NVML_GPU_RECOVERY_ACTION_DRAIN_P2P(NVML_GPU_RECOVERY_ACTION_DRAIN_AND_RESETnvmlFlagDefaultnvmlFlagForceNVML_INIT_FLAG_NO_GPUSNVML_INIT_FLAG_NO_ATTACHNVML_MAX_GPC_COUNTr  r  r  r  r  r  r   r  r  'NVML_DEVICE_GPU_PART_NUMBER_BUFFER_SIZEr  r  r  r  rZ  r  r  r  r  +NVML_DEVICE_GPU_FRU_PART_NUMBER_BUFFER_SIZEr  !NVML_DEVICE_PCI_BUS_ID_LEGACY_FMTNVML_DEVICE_PCI_BUS_ID_FMTr  r  NVML_VALUE_NOT_AVAILABLE_uintNVML_FI_DEV_ECC_CURRENTNVML_FI_DEV_ECC_PENDINGNVML_FI_DEV_ECC_SBE_VOL_TOTALNVML_FI_DEV_ECC_DBE_VOL_TOTALNVML_FI_DEV_ECC_SBE_AGG_TOTALNVML_FI_DEV_ECC_DBE_AGG_TOTALNVML_FI_DEV_ECC_SBE_VOL_L1NVML_FI_DEV_ECC_DBE_VOL_L1NVML_FI_DEV_ECC_SBE_VOL_L2NVML_FI_DEV_ECC_DBE_VOL_L2NVML_FI_DEV_ECC_SBE_VOL_DEVNVML_FI_DEV_ECC_DBE_VOL_DEVNVML_FI_DEV_ECC_SBE_VOL_REGNVML_FI_DEV_ECC_DBE_VOL_REGNVML_FI_DEV_ECC_SBE_VOL_TEXNVML_FI_DEV_ECC_DBE_VOL_TEXNVML_FI_DEV_ECC_DBE_VOL_CBUNVML_FI_DEV_ECC_SBE_AGG_L1NVML_FI_DEV_ECC_DBE_AGG_L1NVML_FI_DEV_ECC_SBE_AGG_L2NVML_FI_DEV_ECC_DBE_AGG_L2NVML_FI_DEV_ECC_SBE_AGG_DEVNVML_FI_DEV_ECC_DBE_AGG_DEVNVML_FI_DEV_ECC_SBE_AGG_REGNVML_FI_DEV_ECC_DBE_AGG_REGNVML_FI_DEV_ECC_SBE_AGG_TEXNVML_FI_DEV_ECC_DBE_AGG_TEXNVML_FI_DEV_ECC_DBE_AGG_CBUNVML_FI_DEV_RETIRED_SBENVML_FI_DEV_RETIRED_DBENVML_FI_DEV_RETIRED_PENDING*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L0*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L1*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L2*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L3*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L4*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L5-NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_TOTAL*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L0*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L1*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L2*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L3*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L4*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L5-NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_TOTAL(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L0(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L1(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L2(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L3(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L4(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L5+NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_TOTAL*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L0*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L1*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L2*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L3*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L4*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L5-NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_TOTAL"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L0"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L1"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L2"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L3"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L4"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L5%NVML_FI_DEV_NVLINK_BANDWIDTH_C0_TOTAL"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L0"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L1"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L2"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L3"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L4"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L5%NVML_FI_DEV_NVLINK_BANDWIDTH_C1_TOTALNVML_FI_DEV_PERF_POLICY_POWERNVML_FI_DEV_PERF_POLICY_THERMAL"NVML_FI_DEV_PERF_POLICY_SYNC_BOOST#NVML_FI_DEV_PERF_POLICY_BOARD_LIMIT'NVML_FI_DEV_PERF_POLICY_LOW_UTILIZATION#NVML_FI_DEV_PERF_POLICY_RELIABILITY(NVML_FI_DEV_PERF_POLICY_TOTAL_APP_CLOCKS)NVML_FI_DEV_PERF_POLICY_TOTAL_BASE_CLOCKSNVML_FI_DEV_MEMORY_TEMP$NVML_FI_DEV_TOTAL_ENERGY_CONSUMPTION NVML_FI_DEV_NVLINK_SPEED_MBPS_L0 NVML_FI_DEV_NVLINK_SPEED_MBPS_L1 NVML_FI_DEV_NVLINK_SPEED_MBPS_L2 NVML_FI_DEV_NVLINK_SPEED_MBPS_L3 NVML_FI_DEV_NVLINK_SPEED_MBPS_L4 NVML_FI_DEV_NVLINK_SPEED_MBPS_L5$NVML_FI_DEV_NVLINK_SPEED_MBPS_COMMONNVML_FI_DEV_NVLINK_LINK_COUNTNVML_FI_DEV_RETIRED_PENDING_SBENVML_FI_DEV_RETIRED_PENDING_DBENVML_FI_DEV_PCIE_REPLAY_COUNTER(NVML_FI_DEV_PCIE_REPLAY_ROLLOVER_COUNTER*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L6*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L7*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L8*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L9+NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L10+NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L11*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L6*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L7*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L8*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L9+NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L10+NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L11(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L6(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L7(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L8(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L9)NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L10)NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L11*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L6*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L7*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L8*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L9+NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L10+NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L11"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L6"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L7"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L8"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L9#NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L10#NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L11"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L6"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L7"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L8"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L9#NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L10#NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L11 NVML_FI_DEV_NVLINK_SPEED_MBPS_L6 NVML_FI_DEV_NVLINK_SPEED_MBPS_L7 NVML_FI_DEV_NVLINK_SPEED_MBPS_L8 NVML_FI_DEV_NVLINK_SPEED_MBPS_L9!NVML_FI_DEV_NVLINK_SPEED_MBPS_L10!NVML_FI_DEV_NVLINK_SPEED_MBPS_L11%NVML_FI_DEV_NVLINK_THROUGHPUT_DATA_TX%NVML_FI_DEV_NVLINK_THROUGHPUT_DATA_RX$NVML_FI_DEV_NVLINK_THROUGHPUT_RAW_TX$NVML_FI_DEV_NVLINK_THROUGHPUT_RAW_RXNVML_FI_DEV_REMAPPED_CORNVML_FI_DEV_REMAPPED_UNCNVML_FI_DEV_REMAPPED_PENDINGNVML_FI_DEV_REMAPPED_FAILURE#NVML_FI_DEV_NVLINK_REMOTE_NVLINK_ID)NVML_FI_DEV_NVSWITCH_CONNECTED_LINK_COUNT*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L0*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L1*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L2*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L3*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L4*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L5*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L6*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L7*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L8*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L9+NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L10+NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L11-NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_TOTAL"NVML_FI_DEV_NVLINK_ERROR_DL_REPLAY$NVML_FI_DEV_NVLINK_ERROR_DL_RECOVERYNVML_FI_DEV_NVLINK_ERROR_DL_CRCNVML_FI_DEV_NVLINK_GET_SPEEDNVML_FI_DEV_NVLINK_GET_STATENVML_FI_DEV_NVLINK_GET_VERSION"NVML_FI_DEV_NVLINK_GET_POWER_STATE&NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD'NVML_FI_DEV_PCIE_L0_TO_RECOVERY_COUNTERNVML_FI_DEV_C2C_LINK_COUNTNVML_FI_DEV_C2C_LINK_GET_STATUSNVML_FI_DEV_C2C_LINK_GET_MAX_BW)NVML_FI_DEV_PCIE_COUNT_CORRECTABLE_ERRORS$NVML_FI_DEV_PCIE_COUNT_NAKS_RECEIVED%NVML_FI_DEV_PCIE_COUNT_RECEIVER_ERRORNVML_FI_DEV_PCIE_COUNT_BAD_TLP NVML_FI_DEV_PCIE_COUNT_NAKS_SENTNVML_FI_DEV_PCIE_COUNT_BAD_DLLP&NVML_FI_DEV_PCIE_COUNT_NON_FATAL_ERROR"NVML_FI_DEV_PCIE_COUNT_FATAL_ERROR&NVML_FI_DEV_PCIE_COUNT_UNSUPPORTED_REQ!NVML_FI_DEV_PCIE_COUNT_LCRC_ERROR!NVML_FI_DEV_PCIE_COUNT_LANE_ERROR&NVML_FI_DEV_IS_RESETLESS_MIG_SUPPORTEDNVML_FI_DEV_POWER_AVERAGENVML_FI_DEV_POWER_INSTANTNVML_FI_DEV_POWER_MIN_LIMITNVML_FI_DEV_POWER_MAX_LIMITNVML_FI_DEV_POWER_DEFAULT_LIMITNVML_FI_DEV_POWER_CURRENT_LIMITNVML_FI_DEV_ENERGY!NVML_FI_DEV_POWER_REQUESTED_LIMIT'NVML_FI_DEV_TEMPERATURE_SHUTDOWN_TLIMIT'NVML_FI_DEV_TEMPERATURE_SLOWDOWN_TLIMIT&NVML_FI_DEV_TEMPERATURE_MEM_MAX_TLIMIT&NVML_FI_DEV_TEMPERATURE_GPU_MAX_TLIMITNVML_FI_DEV_PCIE_COUNT_TX_BYTESNVML_FI_DEV_PCIE_COUNT_RX_BYTES5NVML_FI_DEV_IS_MIG_MODE_INDEPENDENT_MIG_QUERY_CAPABLE*NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD_MAX%NVML_FI_DEV_NVLINK_COUNT_XMIT_PACKETS#NVML_FI_DEV_NVLINK_COUNT_XMIT_BYTES$NVML_FI_DEV_NVLINK_COUNT_RCV_PACKETS"NVML_FI_DEV_NVLINK_COUNT_RCV_BYTES%NVML_FI_DEV_NVLINK_COUNT_VL15_DROPPED0NVML_FI_DEV_NVLINK_COUNT_MALFORMED_PACKET_ERRORS.NVML_FI_DEV_NVLINK_COUNT_BUFFER_OVERRUN_ERRORS#NVML_FI_DEV_NVLINK_COUNT_RCV_ERRORS*NVML_FI_DEV_NVLINK_COUNT_RCV_REMOTE_ERRORS+NVML_FI_DEV_NVLINK_COUNT_RCV_GENERAL_ERRORS4NVML_FI_DEV_NVLINK_COUNT_LOCAL_LINK_INTEGRITY_ERRORS&NVML_FI_DEV_NVLINK_COUNT_XMIT_DISCARDS8NVML_FI_DEV_NVLINK_COUNT_LINK_RECOVERY_SUCCESSFUL_EVENTS4NVML_FI_DEV_NVLINK_COUNT_LINK_RECOVERY_FAILED_EVENTS-NVML_FI_DEV_NVLINK_COUNT_LINK_RECOVERY_EVENTS&NVML_FI_DEV_NVLINK_COUNT_RAW_BER_LANE0&NVML_FI_DEV_NVLINK_COUNT_RAW_BER_LANE1 NVML_FI_DEV_NVLINK_COUNT_RAW_BER)NVML_FI_DEV_NVLINK_COUNT_EFFECTIVE_ERRORS&NVML_FI_DEV_NVLINK_COUNT_EFFECTIVE_BER&NVML_FI_DEV_NVLINK_COUNT_SYMBOL_ERRORS#NVML_FI_DEV_NVLINK_COUNT_SYMBOL_BER*NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD_MIN,NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD_UNITS0NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD_SUPPORTEDNVML_FI_DEV_RESET_STATUS"NVML_FI_DEV_DRAIN_AND_RESET_STATUS&NVML_FI_DEV_PCIE_OUTBOUND_ATOMICS_MASK%NVML_FI_DEV_PCIE_INBOUND_ATOMICS_MASK#NVML_FI_DEV_GET_GPU_RECOVERY_ACTION&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_0&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_1&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_2&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_3&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_4&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_5&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_6&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_7&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_8&NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_9'NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_10'NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_11'NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_12'NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_13'NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_14'NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_15NVML_FI_PWR_SMOOTHING_ENABLEDNVML_FI_PWR_SMOOTHING_PRIV_LVL+NVML_FI_PWR_SMOOTHING_IMM_RAMP_DOWN_ENABLED&NVML_FI_PWR_SMOOTHING_APPLIED_TMP_CEIL'NVML_FI_PWR_SMOOTHING_APPLIED_TMP_FLOOR3NVML_FI_PWR_SMOOTHING_MAX_PERCENT_TMP_FLOOR_SETTING3NVML_FI_PWR_SMOOTHING_MIN_PERCENT_TMP_FLOOR_SETTING=NVML_FI_PWR_SMOOTHING_HW_CIRCUITRY_PERCENT_LIFETIME_REMAINING-NVML_FI_PWR_SMOOTHING_MAX_NUM_PRESET_PROFILES/NVML_FI_PWR_SMOOTHING_PROFILE_PERCENT_TMP_FLOOR*NVML_FI_PWR_SMOOTHING_PROFILE_RAMP_UP_RATE,NVML_FI_PWR_SMOOTHING_PROFILE_RAMP_DOWN_RATE0NVML_FI_PWR_SMOOTHING_PROFILE_RAMP_DOWN_HYST_VAL+NVML_FI_PWR_SMOOTHING_ACTIVE_PRESET_PROFILE6NVML_FI_PWR_SMOOTHING_ADMIN_OVERRIDE_PERCENT_TMP_FLOOR1NVML_FI_PWR_SMOOTHING_ADMIN_OVERRIDE_RAMP_UP_RATE3NVML_FI_PWR_SMOOTHING_ADMIN_OVERRIDE_RAMP_DOWN_RATE7NVML_FI_PWR_SMOOTHING_ADMIN_OVERRIDE_RAMP_DOWN_HYST_VALNVML_FI_MAXNVML_NVLINK_STATE_INACTIVENVML_NVLINK_STATE_ACTIVENVML_NVLINK_STATE_SLEEP*NVML_NVLINK_LOW_POWER_THRESHOLD_UNIT_100US)NVML_NVLINK_LOW_POWER_THRESHOLD_UNIT_50US!NVML_GPU_VIRTUALIZATION_MODE_NONE(NVML_GPU_VIRTUALIZATION_MODE_PASSTHROUGH!NVML_GPU_VIRTUALIZATION_MODE_VGPU&NVML_GPU_VIRTUALIZATION_MODE_HOST_VGPU&NVML_GPU_VIRTUALIZATION_MODE_HOST_VSGAr[  LockrY  ro  r  rL  _nvmlVgpuVmIdType_tNVML_VGPU_VM_ID_DOMAIN_IDNVML_VGPU_VM_ID_UUIDr  &NVML_GRID_LICENSE_FEATURE_CODE_UNKNOWN#NVML_GRID_LICENSE_FEATURE_CODE_VGPU)NVML_GRID_LICENSE_FEATURE_CODE_NVIDIA_RTX+NVML_GRID_LICENSE_FEATURE_CODE_VWORKSTATION%NVML_GRID_LICENSE_FEATURE_CODE_GAMING&NVML_GRID_LICENSE_FEATURE_CODE_COMPUTEr/  _nvmlGridLicenseExpiryStatus_t&NVML_GRID_LICENSE_EXPIRY_NOT_AVAILABLE NVML_GRID_LICENSE_EXPIRY_INVALIDNVML_GRID_LICENSE_EXPIRY_VALID'NVML_GRID_LICENSE_EXPIRY_NOT_APPLICABLE"NVML_GRID_LICENSE_EXPIRY_PERMANENTr  NVML_VGPU_CAP_NVLINK_P2PNVML_VGPU_CAP_GPUDIRECT"NVML_VGPU_CAP_MULTI_VGPU_EXCLUSIVENVML_VGPU_CAP_EXCLUSIVE_TYPENVML_VGPU_CAP_EXCLUSIVE_SIZENVML_VGPU_CAP_COUNTr  -NVML_VGPU_DRIVER_CAP_HETEROGENEOUS_MULTI_VGPU NVML_VGPU_DRIVER_CAP_WARM_UPDATENVML_VGPU_DRIVER_CAP_COUNTr  *NVML_DEVICE_VGPU_CAP_FRACTIONAL_MULTI_VGPU5NVML_DEVICE_VGPU_CAP_HETEROGENEOUS_TIMESLICE_PROFILES2NVML_DEVICE_VGPU_CAP_HETEROGENEOUS_TIMESLICE_SIZES*NVML_DEVICE_VGPU_CAP_READ_DEVICE_BUFFER_BW+NVML_DEVICE_VGPU_CAP_WRITE_DEVICE_BUFFER_BW%NVML_DEVICE_VGPU_CAP_DEVICE_STREAMING%NVML_DEVICE_VGPU_CAP_MINI_QUARTER_GPU-NVML_DEVICE_VGPU_CAP_COMPUTE_MEDIA_ENGINE_GPU NVML_DEVICE_VGPU_CAP_WARM_UPDATE+NVML_DEVICE_VGPU_CAP_HOMOGENEOUS_PLACEMENTSNVML_DEVICE_VGPU_CAP_COUNTr  1NVML_VGPU_INSTANCE_GUEST_INFO_STATE_UNINITIALIZED/NVML_VGPU_INSTANCE_GUEST_INFO_STATE_INITIALIZEDr  NVML_VGPU_VM_COMPATIBILITY_NONENVML_VGPU_VM_COMPATIBILITY_COLD$NVML_VGPU_VM_COMPATIBILITY_HIBERNATE NVML_VGPU_VM_COMPATIBILITY_SLEEPNVML_VGPU_VM_COMPATIBILITY_LIVEr  "NVML_VGPU_COMPATIBILITY_LIMIT_NONE)NVML_VGPU_COMPATIBILITY_LIMIT_HOST_DRIVER*NVML_VGPU_COMPATIBILITY_LIMIT_GUEST_DRIVER!NVML_VGPU_COMPATIBILITY_LIMIT_GPU#NVML_VGPU_COMPATIBILITY_LIMIT_OTHERr^  NVML_HOST_VGPU_MODE_NON_SRIOVNVML_HOST_VGPU_MODE_SRIOV _nvmlConfComputeGpusReadyState_t'NVML_CC_ACCEPTING_CLIENT_REQUESTS_FALSE&NVML_CC_ACCEPTING_CLIENT_REQUESTS_TRUE_nvmlConfComputeGpuCaps_t"NVML_CC_SYSTEM_GPUS_CC_NOT_CAPABLENVML_CC_SYSTEM_GPUS_CC_CAPABLE_nvmlConfComputeCpuCaps_tNVML_CC_SYSTEM_CPU_CAPS_NONENVML_CC_SYSTEM_CPU_CAPS_AMD_SEV!NVML_CC_SYSTEM_CPU_CAPS_INTEL_TDX#NVML_CC_SYSTEM_CPU_CAPS_AMD_SEV_SNP$NVML_CC_SYSTEM_CPU_CAPS_AMD_SNP_VTOM_nvmlConfComputeDevToolsMode_t NVML_CC_SYSTEM_DEVTOOLS_MODE_OFFNVML_CC_SYSTEM_DEVTOOLS_MODE_ONNVML_CC_SYSTEM_MULTIGPU_NONE&NVML_CC_SYSTEM_MULTIGPU_PROTECTED_PCIE&NVML_CC_SYSTEM_ENVIRONMENT_UNAVAILABLENVML_CC_SYSTEM_ENVIRONMENT_SIMNVML_CC_SYSTEM_ENVIRONMENT_PROD_nvmlConfComputeCcFeature_tNVML_CC_SYSTEM_FEATURE_DISABLEDNVML_CC_SYSTEM_FEATURE_ENABLED0_nvmlConfComputeCcKeyRotationThreshAttackerAdv_t2NVML_CC_KEY_ROTATION_THRESH_ATTACKER_ADVANTAGE_MIN2NVML_CC_KEY_ROTATION_THRESH_ATTACKER_ADVANTAGE_MAXr  r  r  r  r8  rT  rW  r!  rX  r_  objectr`  rm  rq  	Structurerr  r  r  rs  r  r  nvmlC2cModeInfo_v1r  r  r  r  r  r  r  nvmlPciInfoExt_v1r  r  r  r  r  r  r  r  nvmlMemory_v2r  r  r  r  r  r  c_nvmlProcessInfo_tr  NVML_PROCESS_MODE_COMPUTENVML_PROCESS_MODE_GRAPHICSNVML_PROCESS_MODE_MPSr  r  r  nvmlProcessDetailList_v1r  r  r  r  r  Unionr	  r  r  r  r0  r-  r(  r5  r2  r:  r8  r;  r  r<  r  r>  r  !NVML_VGPU_PGPU_HETEROGENEOUS_MODENVML_VGPU_PGPU_HOMOGENEOUS_MODErC  r  rD  r  rF  rN  rR  r  rX  r[  r]  r  r`  r  rc  NVML_GRID_LICENSE_STATE_UNKNOWN%NVML_GRID_LICENSE_STATE_UNINITIALIZED/NVML_GRID_LICENSE_STATE_UNLICENSED_UNRESTRICTED-NVML_GRID_LICENSE_STATE_UNLICENSED_RESTRICTED"NVML_GRID_LICENSE_STATE_UNLICENSED NVML_GRID_LICENSE_STATE_LICENSEDrn  rs  r{  r|  r~  r6  r  r  r  r  r  r  r  r  r  r  ra  r  r  nvmlEventTypeSingleBitEccErrornvmlEventTypeDoubleBitEccErrornvmlEventTypePStatenvmlEventTypeXidCriticalErrornvmlEventTypeClocknvmlEventTypePowerSourceChangenvmlEventMigConfigChange#nvmlEventTypeSingleBitEccErrorStorm nvmlEventTypeDramRetirementEvent"nvmlEventTypeDramRetirementFailure nvmlEventTypeNonFatalPoisonErrornvmlEventTypeFatalPoisonError nvmlEventTypeGpuUnavailableErrornvmlEventTypeGpuRecoveryActionnvmlEventTypeNonenvmlEventTypeAllnvmlClocksEventReasonGpuIdle.nvmlClocksEventReasonApplicationsClocksSetting&nvmlClocksEventReasonUserDefinedClocksnvmlClocksEventReasonSwPowerCapnvmlClocksEventReasonHwSlowdownnvmlClocksEventReasonSyncBoost&nvmlClocksEventReasonSwThermalSlowdown&nvmlClocksEventReasonHwThermalSlowdown)nvmlClocksEventReasonHwPowerBrakeSlowdown(nvmlClocksEventReasonDisplayClockSettingnvmlClocksEventReasonNonenvmlClocksEventReasonAllnvmlClocksThrottleReasonGpuIdle1nvmlClocksThrottleReasonApplicationsClocksSetting)nvmlClocksThrottleReasonUserDefinedClocks"nvmlClocksThrottleReasonSwPowerCap"nvmlClocksThrottleReasonHwSlowdown!nvmlClocksThrottleReasonSyncBoost)nvmlClocksThrottleReasonSwThermalSlowdown)nvmlClocksThrottleReasonHwThermalSlowdown,nvmlClocksThrottleReasonHwPowerBrakeSlowdown+nvmlClocksThrottleReasonDisplayClockSettingnvmlClocksThrottleReasonNonenvmlClocksThrottleReasonAllr  r  r  r  r  r  "NVML_VGPU_SCHEDULER_POLICY_UNKNOWN&NVML_VGPU_SCHEDULER_POLICY_BEST_EFFORT&NVML_VGPU_SCHEDULER_POLICY_EQUAL_SHARE&NVML_VGPU_SCHEDULER_POLICY_FIXED_SHAREr  r  NVML_VGPU_SCHEDULER_ARR_DEFAULTNVML_VGPU_SCHEDULER_ARR_DISABLENVML_VGPU_SCHEDULER_ARR_ENABLEr  r  r  r  r  r  r  r  r  r  r  r  r  NVML_DEVICE_MIG_DISABLENVML_DEVICE_MIG_ENABLE!NVML_GPU_INSTANCE_PROFILE_1_SLICE!NVML_GPU_INSTANCE_PROFILE_2_SLICE!NVML_GPU_INSTANCE_PROFILE_3_SLICE!NVML_GPU_INSTANCE_PROFILE_4_SLICE!NVML_GPU_INSTANCE_PROFILE_7_SLICE!NVML_GPU_INSTANCE_PROFILE_8_SLICE!NVML_GPU_INSTANCE_PROFILE_6_SLICE&NVML_GPU_INSTANCE_PROFILE_1_SLICE_REV1&NVML_GPU_INSTANCE_PROFILE_2_SLICE_REV1&NVML_GPU_INSTANCE_PROFILE_1_SLICE_REV2%NVML_GPU_INSTANCE_PROFILE_1_SLICE_GFX%NVML_GPU_INSTANCE_PROFILE_2_SLICE_GFX%NVML_GPU_INSTANCE_PROFILE_4_SLICE_GFXNVML_GPU_INSTANCE_PROFILE_COUNTr  r  r  r  r  r  r  %NVML_COMPUTE_INSTANCE_PROFILE_1_SLICE%NVML_COMPUTE_INSTANCE_PROFILE_2_SLICE%NVML_COMPUTE_INSTANCE_PROFILE_3_SLICE%NVML_COMPUTE_INSTANCE_PROFILE_4_SLICE%NVML_COMPUTE_INSTANCE_PROFILE_7_SLICE%NVML_COMPUTE_INSTANCE_PROFILE_8_SLICE%NVML_COMPUTE_INSTANCE_PROFILE_6_SLICE*NVML_COMPUTE_INSTANCE_PROFILE_1_SLICE_REV1#NVML_COMPUTE_INSTANCE_PROFILE_COUNT+NVML_COMPUTE_INSTANCE_ENGINE_PROFILE_SHARED*NVML_COMPUTE_INSTANCE_ENGINE_PROFILE_COUNTr  r  r  r  r  r  NVML_GPU_UTILIZATION_DOMAIN_GPUNVML_GPU_UTILIZATION_DOMAIN_FBNVML_GPU_UTILIZATION_DOMAIN_VIDNVML_GPU_UTILIZATION_DOMAIN_BUSr  r  r'  NVML_THERMAL_TARGET_NONENVML_THERMAL_TARGET_GPUNVML_THERMAL_TARGET_MEMORY NVML_THERMAL_TARGET_POWER_SUPPLYNVML_THERMAL_TARGET_BOARDNVML_THERMAL_TARGET_VCD_BOARDNVML_THERMAL_TARGET_VCD_INLETNVML_THERMAL_TARGET_VCD_OUTLETNVML_THERMAL_TARGET_ALLNVML_THERMAL_TARGET_UNKNOWNNVML_THERMAL_CONTROLLER_NONE$NVML_THERMAL_CONTROLLER_GPU_INTERNALNVML_THERMAL_CONTROLLER_ADM1032NVML_THERMAL_CONTROLLER_ADT7461NVML_THERMAL_CONTROLLER_MAX6649NVML_THERMAL_CONTROLLER_MAX1617NVML_THERMAL_CONTROLLER_LM99NVML_THERMAL_CONTROLLER_LM89NVML_THERMAL_CONTROLLER_LM64NVML_THERMAL_CONTROLLER_G781NVML_THERMAL_CONTROLLER_ADT7473!NVML_THERMAL_CONTROLLER_SBMAX6649 NVML_THERMAL_CONTROLLER_VBIOSEVTNVML_THERMAL_CONTROLLER_OS'NVML_THERMAL_CONTROLLER_NVSYSCON_CANOAS%NVML_THERMAL_CONTROLLER_NVSYSCON_E551 NVML_THERMAL_CONTROLLER_MAX6649R NVML_THERMAL_CONTROLLER_ADT7473SNVML_THERMAL_CONTROLLER_UNKNOWNr  r%  r,  NVML_THERMAL_COOLER_SIGNAL_NONE!NVML_THERMAL_COOLER_SIGNAL_TOGGLE#NVML_THERMAL_COOLER_SIGNAL_VARIABLE NVML_THERMAL_COOLER_SIGNAL_COUNTr-  NVML_THERMAL_COOLER_TARGET_NONENVML_THERMAL_COOLER_TARGET_GPU!NVML_THERMAL_COOLER_TARGET_MEMORY'NVML_THERMAL_COOLER_TARGET_POWER_SUPPLY&NVML_THERMAL_COOLER_TARGET_GPU_RELATEDr(  r/  r.  r4  r~  r5  r8  rQ  rR  rZ  r[  r\  *NVML_CC_CEC_ATTESTATION_REPORT_NOT_PRESENT&NVML_CC_CEC_ATTESTATION_REPORT_PRESENTr>  rD  rB  rF  rI  rL  rS  r]  r  r`  r  ri  rl  rm  rp  rn  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  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  r3  r6  r:  r<  r;  r>  r?  rB  rD  rK  rN  rQ  rV  rX  rU  rZ  r[  r^  r`  rc  rh  ri  rk  ro  rr  rs  rt  rv  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/  r1  r3  r=  rB  rE  rH  rJ  rO  rS  rU  rW  r\  r`  rd  rf  rj  rl  rn  rp  rq  rw  rz  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r
  r  r  r  r  r  r  r"  r*  r-  r/  r0  r2  r3  r4  r5  r9  r=  r?  rC  rE  rG  rI  rK  rN  rP  rR  rS  rV  rY  rZ  r[  r]  r`  rb  rf  re  rh  rm  rn  rq  rr  rs  ru  rv  rx  rw  rz  r{  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  nvmlClockOffset_v1r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  NVML_GPM_METRIC_GRAPHICS_UTILNVML_GPM_METRIC_SM_UTILNVML_GPM_METRIC_SM_OCCUPANCYNVML_GPM_METRIC_INTEGER_UTILNVML_GPM_METRIC_ANY_TENSOR_UTIL NVML_GPM_METRIC_DFMA_TENSOR_UTIL NVML_GPM_METRIC_HMMA_TENSOR_UTIL NVML_GPM_METRIC_IMMA_TENSOR_UTILNVML_GPM_METRIC_DRAM_BW_UTILNVML_GPM_METRIC_FP64_UTILNVML_GPM_METRIC_FP32_UTILNVML_GPM_METRIC_FP16_UTILNVML_GPM_METRIC_PCIE_TX_PER_SECNVML_GPM_METRIC_PCIE_RX_PER_SECNVML_GPM_METRIC_NVDEC_0_UTILNVML_GPM_METRIC_NVDEC_1_UTILNVML_GPM_METRIC_NVDEC_2_UTILNVML_GPM_METRIC_NVDEC_3_UTILNVML_GPM_METRIC_NVDEC_4_UTILNVML_GPM_METRIC_NVDEC_5_UTILNVML_GPM_METRIC_NVDEC_6_UTILNVML_GPM_METRIC_NVDEC_7_UTILNVML_GPM_METRIC_NVJPG_0_UTILNVML_GPM_METRIC_NVJPG_1_UTILNVML_GPM_METRIC_NVJPG_2_UTILNVML_GPM_METRIC_NVJPG_3_UTILNVML_GPM_METRIC_NVJPG_4_UTILNVML_GPM_METRIC_NVJPG_5_UTILNVML_GPM_METRIC_NVJPG_6_UTILNVML_GPM_METRIC_NVJPG_7_UTILNVML_GPM_METRIC_NVOFA_0_UTILNVML_GPM_METRIC_NVOFA_1_UTIL'NVML_GPM_METRIC_NVLINK_TOTAL_RX_PER_SEC'NVML_GPM_METRIC_NVLINK_TOTAL_TX_PER_SEC$NVML_GPM_METRIC_NVLINK_L0_RX_PER_SEC$NVML_GPM_METRIC_NVLINK_L0_TX_PER_SEC$NVML_GPM_METRIC_NVLINK_L1_RX_PER_SEC$NVML_GPM_METRIC_NVLINK_L1_TX_PER_SEC$NVML_GPM_METRIC_NVLINK_L2_RX_PER_SEC$NVML_GPM_METRIC_NVLINK_L2_TX_PER_SEC$NVML_GPM_METRIC_NVLINK_L3_RX_PER_SEC$NVML_GPM_METRIC_NVLINK_L3_TX_PER_SEC$NVML_GPM_METRIC_NVLINK_L4_RX_PER_SEC$NVML_GPM_METRIC_NVLINK_L4_TX_PER_SEC$NVML_GPM_METRIC_NVLINK_L5_RX_PER_SEC$NVML_GPM_METRIC_NVLINK_L5_TX_PER_SEC$NVML_GPM_METRIC_NVLINK_L6_RX_PER_SEC$NVML_GPM_METRIC_NVLINK_L6_TX_PER_SEC$NVML_GPM_METRIC_NVLINK_L7_RX_PER_SEC$NVML_GPM_METRIC_NVLINK_L7_TX_PER_SEC$NVML_GPM_METRIC_NVLINK_L8_RX_PER_SEC$NVML_GPM_METRIC_NVLINK_L8_TX_PER_SEC$NVML_GPM_METRIC_NVLINK_L9_RX_PER_SEC$NVML_GPM_METRIC_NVLINK_L9_TX_PER_SEC%NVML_GPM_METRIC_NVLINK_L10_RX_PER_SEC%NVML_GPM_METRIC_NVLINK_L10_TX_PER_SEC%NVML_GPM_METRIC_NVLINK_L11_RX_PER_SEC%NVML_GPM_METRIC_NVLINK_L11_TX_PER_SEC%NVML_GPM_METRIC_NVLINK_L12_RX_PER_SEC%NVML_GPM_METRIC_NVLINK_L12_TX_PER_SEC%NVML_GPM_METRIC_NVLINK_L13_RX_PER_SEC%NVML_GPM_METRIC_NVLINK_L13_TX_PER_SEC%NVML_GPM_METRIC_NVLINK_L14_RX_PER_SEC%NVML_GPM_METRIC_NVLINK_L14_TX_PER_SEC%NVML_GPM_METRIC_NVLINK_L15_RX_PER_SEC%NVML_GPM_METRIC_NVLINK_L15_TX_PER_SEC%NVML_GPM_METRIC_NVLINK_L16_RX_PER_SEC%NVML_GPM_METRIC_NVLINK_L16_TX_PER_SEC%NVML_GPM_METRIC_NVLINK_L17_RX_PER_SEC%NVML_GPM_METRIC_NVLINK_L17_TX_PER_SECr  r  r  r  r  r
  NVML_GPM_METRICS_GET_VERSIONr  r  r  r  r  r  r  r  r  r  "NVML_NVLINK_POWER_STATE_HIGH_SPEEDNVML_NVLINK_POWER_STATE_LOW#NVML_NVLINK_LOW_POWER_THRESHOLD_MIN#NVML_NVLINK_LOW_POWER_THRESHOLD_MAX%NVML_NVLINK_LOW_POWER_THRESHOLD_RESET'NVML_NVLINK_LOW_POWER_THRESHOLD_DEFAULTr   r"  r+  r'  #NVML_GPU_FABRIC_STATE_NOT_SUPPORTED!NVML_GPU_FABRIC_STATE_NOT_STARTED!NVML_GPU_FABRIC_STATE_IN_PROGRESSNVML_GPU_FABRIC_STATE_COMPLETEDr$  5NVML_GPU_FABRIC_HEALTH_MASK_DEGRADED_BW_NOT_SUPPORTED,NVML_GPU_FABRIC_HEALTH_MASK_DEGRADED_BW_TRUE-NVML_GPU_FABRIC_HEALTH_MASK_DEGRADED_BW_FALSE-NVML_GPU_FABRIC_HEALTH_MASK_SHIFT_DEGRADED_BW-NVML_GPU_FABRIC_HEALTH_MASK_WIDTH_DEGRADED_BW8NVML_GPU_FABRIC_HEALTH_MASK_ROUTE_RECOVERY_NOT_SUPPORTED/NVML_GPU_FABRIC_HEALTH_MASK_ROUTE_RECOVERY_TRUE0NVML_GPU_FABRIC_HEALTH_MASK_ROUTE_RECOVERY_FALSE0NVML_GPU_FABRIC_HEALTH_MASK_SHIFT_ROUTE_RECOVERY0NVML_GPU_FABRIC_HEALTH_MASK_WIDTH_ROUTE_RECOVERY9NVML_GPU_FABRIC_HEALTH_MASK_ROUTE_UNHEALTHY_NOT_SUPPORTED0NVML_GPU_FABRIC_HEALTH_MASK_ROUTE_UNHEALTHY_TRUE1NVML_GPU_FABRIC_HEALTH_MASK_ROUTE_UNHEALTHY_FALSE1NVML_GPU_FABRIC_HEALTH_MASK_SHIFT_ROUTE_UNHEALTHY1NVML_GPU_FABRIC_HEALTH_MASK_WIDTH_ROUTE_UNHEALTHYANVML_GPU_FABRIC_HEALTH_MASK_ACCESS_TIMEOUT_RECOVERY_NOT_SUPPORTED8NVML_GPU_FABRIC_HEALTH_MASK_ACCESS_TIMEOUT_RECOVERY_TRUE9NVML_GPU_FABRIC_HEALTH_MASK_ACCESS_TIMEOUT_RECOVERY_FALSE9NVML_GPU_FABRIC_HEALTH_MASK_SHIFT_ACCESS_TIMEOUT_RECOVERY9NVML_GPU_FABRIC_HEALTH_MASK_WIDTH_ACCESS_TIMEOUT_RECOVERYr*  r(  r,  r/  NVML_GPU_NVLINK_BW_MODE_FULLNVML_GPU_NVLINK_BW_MODE_OFFNVML_GPU_NVLINK_BW_MODE_MINNVML_GPU_NVLINK_BW_MODE_HALF NVML_GPU_NVLINK_BW_MODE_3QUARTERNVML_GPU_NVLINK_BW_MODE_COUNTr0  r2  r6  NVML_POWER_SCOPE_GPUNVML_POWER_SCOPE_MODULENVML_POWER_SCOPE_MEMORYr3  nvmlPowerValue_v2r7  r;  rH  rI  NVML_DEV_CAP_EGMrM  rK  rO  rQ  rX  rY  r[  rh  NVML_POWER_PROFILE_MAX_PNVML_POWER_PROFILE_MAX_QNVML_POWER_PROFILE_COMPUTENVML_POWER_PROFILE_MEMORY_BOUNDNVML_POWER_PROFILE_NETWORKNVML_POWER_PROFILE_BALANCED NVML_POWER_PROFILE_LLM_INFERENCENVML_POWER_PROFILE_LLM_TRAININGNVML_POWER_PROFILE_RBMNVML_POWER_PROFILE_DCPCIENVML_POWER_PROFILE_HMMA_SPARSENVML_POWER_PROFILE_HMMA_DENSE NVML_POWER_PROFILE_SYNC_BALANCEDNVML_POWER_PROFILE_HPCNVML_POWER_PROFILE_MIGNVML_POWER_PROFILE_MAXra  r^  rg  rd  rl  ri  ro  rn  rp  rr  rt  rw  rx  rz  r|  r  r~  r  r  r  r  %NVML_POWER_SMOOTHING_MAX_NUM_PROFILES+NVML_POWER_SMOOTHING_ADMIN_OVERRIDE_NOT_SET4NVML_POWER_SMOOTHING_PROFILE_PARAM_PERCENT_TMP_FLOOR/NVML_POWER_SMOOTHING_PROFILE_PARAM_RAMP_UP_RATE1NVML_POWER_SMOOTHING_PROFILE_PARAM_RAMP_DOWN_RATE7NVML_POWER_SMOOTHING_PROFILE_PARAM_RAMP_DOWN_HYSTERESISr  r  r  r  r  r  r  r
  r
  r
  r  <module>   s@  $
-
4
			


	
	

		
		


	
	"	

												""""#
	

							
		
	
					


					