o
    پi|                    @   s6=  d dl Z d dlZd dlZd dlZd dlT d dlm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Z.dZ/dZ0dZ1eZ2d Z3dZ4dZ5dZ6dZ7dZ8dZ9d	Z:d
Z;dZ<dZ=e=Z>eZ?d Z@dZAdZBdZCdZDdZEeZFd ZGdZHdZIdZJdZKeZLd ZMdZNdZOdZPdZQdZRd	ZSeZTdZUdZVdZWdZXdZYdZZdZ[dZ\dZ]eZ^d Z_dZ`dZadZbdZceZdd ZedZfdZgdZheZid ZjdZkdZleZmd ZndZodZpeZqd ZrdZsdZteZud ZvdZwdZxdZydZzeZ{d Z|dZ}dZ~dZd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Zd Zd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Z.dZ/dZ0dZ1d	Z2d
Z3dZ4dZ5dZ6dZ7d*Z8eZ9d Z:dZ;dZ<dZ=dZ>eZ?d Z@dZAdZBeZCd ZDdZEeZFd+ZGd,ZHd-ZIeZJd ZKdZLdZMdZNdZOdZPd	ZQeZRdZSdZTdZUdZVdZWdZXdZYd
ZZeZ[d Z\dZ]e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Zxeyed0 Zzd0Z{dZ|d1Z}d2Z~d3Zed4Zed4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&Zd5ZdZd6Zd7Zd8Zd9Zd:Zd;Zd<Zd'Zd=Zd>Zd?Zd@ZdAZdBZdCZdDZdEZd(ZdFZdGZdHZdIZdJZdKZdLZdMZdNZdOZdPZdQZdRZdZdSZdTZdUZdVZdWZdXZdYZdZZd[Zd\Zd]Zd^Zd_Zd`ZdaZd.ZdbZdcZddZdeZdfZdgZdhZdiZdjZdkZdlZdmZdnZdoZdpZd/Zdq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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Zrd ZsdZtdZudZvdZwdZxdZydZzdZ{d	Z|dZ}d0Z~d
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(ZdS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.d/ d/eZe eZG d0d1 d1eZG d2d3 d3eZG d4d5 d5eZd6ZG d7d8 d8eZG d9d: d:eZG d;d< d<eZG d=d> d>eZ	G d?d@ d@eZ
e e
ZG dAdB dBeZdCZG dDdE dEeZG dFdG dGeZG dHdI dIeZdJZG dKdL dLeZG dMdN dNeZG dOdP dPeZG dQdR dReZdSZG dTdU dUeZG dVdW dWeZdZG dXdY dYeZG dZ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$d`Z%G dadb dbeZ&G dcdd ddeZ'G dedf dfeZ(G dgdh dheZ)G didj djeZ*G dkdl dle+Z,G dmdn dneZ-G dodp dpeZ.G dqdr dreZ/dZ0dsZ1G dtdu dueZ2dvZ3G dwdx dxeZ4dvZ5G dydz dzeZ6G d{d| d|eZ7d6Z8G d}d~ d~eZ9d6Z:G dd deZ;d`Z<d Z=dZ>G dd deZ?dZ@G dd deZAdZBG dd deZCG dd deZDG dd deZEdZFG dd deZGG dd deZHG dd deZId`ZJG dd deZKdZLG dd deZMd ZNdZOdZPdZQdZRdZSG dd deZTG dd deZUG dd deZVG dd deZWG dd deZXd`ZYG dd deZZG 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`G dd deZaG dd deZbG dd deZcd6ZdG dd deZee eeZfdZgdZhdZidZjdZkdZld0ZmdZndZod1ZpdZqdZrdZsdZtd ZueuegB ehB eiB ekB elB ejB emB enB eoB epB eqB erB esB etB ZvdZwdZxexZydZzdZ{dZ|dZ}dZ~dZd0Zd ZeewB exB ezB e{B e|B e}B e~B eB eB ZdZdZeZdZdZdZdZdZdZd0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Zd4Zd ZdZdZdZdZdZd	Zd
ZdZdZdZdZdZdZdZdZdZdZd4ZG dd deZG dd deZeZd ZdZdZdZeZdZd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.d/ Z&ed0d1 Z'ed2d3 Z(d4d5 Z)d6d7 Z*d8d9 Z+d:d; Z,d<d= Z-d>d? Z.d@dA Z/dBdC Z0dDdE Z1dFdG Z2dHdI Z3dJdK Z4dLdM Z5edNdO Z6edPdQ Z7edRdS Z8edTdU Z9G dVdW dWeZ:dXZ;edYdZ Z<G d[d\ d\eZ=dXZ>ed]d^ Z?d_d` Z@dadb ZAdcdd ZBdedf ZCdgdh ZDedidj ZEedkdl ZFe fdmdnZGdodp ZHdqdr ZIdsdt ZJdudv ZKdwdx ZLdydz ZMd{d| ZNed}d~ ZOedd ZPedd ZQdd ZR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 ZdG dd deZedvZfdd Zgdd Zhdd Zidd Zje e fddZke fddZldd ZmG dd deZndvZodd ZpeofddZqdd Zr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ߐ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d/d0 Zd1d2 Zd3d4 Zd5d6 Ze fd7d8Zd9d: Zd;d< Zd=d> Zd?d@ ZdAdB ZdCdD ZdEdF ZdGdH ZdIdJ ZdKdL ZdMdN ZdOdP ZdQdR ZdSdT ZdUdV ZdWdX ZdYdZ Zd[d\ Zd]d^ Zd_d` Zdadb ZÐdcdd ZĐdedf ZŐdgdh ZƐdidj Zǐdkdl ZȐdmdn Zɐdodp Zʐdqdr Zːdsdt Z̐dudv Z͐dwdx Zΐdydz 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dA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d@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)d/d0 Z*ed1d2 Z+d3d4 Z,d5d6 Z-d7d8 Z.d9d: Z/d;d< Z0dBd=d>Z1d?d@ Z2dAdB Z3dCdD Z4dEdF Z5dGdH Z6dIdJ Z7dKdL Z8dMdN Z9dOdP Z:ddQdRZ;e;Z<dSdT Z=dUdV Z>dWdX Z?dYdZ Z@d[d\ ZAd]d^ ZBd_d` ZCdadb ZD	ddcddZEeEZFdedf ZGdgdh ZHdidj ZIdkdl ZJdmdn ZKdodp ZLdqdr ZMdsdt ZNdudv ZOdwdx ZPdydz ZQd{d| ZR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e؃ fddZcdd Zde fddZee e fddZfG dd deZgd`Zhdd Zidd Zjdd Zkdd Zldd Zmen en fddZodd Zpdd Zqen en fddZr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ZdZdZdZdZd	Zd
ZdZdZdZdZdZdZdZd&Zd5ZdZd6Zd7Zd8Zd9Zd:Zd'Zd=Zd>Zd?Zd@ZdAZdBZdCZd(ZdFZdOZdPZdQZdRZdZdSZdTZdUZdVZdWZdXZdYZdZZd[Zd\Zd]Zd^Zd_Zd`ZdaZd.ZdbZdcZddZdeZdfZdgZdhZdiZdjZdkZdlZdmZdnZdoZdpZd/ZdqZdrZG dѐd3 d3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ZdZd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d6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Z.G dd deZ/dd Z0d d! Z1d"d# Z2d$d% Z3d&d' Z4d(d) Z5d*d+ Z6d6Z7G d,d- d-eZ8d.d/ Z9d0d1 Z:d2d3 Z;d4d5 Z<dZ=d*Z>d Z?dZ@dZAdZBd6ZCG d6d7 d7eZDd`ZEG d8d9 d9eZFd:d; ZGd<d= ZHd>d? ZIdS (C      N)*wraps                        	   
                               @                                          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	  \/home/ubuntu/.local/lib/python3.10/site-packages/sglang/multimodal_gen/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   

r7  c                  C   s   t jt } dd t| D }|D ]4}dt|ddddd }t| |}dd }t|t	fd	||i}t|_
t| || |t	j|< qd
S )al  
    Generates a hierarchy of classes on top of NVMLError class.

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

    NVMLError is a parent class. Each NVML_ERROR_* gets it's own subclass.
    e.g. NVML_ERROR_ALREADY_INITIALIZED will be turned into NVMLError_AlreadyInitialized
    c                 S   s   g | ]	}| d r|qS )NVML_ERROR_)
startswith).0xr	  r	  r
  
<listcomp>  s    z/_extractNVMLErrorsAsClasses.<locals>.<listcomp>
NVMLError_r8   _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	  )rA  rB  r	  r@  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_valrC  new_error_classr	  r	  r
  _extractNVMLErrorsAsClasses  s   


rS  c                 C   s   | t krt| | S r  )NVML_SUCCESSr  )retr	  r	  r
  _nvmlCheckReturn  s   rV  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!  rJ  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  )rL  )r  
dictionaryr;  r	  r	  r
  __init__=  s   znvmlFriendlyObject.__init__c                 C   s
   | j  S r  )__dict__r  r  r	  r	  r
  r  A     
znvmlFriendlyObject.__str__N)r  r  r  ra  r  r	  r	  r	  r
  r_  <  s    r_  c                 C   sH   i }| j D ]}|d }t| |}t|tr| n|||< qt|}|S Nr   )_fields_rJ  
isinstancebytesdecoder_  )structdr;  keyr  r  r	  r	  r
  nvmlStructToFriendlyObjectE  s   

rl  c                 C   sJ   |j D ]}|d }| j| }tjdkrt|||  qt||| q|S )Nr   r  )re  rb  rD  version_inforL  encode)r  modelr;  rk  r  r	  r	  r
  nvmlFriendlyObjectToStructQ  s   


rp  c                   @   r  )struct_c_nvmlUnit_tNr  r	  r	  r	  r
  rq  ^  r  rq  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, ))re  rJ  _fmt_append	__class__r  join)r  resultr;  rk  r  fmtr	  r	  r
  r  {  s   




z_PrintableStructure.__str__c                    s4   t t| |}t|trt|tr|S | S |S r  )superrr  __getattribute__rf  rg  r  rh  )r  r]  resrx  r	  r
  r}    s   

z$_PrintableStructure.__getattribute__c                    s(   t |tr	| }tt| || d S r  )rf  r  rn  r|  rr  __setattr__)r  r]  r  r  r	  r
  r    s   
z_PrintableStructure.__setattr__)	r  r  r  __doc__rv  r  r}  r  __classcell__r	  r	  r  r
  rr  e  s    rr  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_charre  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_uintre  r	  r	  r	  r
  r    s    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_tre  r	  r	  r	  r
  r    s    
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  re  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_tre  r	  r	  r	  r
  r        r  c                   @   r  )c_nvmlUnitFanSpeeds_tfansr    countN)r  r  r  r  r  re  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_SIZEre  rv  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  re  rv  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  re  rv  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_SIZEre  r	  r	  r	  r
  r        
r  iT  c                   @   r  )c_nvmlExcludedDeviceInfo_tpciuuidN)r  r  r  r  r  NVML_DEVICE_UUID_BUFFER_SIZEre  r	  r	  r	  r
  r  #  r  r  c                   @   r  )nvmlNvLinkUtilizationControl_tunits	pktfilterN)r  r  r  "_nvmlNvLinkUtilizationCountUnits_t%_nvmlNvLinkUtilizationCountPktTypes_tre  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usedrs  %d BNr  r  r  c_ulonglongre  rv  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  rs  r  Nr  r  r  r  r  re  rv  r	  r	  r	  r
  r  7      r  i(  c                   @   r  )c_nvmlBAR1Memory_t	bar1Totalbar1Freebar1Usedrs  r  Nr  r	  r	  r	  r
  r  E  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  N      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_DOMAINSre  r	  r	  r	  r
  r  U  
    
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  re  r	  r	  r	  r
  r  |      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  re  rv  r	  r	  r	  r
  r    s    
r  i  c                   @   r  )c_nvmlBridgeChipInfo_trK  	fwVersionN)r  r  r  _nvmlBridgeChipType_tr  re  r	  r	  r	  r
  r    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  re  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_nvmlEccErrorCounts_tl1Cachel2CachedeviceMemoryregisterFileNr  r  r  r  re  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memoryrs  z%d %%N)r  r  r  r  re  rv  r	  r	  r	  r
  r    s
    r  c                   @   r  )c_nvmlHwbcEntry_thwbcIdr  r   N)r  r  r  r  r  re  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_ushortre  r	  r	  r	  r
  r	        r	  c                   @   r  )c_nvmlSample_t	timeStampsampleValueN)r  r  r  r  r	  re  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	  re  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(  ra  nvmlNvlinkSupportedBwModes_v1r  r  r	  r
  ra       

z*c_nvmlNvlinkSupportedBwModes_v1_t.__init__)	r  r  r  r  c_uint8$NVML_NVLINK_TOTAL_SUPPORTED_BW_MODESre  ra  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  ra  nvmlNvlinkGetBwMode_v1r  r  r	  r
  ra       z#c_nvmlNvlinkGetBwMode_v1_t.__init__r  r  r  r  r/  re  ra  r  r	  r	  r  r
  r2        r2  c                       r1  )c_nvmlNvlinkSetBwMode_v1_tr  bSetBestr4  c                    r+  r,  )r|  r9  ra  nvmlNvlinkSetBwMode_v1r  r  r	  r
  ra    r6  z#c_nvmlNvlinkSetBwMode_v1_t.__init__r7  r	  r	  r  r
  r9    r8  r9  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  re  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  rA  r  NrB  r	  r	  r	  r
  rD  +  s    
rD  i   c                   @   r  )c_nvmlVgpuTypeBar1Info_v1_tr  bar1SizeNr  r	  r	  r	  r
  rE  8  r  rE  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	  re  r	  r	  r	  r
  rG  B      rG  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  rH  rI  rJ  rK  rL  jpgUtilofaUtilN)r  r  r  r  rM  r	  re  r	  r	  r	  r
  rO  M      rO  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  rO  re  r	  r	  r	  r
  rS  Z      
rS  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_trH  r  processNamer  rI  rJ  rK  rL  N)	r  r  r  rM  r  r  NVML_VGPU_NAME_BUFFER_SIZEr  re  r	  r	  r	  r
  rY  g  s    
rY  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_trZ  r  rH  r  rI  rJ  rK  rL  rP  rQ  N)	r  r  r  r  r[  r  rM  r  re  r	  r	  r	  r
  r\  t  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  vgpuProcessCountrV  vgpuProcUtilArrayN)r  r  r  r  r  r  r\  re  r	  r	  r	  r
  r^    rC  r^  c                   @   r  )nvmlVgpuRuntimeState_v1_tr  sizeNr  r	  r	  r	  r
  ra    r  ra  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/  re  r	  r	  r	  r
  rd    r  rd  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/  rd  r  re  r	  r	  r	  r
  ro    
    ro  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  rH  	codecTypehResolutionvResolution
averageFpsencodeLatencyNr  r  r  r  rM  re  r	  r	  r	  r
  rt    rR  rt  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  rI  rJ  rK  rL  Nr  r	  r	  r	  r
  r|    rN  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  rI  rJ  rK  rL  rP  rQ  Nr  r  r  r  r  re  r	  r	  r	  r
  r}    rR  r}  c                   @   r]  )#c_nvmlProcessesUtilizationInfo_v1_tr  processSamplesCountrV  procUtilArrayN)r  r  r  r  r  r  r}  re  r	  r	  r	  r
  r    rC  r  c                   @   rc  )	c_nvmlGridLicenseExpiry_tre  rf  rg  rh  ri  rj  rk  Nrl  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featureEnabledrq  N)	r  r  r  _nvmlGridLicenseFeatureCode_tr  r  NVML_GRID_LICENSE_BUFFER_SIZEr  re  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_COUNTre  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  re  r	  r	  r	  r
  r    s    

r  c                   @   r  )!c_nvmlGridLicensableFeatures_v3_tr  r  r  N)r  r  r  r  r  r  r  re  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        

r  c                   @   r  )!c_nvmlGridLicensableFeatures_v2_tr  r  r  N)r  r  r  r  r  r  r  re  r	  r	  r	  r
  r  &  r  r  c                   @   r  )c_nvmlGridLicensableFeature_tr  r  r  Nr  r	  r	  r	  r
  r  1  r  r  c                   @   r  )c_nvmlGridLicensableFeatures_tr  r  r  N)r  r  r  r  r  r  r  re  r	  r	  r	  r
  r  9  r  r  c                   @   r  )c_nvmlMarginTemperature_v1_tr  marginTemperatureN)r  r  r  r  r  re  r	  r	  r	  r
  r  D  r  r  c                   @   r  )struct_c_nvmlEventSet_tNr  r	  r	  r	  r
  r  O  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  re  rv  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d fgZd	S )
c_nvmlAccountingStats_tgpuUtilizationmemoryUtilizationmaxMemoryUsagetime	startTime	isRunningr  r	   Nr  r	  r	  r	  r
  r    s    
r  c                   @   r  )c_nvmlVgpuVersion_t
minVersion
maxVersionNr  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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_SIZEre  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_SIZEre  r	  r	  r	  r
  r    s    


r  c                   @   r  )c_nvmlVgpuPgpuCompatibility_tvgpuVmCompatibilitycompatibilityLimitCodeN)r  r  r  _nvmlVgpuVmCompatibility_t%_nvmlVgpuPgpuCompatibilityLimitCode_tre  r	  r	  r	  r
  r    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  c                   @   r  )c_nvmlVgpuSchedulerParams_tvgpuSchedDataWithARRvgpuSchedDataN)r  r  r  r  r  re  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  	  rN  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_ENTRIESre  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  re  r	  r	  r	  r
  r  $	  rs  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  3	  r  r  c                   @   r  )c_nvmlVgpuSchedulerSetParams_tr  r  N)r  r  r  r  r  re  r	  r	  r	  r
  r  9	  r  r  c                   @   r  )c_nvmlVgpuSchedulerSetState_tr  enableARRModer  N)r  r  r  r  r  re  r	  r	  r	  r
  r  @	  rs  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_COUNTre  r	  r	  r	  r
  r  H	  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  U	  rs  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_tru  r  rH  displayOrdinalsessionTypesessionFlagshMaxResolutionvMaxResolutionrw  rx  r  r  Nr{  r	  r	  r	  r
  r  ]	  s    r  c                   @   r  )c_nvmlGpuInstancePlacement_tstartrb  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   ra  nvmlGpuInstanceProfileInfo_v2r  r  r	  r
  ra  	  r.  z*c_nvmlGpuInstanceProfileInfo_v2_t.__init__)
r  r  r  r  r  r  NVML_DEVICE_NAME_V2_BUFFER_SIZEre  ra  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  re  r	  r	  r	  r
  r  	  r  r  c                   @   r  )struct_c_nvmlGpuInstance_tNr  r	  r	  r	  r
  r  	  r  r  c                   @   r  ) c_nvmlComputeInstancePlacement_tr  rb  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  	      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  ra  !nvmlComputeInstanceProfileInfo_v2r  r  r	  r
  ra  	  r.  z.c_nvmlComputeInstanceProfileInfo_v2_t.__init__)	r  r  r  r  r  r  re  ra  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defgZdS )c_nvmlComputeInstanceInfo_tr  gpuInstancer  r  r  N)r  r  r  r  c_nvmlGpuInstance_tr  r  re  r	  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_nvmlGpuDynamicPstatesUtilization_t
bIsPresentr   
percentageincThresholddecThresholdNr  r	  r	  r	  r
  r  
  s    r  c                   @   r  )c_nvmlGpuDynamicPstatesInfo_tflagsutilizationN)r  r  r  r  r  NVML_MAX_GPU_UTILIZATIONSre  r	  r	  r	  r
  r  
  s    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  re  r	  r	  r	  r
  r  <
  r  r  c                   @   r  )c_nvmlGpuThermalSettings_tr  sensorN)r  r  r  r  r   NVML_MAX_THERMAL_SENSORS_PER_GPUre  r	  r	  r	  r
  r$  F
  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_tre  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^  byrefrV  r)  r*  )handlec_coolerInfofnrU  r	  r	  r
  r-  k
  s   r-  c                   @   r  )struct_c_nvmlComputeInstance_tNr  r	  r	  r	  r
  r3  u
  r  r3  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
  r4  |
  r  r4  c                   @   r  ) c_nvmlRowRemapperHistogramValuesmaxhighpartiallownoneNr  r	  r	  r	  r
  r7  
  r  r7  i   c                   @   r  )c_nvmlConfComputeSystemState_tenvironment	ccFeaturedevToolsModeNr  r	  r	  r	  r
  r=  
  rs  r=  i  c                       s>   e Zd ZdefdefdefdefdefgZ fddZ  ZS )$c_nvmlSystemConfComputeSettings_v1_tr  r>  r?  r@  multiGpuModec                    r+  r,  )r|  rA  ra   nvmlSystemConfComputeSettings_v1r  r  r	  r
  ra  
  r.  z-c_nvmlSystemConfComputeSettings_v1_t.__init__r  r  r  r  re  ra  r  r	  r	  r  r
  rA  
  s    rA  c                   @   r  )c_nvmlConfComputeSystemCaps_tcpuCapsgpusCapsNr  r	  r	  r	  r
  rE  
  r  rE  c                   @   r  )c_nvmlConfComputeMemSizeInfo_tprotectedMemSizeKibunprotectedMemSizeKibNr  r	  r	  r	  r
  rH  
  r  rH  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_SIZEre  r	  r	  r	  r
  rK  
  r  rK  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_SIZEre  r	  r	  r	  r
  rR  
  s    


rR  c                   @   r  ).c_nvmlConfComputeSetKeyRotationThresholdInfo_tr  maxAttackerAdvantageNr  r  r  r  r  re  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	  )rf  r  rn  )r:  argr	  r	  r
  r<  
  s   " z4convertStrBytes.<locals>.wrapper.<locals>.<listcomp>)rf  rg  r  rh  )argskwargsr~  funcr	  r
  wrapper
  s   

z convertStrBytes.<locals>.wrapperr  )r   rD  rm  re  rf  r	  rd  r
  convertStrBytes
  s
   

rh  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  )rb  rc  rd  r	  r
  rf    s   z'throwOnVersionMismatch.<locals>.wrapperr   rg  r	  rd  r
  throwOnVersionMismatch  s   rk  c                 C   s:   t   td}|| }t| t  td7 at  d S )NnvmlInitWithFlagsr   )_LoadNvmlLibraryr^  rV  rX  rY  _nvmlLib_refcountr[  )r  r2  rU  r	  r	  r
  rl    s   rl  c                   C   s   t d d S rd  )rl  r	  r	  r	  r
  nvmlInit.  s   ro  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)rZ  rX  rY  rD  platformCDLLospathry  getenvOSErrorrV  r,  r[  )oser	  r	  r
  rm  3  sH   


rm  c                  C   s:   t d} |  }t| t  dtk rtd8 at  d S )NnvmlShutdownr   r   )r^  rV  rX  rY  rn  r[  )r2  rU  r	  r	  r
  rz  `  s   rz  c                 C   s   t d}t|_|| }|S )Nr  )r^  c_char_prestype)rz  r2  rU  r	  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  rV  r  	c_versionr2  rU  r	  r	  r
  r~  {  
   r~  c                  C   (   t  } td}|t| }t| | jS )NnvmlSystemGetCudaDriverVersionr  r^  r/  rV  r  c_cuda_versionr2  rU  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  rV  r  )r  c_namer2  rU  r	  r	  r
  r    s
   r  c                  C   r}  )NnvmlSystemGetDriverVersion)r  r  r^  r  rV  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^  r/  rT  r'  r  r  r  rV  )c_counthicsr2  rU  	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^  r/  r  r  rV  )c_branchInfor2  rU  r	  r	  r
  r    s   r  c                  C   r  )NnvmlUnitGetCountr  r^  r/  rV  r  r  r2  rU  r	  r	  r
  r    r  r  c                 C   0   t | }t }td}||t|}t| |S )NnvmlUnitGetHandleByIndex)r  c_nvmlUnit_tr^  r/  rV  )r(  c_indexunitr2  rU  r	  r	  r
  r       r  c                 C   (   t  }td}|| t|}t| |S )NnvmlUnitGetUnitInfo)r  r^  r/  rV  r  c_infor2  rU  r	  r	  r
  r    
   r  c                 C   r  )NnvmlUnitGetLedState)r  r^  r/  rV  )r  c_stater2  rU  r	  r	  r
  r    r  r  c                 C   r  )NnvmlUnitGetPsuInfo)r  r^  r/  rV  r  r	  r	  r
  r    r  r  c                 C   s0   t  }td}|| t |t|}t| |jS )NnvmlUnitGetTemperaturer  )r  rK  c_tempr2  rU  r	  r	  r
  r    
   r  c                 C   r  )NnvmlUnitGetFanSpeedInfo)r  r^  r/  rV  )r  c_speedsr2  rU  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^  r/  r'  rT  rV  r  )r  r  r2  rU  r	  r	  r
  nvmlUnitGetDeviceCount  s   r  c                 C   s@   t t| }t|j }| }td}|| t||}t| |S )Nr  )r  r  r  r  r^  r/  rV  )r  r  device_array	c_devicesr2  rU  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^  r/  rV  )r(  r  r  r2  rU  r	  r	  r
  nvmlDeviceGetHandleByIndex!  r  r  c                 C   r  )NnvmlDeviceGetHandleBySerialr{  r  r^  r/  rV  )r  c_serialr  r2  rU  r	  r	  r
  r  *     r  c                 C   r  )NnvmlDeviceGetHandleByUUIDr  )r  c_uuidr  r2  rU  r	  r	  r
  r  4  r  r  c                 C   r  )N nvmlDeviceGetHandleByPciBusId_v2r  )pciBusIdc_busIdr  r2  rU  r	  r	  r
  nvmlDeviceGetHandleByPciBusId>  r  r  c                 C   .   t t}td}|| |tt}t| |jS )NnvmlDeviceGetName)r  r  r^  r  rV  r  )r0  r  r2  rU  r	  r	  r
  r  H  
   r  c                   @   r  )c_nvmlDevicePerfModes_v1_tr  r  Nr  r  r  r  r  NVML_PERF_MODES_BUFFER_SIZEre  r	  r	  r	  r
  r  Q  r  r  i c                 C   0   t  }t|_td}|| t|}t| |jS )NnvmlDeviceGetPerformanceModes)r  nvmlDevicePerfModes_v1r  r^  r/  rV  r  )r0  	perfModesr2  rU  r	  r	  r
  r  [     r  c                   @   r  )"c_nvmlDeviceCurrentClockFreqs_v1_tr  r  Nr  r	  r	  r	  r
  r  e  r  r  c                 C   r  )NnvmlDeviceGetCurrentClockFreqs)r  nvmlDeviceCurrentClockFreqs_v1r  r^  r/  rV  r  )r0  currentClockFreqsr2  rU  r	  r	  r
  r  o  r  r  c                 C   *   t  }td}|| t|}t| |jS )NnvmlDeviceGetBoardIdr  )r0  c_idr2  rU  r	  r	  r
  r  y  
   r  c                 C   r  )NnvmlDeviceGetMultiGpuBoardr  )r0  
c_multiGpur2  rU  r	  r	  r
  r    r  r  c                 C   r  )NnvmlDeviceGetBrand)_nvmlBrandType_tr^  r/  rV  r  )r0  c_typer2  rU  r	  r	  r
  r    r  r  c                 C   r  )NnvmlDeviceGetC2cModeInfoV)r  r^  r/  rV  r0  r  r2  rU  r	  r	  r
  nvmlDeviceGetC2cModeInfoV1  r  r  c                 C      t | S r  )r  r0  r	  r	  r
  r       r  c                 C   r  )NnvmlDeviceGetBoardPartNumber)r  #NVML_DEVICE_PART_NUMBER_BUFFER_SIZEr^  r  rV  r  )r0  c_part_numberr2  rU  r	  r	  r
  r    r  r  c                 C   r  )NnvmlDeviceGetSerial)r  NVML_DEVICE_SERIAL_BUFFER_SIZEr^  r  rV  r  )r0  r  r2  rU  r	  r	  r
  r    r  r  c                 C   sD   t |tu}|r
|nt|}td}|| |}|r|S t| |jS )NnvmlDeviceGetModuleId)rK  r  r/  r^  rV  r  )r0  moduleIdisReferencemoduleIdRefr2  rU  r	  r	  r
  r    s   
r  c                 C   8   t | }| }td}|| |t|t|}t| |S )NnvmlDeviceGetMemoryAffinityr  r^  r/  _nvmlAffinityScope_trV  )r0  nodeSetSizescopeaffinity_array
c_affinityr2  rU  r	  r	  r
  r       r  c                 C   r  )N#nvmlDeviceGetCpuAffinityWithinScoper  )r0  
cpuSetSizer  r  r  r2  rU  r	  r	  r
  r    r  r  c                 C   s2   t | }| }td}|| |t|}t| |S )NnvmlDeviceGetCpuAffinity)r  r^  r/  rV  )r0  r  r  r  r2  rU  r	  r	  r
  r       r  c                 C      t d}|| }t| d S )NnvmlDeviceSetCpuAffinityr^  rV  r0  r2  rU  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  r/  rV  r  )r0  r2  noderU  r	  r	  r
  r    
   r  c                 C   r  )NnvmlDeviceGetMinorNumberr  )r0  c_minor_numberr2  rU  r	  r	  r
  r    r  r  c                 C   r  )NnvmlDeviceGetUUID)r  NVML_DEVICE_UUID_V2_BUFFER_SIZEr^  r  rV  r  )r0  r  r2  rU  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  rV  r  )r0  infoRomObjectr  r2  rU  r	  r	  r
  r    s   r  c                 C   r  )N nvmlDeviceGetInforomImageVersion)r  r  r^  r  rV  r  r0  r  r2  rU  r	  r	  r
  r    r  r  c                 C   r  )N)nvmlDeviceGetInforomConfigurationChecksumr  )r0  
c_checksumr2  rU  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^  r/  rV  r  )r0  c_timestampc_durationUsr2  rU  r	  r	  r
  r
  &     r
  c                 C   r  )NnvmlDeviceGetDisplayMode_nvmlEnableState_tr^  r/  rV  r  r0  c_moder2  rU  r	  r	  r
  r  /  r  r  c                 C   r  )NnvmlDeviceGetDisplayActiver  r  r	  r	  r
  r  7  r  r  c                 C   r  )NnvmlDeviceGetPersistenceModer  )r0  r  r2  rU  r	  r	  r
  r  ?  r  r  c                 C      t d}|| |}t| d S )NnvmlDeviceGetPciInfoExtr  r  r	  r	  r
  r  G     
r  c                 C   r  )NnvmlDeviceGetPciInfo_v3r  r^  r/  rV  r  r	  r	  r
  r  N  r  r  c                 C   r  r  )r  r  r	  r	  r
  nvmlDeviceGetPciInfoV  r  r  c                 C   0   t  }td}|| t|t|}t| |jS )NnvmlDeviceGetClockInfor  r^  _nvmlClockType_tr/  rV  r  r0  rK  c_clockr2  rU  r	  r	  r
  r  Z  r  r  c                 C   r  )NnvmlDeviceGetMaxClockInfor  r  r	  r	  r
  r!  c  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#  t  r  r#  c                 C   6   t  }td}|| t|t|t|}t| |jS )NnvmlDeviceGetClock)r  r^  r  _nvmlClockId_tr/  rV  r  )r0  rK  r  r   r2  rU  r	  r	  r
  r%  |  s
   r%  c                 C   r  )N%nvmlDeviceGetDefaultApplicationsClockr  r  r	  r	  r
  r'    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^  r/  rT  r'  r  rV  rangerw  r  )r0  r  r2  rU  clocks_arrayc_clocksprocsir	  r	  r
  r(    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)  )	r0  memoryClockMHzr  r2  rU  r+  r,  r-  r.  r	  r	  r
  r/    s   
r/  c                 C   r  )NnvmlDeviceGetFanSpeedr  )r0  c_speedr2  rU  r	  r	  r
  r1    r  r1  c                 C   ,   t  }td}|| |t|}t| |jS )NnvmlDeviceGetFanSpeed_v2r  r0  fanr2  r2  rU  r	  r	  r
  r4    
   r4  c                   @   r  )c_nvmlFanSpeedInfo_tr  r6  r  Nr  r	  r	  r	  r
  r8    rs  r8  c                 C   s6   t  }d|_t|_td}|| t|}t| |jS )Nr   nvmlDeviceGetFanSpeedRPM)r8  r6  nvmlFanSpeedInfo_v1r  r^  r/  rV  r  )r0  
c_fanSpeedr2  rU  r	  r	  r
  r9    s   r9  c                 C   r3  )NnvmlDeviceGetTargetFanSpeedr  r5  r	  r	  r
  r<    r7  r<  c                 C   r  )NnvmlDeviceGetNumFansr  )r  	c_numFansr2  rU  r	  r	  r
  r=    r  r=  c                 C      t d}|| |}t| tS )NnvmlDeviceSetDefaultFanSpeed_v2r^  rV  rT  )r0  r(  r2  rU  r	  r	  r
  r@    r  r@  c                 C   sh   t |tupt |tu}|r|nt|}|r|nt|}td}|| ||}t| |r.tS |j|jgS )NnvmlDeviceGetMinMaxFanSpeedrK  r  r/  r^  rV  rT  r  )r0  minSpeedmaxSpeedr  minSpeedRefmaxSpeedRefr2  rU  r	  r	  r
  rB       rB  c                 C   sF   t |tu}|r
|nt|}td}|| ||}t| |r tS |jS )N nvmlDeviceGetFanControlPolicy_v2rC  )r0  r6  fanControlPolicyr  fanControlPolicyRefr2  rU  r	  r	  r
  rI    s   rI  c                 C   s$   t d}|| |t|}t| tS )NnvmlDeviceSetFanControlPolicy)r^  _nvmlFanControlPolicy_trV  rT  )r0  r6  rJ  r2  rU  r	  r	  r
  rL       rL  c                   @   rn  )c_nvmlTemperature_v1_tr  
sensorTypetemperatureN)r  r  r  r  _nvmlTemperatureSensors_tr  re  r	  r	  r	  r
  rO    rs  rO  c                 C   s:   t  }t|_t||_td}|| t|}t| |jS )NnvmlDeviceGetTemperatureV)	rO  nvmlTemperature_v1r  rR  rP  r^  r/  rV  rQ  r0  r%  r  r2  rU  r	  r	  r
  nvmlDeviceGetTemperatureV1(  s   
rV  c                 C   s   |t kr	t| |S ttr  )rT  rV  r  $NVML_ERROR_ARGUMENT_VERSION_MISMATCH)r0  r%  r  r	  r	  r
  rS  2  s   
rS  c                 C   r  )NnvmlDeviceGetTemperature)r  r^  rR  r/  rV  r  rU  r	  r	  r
  rX  :  r  rX  c                 C   r  )N!nvmlDeviceGetTemperatureThreshold)r  r^  _nvmlTemperatureThresholds_tr/  rV  r  )r0  	thresholdr  r2  rU  r	  r	  r
  rY  B  r  rY  c                 C   s4   t  }||_td}|| t|t|}t| d S )N!nvmlDeviceSetTemperatureThreshold)r  r  r^  rZ  r/  rV  )r0  r[  tempr  r2  rU  r	  r	  r
  r\  J  s   r\  c                 C   r  )NnvmlDeviceGetMarginTemperature)r  nvmlMarginTemperature_v1r  r^  r/  rV  r  )r0  c_marginTempInfor2  rU  r	  r	  r
  r^  S  s   r^  c                 C   r  )NnvmlDeviceGetPowerState_nvmlPstates_tr^  r/  rV  r  r0  c_pstater2  rU  r	  r	  r
  ra  ]  r  ra  c                 C   r  )NnvmlDeviceGetPerformanceStaterb  rd  r	  r	  r
  rf  e  r  rf  c                 C   r  )N nvmlDeviceGetPowerManagementModer  )r0  
c_pcapModer2  rU  r	  r	  r
  rg  m  r  rg  c                 C   r  )N!nvmlDeviceGetPowerManagementLimitr  r0  c_limitr2  rU  r	  r	  r
  ri  u  r  ri  c                 C   <   t  }t  }td}|| t|t|}t| |j|jgS )N,nvmlDeviceGetPowerManagementLimitConstraintsr  )r0  
c_minLimit
c_maxLimitr2  rU  r	  r	  r
  rm  ~  r  rm  c                 C   r  )N(nvmlDeviceGetPowerManagementDefaultLimitr  rj  r	  r	  r
  rp    r  rp  c                 C   r  )NnvmlDeviceGetEnforcedPowerLimitr  rj  r	  r	  r
  rq    r  rq  c                 C   r  )NnvmlDeviceGetPowerUsager  )r0  c_wattsr2  rU  r	  r	  r
  rr    r  rr  c                 C   r  )N#nvmlDeviceGetTotalEnergyConsumption)c_uint64r^  r/  rV  r  )r0  c_millijoulesr2  rU  r	  r	  r
  rt    r  rt  c                 C   rl  )NnvmlDeviceGetGpuOperationMode)_nvmlGpuOperationMode_tr^  r/  rV  r  r0  c_currStatec_pendingStater2  rU  r	  r	  r
  rw    r  rw  c                 C      t | d S rd  rw  r  r	  r	  r
  $nvmlDeviceGetCurrentGpuOperationMode  r  r~  c                 C   r|  Nr   r}  r  r	  r	  r
  $nvmlDeviceGetPendingGpuOperationMode  r  r  c                 C   sB   |s
t  }td}n
t }||_td}|| t|}t| |S )NnvmlDeviceGetMemoryInfonvmlDeviceGetMemoryInfo_v2)r  r^  r  r  r/  rV  )r0  r  c_memoryr2  rU  r	  r	  r
  r    s   
r  c                 C   r  )NnvmlDeviceGetBAR1MemoryInfo)r  r^  r/  rV  )r0  c_bar1_memoryr2  rU  r	  r	  r
  r    r  r  c                 C   r  )NnvmlDeviceGetComputeMode)_nvmlComputeMode_tr^  r/  rV  r  r  r	  r	  r
  r    r  r  c                 C   s<   t  }t  }td}|| t|t|}t| |j|jfS )N"nvmlDeviceGetCudaComputeCapabilityr  )r0  c_majorc_minorr2  rU  r	  r	  r
  r    r  r  c                 C   rl  )NnvmlDeviceGetEccModer  ry  r	  r	  r
  r    r  r  c                 C   r|  rd  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  )r0  c_defaultStater2  rU  r	  r	  r
  r    s
   r  c                 C   r$  )NnvmlDeviceGetTotalEccErrors)r  r^  _nvmlMemoryErrorType_t_nvmlEccCounterType_tr/  rV  r  )r0  	errorTypecounterTyper  r2  rU  r	  r	  r
  r    s   r  c                 C   s4   t  }td}|| t|t|t|}t| |S )NnvmlDeviceGetDetailedEccErrors)r  r^  r  r  r/  rV  )r0  r  r  c_countsr2  rU  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_tr/  rV  r  )r0  r  r  locationTyper  r2  rU  r	  r	  r
  r    s   r  c                 C   r  )NnvmlDeviceGetUtilizationRates)r  r^  r/  rV  )r0  c_utilr2  rU  r	  r	  r
  r  (  r  r  c                 C   rl  )NnvmlDeviceGetEncoderUtilizationr  r0  r  c_samplingPeriodr2  rU  r	  r	  r
  r  0  r  r  c                 C   rl  )NnvmlDeviceGetDecoderUtilizationr  r  r	  r	  r
  r  9  r  r  c                 C   rl  )NnvmlDeviceGetJpgUtilizationr  r  r	  r	  r
  r  B  r  r  c                 C   rl  )NnvmlDeviceGetOfaUtilizationr  r  r	  r	  r
  r  K  r  r  c                 C   r  )NnvmlDeviceGetPcieReplayCounterr  )r0  c_replayr2  rU  r	  r	  r
  r  T  r  r  c                 C   rl  )NnvmlDeviceGetDriverModel)_nvmlDriverModel_tr^  r/  rV  r  )r0  c_currModelc_pendingModelr2  rU  r	  r	  r
  r  \  r  r  c                 C   r|  rd  r  r  r	  r	  r
  nvmlDeviceGetCurrentDriverModelf  r  r  c                 C   r|  r  r  r  r	  r	  r
  nvmlDeviceGetPendingDriverModelk  r  r  c                 C   r  )NnvmlDeviceGetVbiosVersion)r  %NVML_DEVICE_VBIOS_VERSION_BUFFER_SIZEr^  r  rV  r  r  r	  r	  r
  r  p  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^  r/  rT  r'  r  r  rV  r*  rl  r  "NVML_VALUE_NOT_AVAILABLE_ulonglongrw  r  	r0  r  r2  rU  
proc_arrayc_procsr-  r.  r  r	  r	  r
  r  z  &   
r  c           	      C   r  )Nr   'nvmlDeviceGetComputeRunningProcesses_v3r   r	   r  r^  r/  rT  r'  r  c_nvmlProcessInfo_v3_trV  r*  rl  r  r  rw  r  r  r	  r	  r
  r    &   
r  c                 C   r  r  )r  r  r	  r	  r
  $nvmlDeviceGetComputeRunningProcesses     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    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  1  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^  r/  rT  r'  r  r  castr  r  rV  r*  r  r  r  r  rw  r  )
r0  r  r  c_processDetailListr2  rU  r  r-  r.  r  r	  r	  r
  r  T  s0   


r  c                 C   rl  )N%nvmlDeviceGetAutoBoostedClocksEnabledr  )r0  c_isEnabledc_defaultIsEnabledr2  rU  r	  r	  r
  r  z  r  r  c                 C   "   t d}|| t|}t| d S )NnvmlUnitSetLedState)r^  r  rV  )r  r  r2  rU  r	  r	  r
  r       r  c                 C   r  )NnvmlDeviceSetPersistenceModer^  r  rV  r0  r  r2  rU  r	  r	  r
  r    r  r  c                 C   r  )NnvmlDeviceSetComputeMode)r^  r  rV  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  rV  )r0  r  r2  rU  r	  r	  r
  r    r  r  c                 C   r  )NnvmlDeviceSetDriverModel)r^  r  rV  )r0  ro  r2  rU  r	  r	  r
  r    r  r  c                 C   r  )N%nvmlDeviceSetAutoBoostedClocksEnabledr  )r0  enabledr2  rU  r	  r	  r
  r    r  r  c                 C   (   t d}|| t|t|}t| d S )N,nvmlDeviceSetDefaultAutoBoostedClocksEnabled)r^  r  r  rV  )r0  r  r  r2  rU  r	  r	  r
  r       r  c                 C   (   t d}|| t|t|}t| d S )NnvmlDeviceSetGpuLockedClocksr^  r  rV  )r0  minGpuClockMHzmaxGpuClockMHzr2  rU  r	  r	  r
  r    r  r  c                 C   r  )NnvmlDeviceResetGpuLockedClocksr  r  r	  r	  r
  r    r  r  c                 C   r  )NnvmlDeviceSetMemoryLockedClocksr  )r0  minMemClockMHzmaxMemClockMHzr2  rU  r	  r	  r
  r    r  r  c                 C   r  )N!nvmlDeviceResetMemoryLockedClocksr  r  r	  r	  r
  r    r  r  c                 C   B   t |tu}|r
|nt|}td}|| |}t| |rtS |S )NnvmlDeviceGetClkMonStatus)rK  r  r/  r^  rV  rT  )r0  c_clkMonInfor  c_clkMonInfoRefr2  rU  r	  r	  r
  r    s   
r  c                 C   r  )NnvmlDeviceSetApplicationsClocksr  )r0  r  maxGraphicsClockMHzr2  rU  r	  r	  r
  r    r  r  c                 C   r  )N!nvmlDeviceResetApplicationsClocksr  r  r	  r	  r
  r    r  r  c                 C   r  )N!nvmlDeviceSetPowerManagementLimitr  )r0  limitr2  rU  r	  r	  r
  r    r  r  c                 C   r  )NnvmlDeviceSetGpuOperationMode)r^  rx  rV  r  r	  r	  r
  r    r  r  c                  C   s&   t d} t }| t|}t| |S )NnvmlEventSetCreate)r^  c_nvmlEventSet_tr/  rV  )r2  eventSetrU  r	  r	  r
  r    s
   r  c                 C   s$   t d}|| t||}t| d S )NnvmlDeviceRegisterEvents)r^  r  rV  )r0  
eventTypesr  r2  rU  r	  r	  r
  r    rN  r  c                 C   r  )N nvmlDeviceGetSupportedEventTypesr  r^  r/  rV  r  )r0  c_eventTypesr2  rU  r	  r	  r
  r    r  r  c                 C   s.   t d}t }|| t|t|}t| |S )NnvmlEventSetWait_v2)r^  r  r/  r  rV  )r  	timeoutmsr2  datarU  r	  r	  r
  r    s
   r  c                 C   s
   t | |S r  )r  )r  r  r	  r	  r
  nvmlEventSetWait'  rc  r  c                 C   r  )NnvmlEventSetFreer  )r  r2  rU  r	  r	  r
  r  ,  r  r  c                 C   s0   t d}t }|| |t|}t| |jdkS )NnvmlDeviceOnSameBoardr   r  )handle1handle2r2  onSameBoardrU  r	  r	  r
  r  4  s
   
r  c                 C   r  )N#nvmlDeviceGetCurrPcieLinkGenerationr^  r  r/  rV  r  r0  r2  genrU  r	  r	  r
  r  =  r  r  c                 C   r  )N"nvmlDeviceGetMaxPcieLinkGenerationr  r  r	  r	  r
  r  F  r  r  c                 C   r  )NnvmlDeviceGetCurrPcieLinkWidthr  r0  r2  widthrU  r	  r	  r
  r  O  r  r  c                 C   r  )NnvmlDeviceGetMaxPcieLinkWidthr  r  r	  r	  r
  r  X  r  r  c                 C   r  )N%nvmlDeviceGetGpuMaxPcieLinkGenerationr  r  r	  r	  r
  r  `  r  r  c                 C   r  )N+nvmlDeviceGetSupportedClocksThrottleReasonsr  r0  	c_reasonsr2  rU  r	  r	  r
  r  i  r  r  c                 C   r  )N(nvmlDeviceGetSupportedClocksEventReasonsr  r  r	  r	  r
  r
  q  r  r
  c                 C   r  )N)nvmlDeviceGetCurrentClocksThrottleReasonsr  r  r	  r	  r
  r  z  r  r  c                 C   r  )N&nvmlDeviceGetCurrentClocksEventReasonsr  r  r	  r	  r
  r    r  r  c                 C   r  )NnvmlDeviceGetIndexr  )r0  r2  r  rU  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  r/  rV  r  r  r  )r0  r  statsr2  rU  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^  r/  rV  listmapint)r0  r  pidsr2  rU  r	  r	  r
  r    s   r  c                 C   .   t  }td}|| t|}t| t|jS )Nr  )r  r^  r/  rV  r  r  )r0  
bufferSizer2  rU  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^  r/  rT  r'  r  r  r  rV  r  r  r  )r  sourceFilterc_sourcer  r2  rU  
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:  r.  r!  c_timesr	  r
  r<    s    z0nvmlDeviceGetRetiredPages_v2.<locals>.<listcomp>)r  r  r^  r/  rT  r'  r  r  r  rV  r*  )r  r  r  r  r2  rU  r   times_arrayr	  r$  r
  r"    s    

r"  c                 C   r  )N&nvmlDeviceGetRetiredPagesPendingStatus)r  r^  r/  rV  r  r  )r  	c_pendingr2  rU  r	  r	  r
  r'    r  r'  c                 C   s4   t  }td}|| t|t|}t| t|jS )NnvmlDeviceGetAPIRestriction)r  r^  _nvmlRestrictedAPI_tr/  rV  r  r  )r  apiTypec_permissionr2  rU  r	  r	  r
  r)    s
   
r)  c                 C   r  )NnvmlDeviceSetAPIRestriction)r^  r*  r  rV  )r0  r+  isRestrictedr2  rU  r	  r	  r
  r-  	  r  r-  c                 C   r  )NnvmlDeviceGetBridgeChipInfo)r  r^  r/  rV  )r0  bridgeHierarchyr2  rU  r	  r	  r
  r/    r  r/  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^  r/  rT  r  r  r  rV  )r  sampling_typer  c_sampling_typec_time_stampc_sample_countc_sample_value_typer2  rU  sampleArray	c_samplesr	  r	  r
  r1    s6   

r1  c                 C   2   t |}t }td}|| |t|}t| |S )NnvmlDeviceGetViolationStatus)_nvmlPerfPolicyType_tr  r^  r/  rV  )r  perfPolicyTypec_perfPolicy_type
c_violTimer2  rU  r	  r	  r
  r;  ;  s   r;  c                 C   r  )NnvmlDeviceGetPcieThroughput)r  r^  _nvmlPcieUtilCounter_tr/  rV  r  )r  counterr  r2  rU  r	  r	  r
  r@  F  r  r@  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^  r/  rT  r  r  r  rV  r  )	cpuNumberr  r2  rU  r  r  r	  r	  r
  rC  N  s   
rC  c                 C   sn   t d}td}|| |t|d }|tkrt|t|j }| }|| |t||}t| t|d|j S )Nr    nvmlDeviceGetTopologyNearestGpusrD  )r  levelr  r2  rU  r  r  r	  r	  r
  rF  _  s   
rF  c                 C   r3  )N#nvmlDeviceGetTopologyCommonAncestor)_nvmlGpuTopologyLevel_tr^  r/  rV  r  )device1device2c_levelr2  rU  r	  r	  r
  rH  q  r7  rH  c                 C   s@   t  }t  }td}|| ||t|t|}t| |j|jfS )N%nvmlDeviceGetNvLinkUtilizationCounterr  )r  linkrB  c_rxcounterc_txcounterr2  rU  r	  r	  r
  rM  y  s   rM  c                 C   s"   t d}|| |||}t| d S )N(nvmlDeviceFreezeNvLinkUtilizationCounterr  )r  rN  rB  freezer2  rU  r	  r	  r
  rQ    r  rQ  c                 C   s    t d}|| ||}t| d S )N'nvmlDeviceResetNvLinkUtilizationCounterr  )r  rN  rB  r2  rU  r	  r	  r
  rS       rS  c                 C   s(   t d}|| ||t||}t| d S )N%nvmlDeviceSetNvLinkUtilizationControlr^  r/  rV  )r  rN  rB  controlresetr2  rU  r	  r	  r
  rU    r  rU  c                 C   ,   t  }td}|| ||t|}t| |S )N%nvmlDeviceGetNvLinkUtilizationControl)r  r^  r/  rV  )r  rN  rB  	c_controlr2  rU  r	  r	  r
  rZ    
   rZ  c                 C   .   t  }td}|| ||t|}t| |jS )NnvmlDeviceGetNvLinkCapabilityr  )r  rN  
capabilityc_capResultr2  rU  r	  r	  r
  r^    
   r^  c                 C   r]  )NnvmlDeviceGetNvLinkErrorCounterr  )r  rN  rB  c_resultr2  rU  r	  r	  r
  rb    ra  rb  c                 C   r  )N"nvmlDeviceResetNvLinkErrorCountersr  )r  rN  r2  rU  r	  r	  r
  rd    r  rd  c                 C   *   t  }td}|| |t|}t| |S )N#nvmlDeviceGetNvLinkRemotePciInfo_v2r  )r  rN  c_pcir2  rU  r	  r	  r
   nvmlDeviceGetNvLinkRemotePciInfo  
   rh  c                 C   r3  )N#nvmlDeviceGetNvLinkRemoteDeviceType)_nvmlNvLinkDeviceType_tr^  r/  rV  r  )r0  rN  r  r2  rU  r	  r	  r
  rj    r7  rj  c                 C   r3  )NnvmlDeviceGetNvLinkStater  )r  rN  
c_isActiver2  rU  r	  r	  r
  rl    r7  rl  c                 C   r3  )NnvmlDeviceGetNvLinkVersionr  )r  rN  r  r2  rU  r	  r	  r
  rn    r7  rn  c                 C   s"   t d}|t| |}t| d S )NnvmlDeviceModifyDrainStater^  pointerrV  )pciInfonewStater2  rU  r	  r	  r
  ro    r  ro  c                 C   .   t  }td}|t| t|}t| |jS )NnvmlDeviceQueryDrainState)r  r^  rq  r/  rV  r  )rr  
c_newStater2  rU  r	  r	  r
  ru    ra  ru  c                 C       t d}|t| }t| d S )NnvmlDeviceRemoveGpurp  rr  r2  rU  r	  r	  r
  rx    rT  rx  c                 C   rw  )NnvmlDeviceDiscoverGpusrp  ry  r	  r	  r
  rz    rT  rz  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_int32r/  rV  r0  fieldIds
values_arrvaluesr2  r.  r  rU  r	  r	  r
  r|       r|  c              	   C   r{  )NnvmlDeviceClearFieldValuesr}  r  r	  r	  r
  r    r  r  c                 C   r  )NnvmlDeviceGetVirtualizationModer  )r0  c_virtualization_moder2  rU  r	  r	  r
  r    r  r  c                 C      t d}|| |S )NnvmlDeviceSetVirtualizationModer^  )r0  virtualization_moder2  r	  r	  r
  r       
r  c                 C   2   t d}t|_td}|| t|}t| |jS )Nr   "nvmlDeviceGetVgpuHeterogeneousMode)r<  VgpuHeterogeneousMode_v1r  r^  r/  rV  r  )r0  c_vgpuHeterogeneousModer2  rU  r	  r	  r
  r        r  c                 C   s6   t d}t|_||_td}|| t|}t| tS )Nr   "nvmlDeviceSetVgpuHeterogeneousMode)r<  r  r  r  r^  r/  rV  rT  )r0  heterogeneous_moder  r2  rU  r	  r	  r
  r  )  s   r  c                 C   r  )Nr   nvmlVgpuInstanceGetPlacementId)r=  VgpuPlacementId_v1r  r^  r/  rV  r>  )rH  c_placementr2  rU  r	  r	  r
  r  3  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^  r/  rV  rD  VgpuPlacementList_v2r  r  r  r  r?  VgpuPlacementList_v1r  rW  rA  )	r0  
vgpuTypeIdr  r  c_max_instancesr2  rU  c_vgpu_placementsc_placementsr	  r	  r
  r  <  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^  r/  rV  rD  r  r  r  r  r?  r  rA  )r0  r  r  r  r2  rU  r  r  r	  r	  r
  r  U  s"   

r  c                 C   rt  )NnvmlGetVgpuDriverCapabilities)r  r^  _nvmlVgpuDriverCapability_tr/  rV  r  )r_  r`  r2  rU  r	  r	  r
  r  k  ra  r  c                 C   r  )NnvmlDeviceGetVgpuCapabilities)r  r^  _nvmlDeviceVgpuCapability_tr/  rV  r  )r0  r_  r`  r2  rU  r	  r	  r
  r  s  r  r  c                 C   s$   t d}|| t||}t| tS )NnvmlDeviceSetVgpuCapabilities)r^  r  rV  rT  )r0  r_  r  r2  rU  r	  r	  r
  r  {  rN  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^  r/  rT  r'  _nvmlVgpuTypeId_tr  rV  r*  rw  r  r0  c_vgpu_countr2  rU  vgpu_type_ids_arrayc_vgpu_type_idsvgpusr.  r	  r	  r
  r       
r  c                 C   r  )Nr   nvmlDeviceGetCreatableVgpusr  r  r	  r	  r
  r    r  r  c                 C   ,   t d}td}|| t|}t| |jS )Nr   #nvmlVgpuTypeGetGpuInstanceProfileIdr  )r  c_profile_idr2  rU  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^  r/  rV  r  )r  c_classc_buffer_sizer2  rU  r	  r	  r
  r       r  c                 C   r  )NnvmlVgpuTypeGetNamer  )r  r  r  r2  rU  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_idr2  rU  r	  r	  r
  r    s   r  c                 C   r  )Nr   nvmlVgpuTypeGetFramebufferSizer  )r  	c_fb_sizer2  rU  r	  r	  r
  r    r  r  c                 C   r  )Nr   nvmlVgpuTypeGetNumDisplayHeadsr  )r  c_num_headsr2  rU  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_ydimr2  rU  r	  r	  r
  r    s   r  c                 C   s2   t t}tt}td}|| ||}t| |jS )NnvmlVgpuTypeGetLicense)r  r  r  r^  rV  r  )r  	c_licenser  r2  rU  r	  r	  r
  r    s   r  c                 C   r  )Nr   nvmlVgpuTypeGetFrameRateLimitr  )r  c_frl_configr2  rU  r	  r	  r
  r     r  r  c                 C   r  )Nr   nvmlVgpuTypeGetGspHeapSizer  )r  
c_gsp_heapr2  rU  r	  r	  r
  r    r  r  c                 C   r  )Nr   nvmlVgpuTypeGetFbReservationr  )r  c_fb_reservationr2  rU  r	  r	  r
  r    r  r  c                 C   .   t  }t|_td}|| t|}t| |S )N#nvmlVgpuInstanceGetRuntimeStateSize)ra  VgpuRuntimeState_v1r  r^  r/  rV  )rH  c_runtime_stater2  rU  r	  r	  r
  r       r  c                 C   s.   t d}td}|| |t|}t| |jS )Nr   r  r  )r0  r  r  r2  rU  r	  r	  r
  r  !  s
   r  c                 C   r  )Nr    nvmlVgpuTypeGetMaxInstancesPerVmr  )r  c_max_instances_per_vmr2  rU  r	  r	  r
  r  )  r  r  c                 C   s0   t d}t|_td}|| t|}t| |S )Nr   nvmlVgpuTypeGetBAR1Info)rE  VgpuTypeBar1Info_v1r  r^  r/  rV  )r  
c_bar1Infor2  rU  r	  r	  r
  r  1  r  r  c                 C   r  )Nr   nvmlDeviceGetActiveVgpus)r  r^  r/  rT  r'  rM  r  rV  r*  rw  r  )r0  r  r2  rU  vgpu_instance_arrayc_vgpu_instancesr  r.  r	  r	  r
  r  :  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^  r/  rV  r  )rH  c_vm_idr  c_vm_id_typer2  rU  r	  r	  r
  r  U  s   r  c                 C   6   t t}tt}td}|| t||}t| |jS )NnvmlVgpuInstanceGetUUIDr  r  r  r^  r/  rV  r  rH  r  r  r2  rU  r	  r	  r
  r  `  r  r  c                 C   r  )NnvmlVgpuInstanceGetMdevUUIDr  r  r	  r	  r
  r  j  r  r  c                 C   r  )N"nvmlVgpuInstanceGetVmDriverVersion)r  r  r  r^  r/  rV  r  )rH  c_driver_versionr  r2  rU  r	  r	  r
  r  t  r  r  c                 C   r  )Nr    nvmlVgpuInstanceGetLicenseStatusr  )rH  c_license_statusr2  rU  r	  r	  r
  r  ~  r  r  c                 C   s(   t d}t }|| t|}t| |S )N!nvmlVgpuInstanceGetLicenseInfo_v2)r^  ro  r/  rV  )rH  r2  c_license_inforU  r	  r	  r
  r    s
   r  c                 C   r  r  )r  )rH  r	  r	  r
  nvmlVgpuInstanceGetLicenseInfo  r  r  c                 C   r  )Nr   !nvmlVgpuInstanceGetFrameRateLimitr  )rH  c_frlr2  rU  r	  r	  r
  r    r  r  c                 C   r  )NnvmlVgpuInstanceGetEccModer  rH  r  r2  rU  r	  r	  r
  r    r  r  c                 C   r  )Nr   nvmlVgpuInstanceGetTyper  )rH  c_vgpu_typer2  rU  r	  r	  r
  r    r  r  c                 C   r  )Nr   "nvmlVgpuInstanceGetEncoderCapacityr  )rH  c_encoder_capacityr2  rU  r	  r	  r
  r    r  r  c                 C   r  )N"nvmlVgpuInstanceSetEncoderCapacityr  )rH  encoder_capacityr2  r	  r	  r
  r    r  r  c                 C   r  )Nr   nvmlVgpuInstanceGetFbUsager  )rH  
c_fb_usager2  rU  r	  r	  r
  r    r  r  c                 C   s2   t d}td}|| t|t|}t| |jS )Nr   nvmlVgpuTypeGetCapabilities)r  r^  _nvmlVgpuCapability_tr/  rV  r  )r  r_  c_cap_resultr2  rU  r	  r	  r
  r    s
   r  c                 C   r  )Nr    nvmlVgpuInstanceGetGpuInstanceIdr  )rH  r  r2  rU  r	  r	  r
  r    r  r  c                 C   s2   t t}td}|| |ttt}t| |jS )NnvmlVgpuInstanceGetGpuPciId)r  r  r^  r/  r  rV  r  )rH  c_vgpuPciIdr2  rU  r	  r	  r
  r    s   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^  r/  rT  r'  r  rG  rV  r  )	r0  r  r  r5  r7  r2  rU  r8  r9  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  rS  VgpuInstancesUtilizationInfo_v1r  r&  rT  r  rU  rV  r^  r/  rT  r'  rO  rW  rV  r  )r0  r  r5  c_vgpuUtilInfor2  rU  r8  r9  r	  r	  r
  r    s&   
r  c                 C   r]  )NnvmlDeviceGetP2PStatus)_nvmlGpuP2PStatus_tr^  r/  rV  r  )rJ  rK  p2pIndexc_p2pstatusr2  rU  r	  r	  r
  r    ra  r  c                 C   r  )N&nvmlDeviceGetGridLicensableFeatures_v4)r  r^  r/  rV  )r0  c_get_grid_licensable_featuresr2  rU  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^  rV  rT  r  )r0  r  isUserDefinedr2  rU  r	  r	  r
  r	  3  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nvmlDeviceGetGspFirmwareModerC  )r0  	isEnableddefaultModer  isEnabledRefdefaultModeRefr2  rU  r	  r	  r
  r  =  s   r  c                 C   s6   t d}t|}td}|| |t|}t| |jS )Nr   nvmlDeviceGetEncoderCapacity)r  _nvmlEncoderQueryType_tr^  r/  rV  r  )r0  encoderQueryTyper  c_encoderQuery_typer2  rU  r	  r	  r
  r  G  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^  r/  rT  r'  r  rY  rV  r  )r0  r  r  r5  r2  rU  r8  r9  r	  r	  r
  r  Q  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_  rV  r^  r/  rT  r'  r\  r`  rV  r  )r0  r  r5  c_vgpuProcUtilInfor2  rU  r8  r9  r	  r	  r
  r  k  s$   
r  c                 C   R   t d}t d}t d}td}|| t|t|t|}t| |j|j|jfS )Nr   nvmlDeviceGetEncoderStatsr  )r0  c_encoderCountc_encodeFpsc_encoderLatencyr2  rU  r	  r	  r
  r    s   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^  r/  rT  r  rt  rV  r*  rw  r  r0  c_session_countr2  rU  session_array
c_sessionssessionsr.  r	  r	  r
  r       

r  c                 C   r  )NnvmlDeviceGetFBCStatsr  r^  r/  rV  )r0  
c_fbcStatsr2  rU  r	  r	  r
  r'    r  r'  c                 C   r  )Nr   nvmlDeviceGetFBCSessions
r  r^  r/  rT  r  r  rV  r*  rw  r  r!  r	  r	  r
  r*    r&  r*  c                 C   r  )Nr   nvmlVgpuInstanceGetEncoderStatsr  )rH  r  r  r  r2  rU  r	  r	  r
  r,    s   r,  c                 C   r  )Nr   "nvmlVgpuInstanceGetEncoderSessionsr   rH  r"  r2  rU  r#  r$  r%  r.  r	  r	  r
  r-    r&  r-  c                 C   r  )NnvmlVgpuInstanceGetFBCStatsr(  )rH  r)  r2  rU  r	  r	  r
  r/    r  r/  c                 C   r  )Nr   nvmlVgpuInstanceGetFBCSessionsr+  r.  r	  r	  r
  r0    r&  r0  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^  r/  r'  r  r|  rV  r  )r0  r  r  r5  r2  rU  r8  r9  r	  r	  r
  r1    s   
r1  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  rV  r^  r/  r'  r}  r  rV  r  )r0  r  r5  c_processesUtilInfor2  rU  r8  r9  r	  r	  r
  r2  4  s    
r2  c                 C   Z   t d}t }td}|| t|t|}|tkr)|| t|t|}t| |S t|)NnvmlVgpuInstanceGetMetadatar   )r^  r  r  r/  r'  rV  r  )rH  r2  c_vgpuMetadatac_bufferSizerU  r	  r	  r
  r6  Q     r6  c                 C   r5  )NnvmlDeviceGetVgpuMetadatar   )r^  r  r  r/  r'  rV  r  )r0  r2  c_vgpuPgpuMetadatar8  rU  r	  r	  r
  r:  `  r9  r:  c                 C   s2   t d}t }|t| t|t|}t| |S )NnvmlGetVgpuCompatibility)r^  r  r/  rV  )vgpuMetadatapgpuMetadatar2  c_vgpuPgpuCompatibilityrU  r	  r	  r
  r<  o  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  r/  r'  rV  r  r  )r0  r2  c_pgpuMetadatar8  rU  r	  r	  r
  r@  w  s   
r@  c                 C   r  )NnvmlDeviceGetVgpuSchedulerLog)r  r^  r/  rV  )r0  c_vgpu_sched_logr2  rU  r	  r	  r
  rB    r  rB  c                 C   r  )NnvmlDeviceGetVgpuSchedulerState)r  r^  r/  rV  )r0  c_vgpu_sched_stater2  rU  r	  r	  r
  rD    r  rD  c                 C   r  )N&nvmlDeviceGetVgpuSchedulerCapabilities)r  r^  r/  rV  )r0  c_vgpu_sched_capsr2  rU  r	  r	  r
  rF    r  rF  c                 C   s"   t d}|| t|}t| tS )NnvmlDeviceSetVgpuSchedulerStater^  r/  rV  rT  )r0  sched_stater2  rU  r	  r	  r
  rH    r  rH  c                 C   s    t d}|t| }t| tS )NnvmlSetVgpuVersionrI  )vgpuVersionr2  rU  r	  r	  r
  rK    rT  rK  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^  r/  rV  rT  r  r  )	supportedr  r  r2  rU  r	  r	  r
  rM    s   

rM  c                 C   r  )N!nvmlVgpuInstanceGetAccountingModer  r  r	  r	  r
  rO    r  rO  c                 C   sb   t  }td}|| t|d }|tkr-|jt  }| }|| t|t|}t| ||fS t|)N!nvmlVgpuInstanceGetAccountingPids)r  r^  r/  r'  r  rV  r  )rH  
c_pidCountr2  rU  r8  
c_pidArrayr	  r	  r
  rP    s   
rP  c                 C   re  )N"nvmlVgpuInstanceGetAccountingStats)r  r^  r/  rV  )rH  r  c_accountingStatsr2  rU  r	  r	  r
  rS    ri  rS  c                 C      t d}|| }t| tS )N#nvmlVgpuInstanceClearAccountingPidsrA  )rH  r2  rU  r	  r	  r
  rV    r  rV  c                  C   r  )NnvmlGetExcludedDeviceCountr  r  r	  r	  r
  rW    r  rW  c                 C   r  )N nvmlGetExcludedDeviceInfoByIndex)r  r  r^  r/  rV  )r(  r  infor2  rU  r	  r	  r
  rX    r  rX  c                 C   r  )NnvmlDeviceGetHostVgpuMode)_nvmlHostVgpuMode_tr^  r/  rV  r  )r0  c_host_vgpu_moder2  rU  r	  r	  r
  rZ    r  rZ  c                 C   r3  )NnvmlDeviceSetMigModer  )r  r  c_activationStatusr2  rU  r	  r	  r
  r]    r7  r]  c                 C   rl  )NnvmlDeviceGetMigModer  )r  c_currentModec_pendingModer2  rU  r	  r	  r
  r_    r  r_  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-  r/  rV  )r  profiler  r  r2  rU  r	  r	  r
  rc    s   

rc  c                 C   r3  )N)nvmlDeviceGetGpuInstanceRemainingCapacityr  )r  r  r  r2  rU  r	  r	  r
  re     r7  re  c                 C   "   t d}|| |||}t| tS )N-nvmlDeviceGetGpuInstancePossiblePlacements_v2rA  )r  r  placementsRefcountRefr2  rU  r	  r	  r
  *nvmlDeviceGetGpuInstancePossiblePlacements(     rj  c                 C   re  )NnvmlDeviceCreateGpuInstancer  r^  r/  rV  )r  r  
c_instancer2  rU  r	  r	  r
  rl  1  ri  rl  c                 C   rY  )N(nvmlDeviceCreateGpuInstanceWithPlacementrm  )r  r  r  rn  r2  rU  r	  r	  r
  ro  9  r\  ro  c                 C   rU  )NnvmlGpuInstanceDestroyrA  )r  r2  rU  r	  r	  r
  rp  A  r  rp  c                 C   rf  )NnvmlDeviceGetGpuInstancesrA  )r  r  gpuInstancesRefri  r2  rU  r	  r	  r
  rq  H  r  rq  c                 C   re  )NnvmlDeviceGetGpuInstanceByIdrm  )r  r  rn  r2  rU  r	  r	  r
  rs  O  ri  rs  c                 C   r  )NnvmlGpuInstanceGetInfo)r  r^  r/  rV  )r  r  r2  rU  r	  r	  r
  rt  W  r  rt  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-  r/  rV  )r  rd  
engProfiler  r  r2  rU  r	  r	  r
  rv  _  s   

rv  c                 C   r3  )N2nvmlGpuInstanceGetComputeInstanceRemainingCapacityr  )r  r  r  r2  rU  r	  r	  r
  rx  u  r7  rx  c                 C   rf  )N3nvmlGpuInstanceGetComputeInstancePossiblePlacementsrA  )r  r  rh  ri  r2  rU  r	  r	  r
  ry  }  rk  ry  c                 C   re  )N$nvmlGpuInstanceCreateComputeInstancec_nvmlComputeInstance_tr^  r/  rV  )r  r  rn  r2  rU  r	  r	  r
  rz    ri  rz  c                 C   rY  )N1nvmlGpuInstanceCreateComputeInstanceWithPlacementr{  )r  r  r  rn  r2  rU  r	  r	  r
  r}    s
   r}  c                 C   rU  )NnvmlComputeInstanceDestroyrA  )computeInstancer2  rU  r	  r	  r
  r~    r  r~  c                 C   rf  )N"nvmlGpuInstanceGetComputeInstancesrA  )r  r  computeInstancesRefri  r2  rU  r	  r	  r
  r    rk  r  c                 C   re  )N%nvmlGpuInstanceGetComputeInstanceByIdr{  )r  r  rn  r2  rU  r	  r	  r
  r    ri  r  c                 C   r  )NnvmlComputeInstanceGetInfo_v2)r  r^  r/  rV  )r  r  r2  rU  r	  r	  r
  r    r  r  c                 C   r  r  )r  )r  r	  r	  r
  nvmlComputeInstanceGetInfo  r  r  c                 C   r  )NnvmlDeviceIsMigDeviceHandle)r  r^  r/  rV  )r  c_isMigDevicer2  rU  r	  r	  r
  r    r  r  c                 C   r  )NnvmlDeviceGetGpuInstanceIdr  )r  c_gpuInstanceIdr2  rU  r	  r	  r
  r    r  r  c                 C   r  )NnvmlDeviceGetComputeInstanceIdr  )r  c_computeInstanceIdr2  rU  r	  r	  r
  r    r  r  c                 C   r  )NnvmlDeviceGetMaxMigDeviceCountr  )r  r  r2  rU  r	  r	  r
  r    r  r  c                 C   r:  )N#nvmlDeviceGetMigDeviceHandleByIndexr  )r  r(  r  	migDevicer2  rU  r	  r	  r
  r    r  r  c                 C   r  )N,nvmlDeviceGetDeviceHandleFromMigDeviceHandle)r  r^  r/  rV  )r  r  r2  rU  r	  r	  r
  r    r  r  c                 C   r  )NnvmlDeviceGetAttributes_v2)r4  r^  r/  rV  )r  c_attrsr2  rU  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  r2  c_corrc_unc
c_bpending
c_bfailurerU  r	  r	  r
  r    s    r  c                 C   r  )N!nvmlDeviceGetRowRemapperHistogram)r7  r^  r/  rV  )r  c_valsr2  rU  r	  r	  r
  r    r  r  c                 C   r  )NnvmlDeviceGetArchitecture)_nvmlDeviceArchitecture_tr^  r/  rV  r  )r  archr2  rU  r	  r	  r
  r    r  r  c                 C   r  )NnvmlDeviceGetBusType)_nvmlBusType_tr^  r/  rV  r  )r  	c_busTyper2  rU  r	  r	  r
  r    r  r  c                 C   r  )NnvmlDeviceGetIrqNumr  )r  c_irqNumr2  rU  r	  r	  r
  r    r  r  c                 C   r  )NnvmlDeviceGetNumGpuCoresr  )r  
c_numCoresr2  rU  r	  r	  r
  r  $  r  r  c                 C   r  )NnvmlDeviceGetPowerSource)_nvmlPowerSource_tr^  r/  rV  r  )r  c_powerSourcer2  rU  r	  r	  r
  r  ,  r  r  c                 C   r  )NnvmlDeviceGetMemoryBusWidthr  )r  c_memBusWidthr2  rU  r	  r	  r
  r  4  r  r  c                 C   r  )NnvmlDeviceGetPcieLinkMaxSpeed)_nvmlPcieLinkMaxSpeed_tr^  r/  rV  r  r  r2  r2  rU  r	  r	  r
  r  <  r  r  c                 C   r  )N$nvmlDeviceGetAdaptiveClockInfoStatus)_nvmlAdaptiveClockInfoStatus_tr^  r/  rV  r  )r  c_adaptiveClockInfoStatusr2  rU  r	  r	  r
  r  D  r  r  c                 C   r  )NnvmlDeviceGetPcieSpeedr  r  r	  r	  r
  r  L  r  r  c                 C   r  )NnvmlDeviceGetDynamicPstatesInfo)rK  r  r/  r^  rV  rT  )r  c_dynamicpstatesinfor  dynamicpstatesinfoRefr2  rU  r	  r	  r
  r  T  s   
r  c                 C   s    t d}|| ||}t| tS )NnvmlDeviceSetFanSpeed_v2rA  )r0  r(  r  r2  rU  r	  r	  r
  r  b  rT  r  c                 C   sN   t |tu}|r
|nt|}td}|| ||}t| |r tS |jd d  S )NnvmlDeviceGetThermalSettings)rK  r$  r/  r^  rV  rT  r%  )r  sensorindexc_thermalsettingsr  thermalsettingsRefr2  rU  r	  r	  r
  r  i  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)rK  r  r/  r^  r  rV  rT  r  )
r  	clockTypepstateminClockMHzmaxClockMHzr  minClockMHzRefmaxClockMHzRefr2  rU  r	  r	  r
  r  t  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  rK  r  clockOffsetMHzminClockOffsetMHzmaxClockOffsetMHzN)r  r  r  r  r  rc  r  re  r	  r	  r	  r
  r    rN  r  c                 C      t d}|| |}tS )NnvmlDeviceGetClockOffsetsr^  rT  r  rY  r2  rU  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  rc  r^  rV  NVML_PSTATE_UNKNOWNrw  )	r  pstatesr  c_sizepstates_array	c_pstatesr2  rU  r  r	  r	  r
  r    s   

r  c                 C   r  )NnvmlDeviceGetGpcClkVfOffsetr  r^  r/  rV  r  r  offsetr2  rU  r	  r	  r
  r    r  r  c                 C   &   t |}td}|| |}t| tS )NnvmlDeviceSetGpcClkVfOffsetr  r^  rV  rT  r  r  c_offsetr2  rU  r	  r	  r
  r    
   
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rK  r  r/  r^  rV  rT  r  r  	minOffset	maxOffsetr  minOffsetRefmaxOffsetRefr2  rU  r	  r	  r
  r    rH  r  c                 C   r  )NnvmlDeviceGetMemClkVfOffsetr  r  r	  r	  r
  r    r  r  c                 C   r  )NnvmlDeviceSetMemClkVfOffsetr  r  r	  r	  r
  r    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^  rV  rT  )r  r  r2  rU  r	  r	  r
  r    s
   r  c                  C   r  )N&nvmlSystemGetConfComputeGpusReadyStater  r  r2  rU  r	  r	  r
  r    r  r  c                  C   &   t  } td}|t| }t| | S )N$nvmlSystemGetConfComputeCapabilities)rE  r^  r/  rV  )c_ccSysCapsr2  rU  r	  r	  r
  r    
   r  c                  C   r  )NnvmlSystemGetConfComputeState)r=  r^  r/  rV  r  r	  r	  r
  r    r  r  c                 C   s   t d}|| S )N nvmlSystemGetConfComputeSettingsr  )settingsr2  r	  r	  r
  r  	  s   r  c                 C   r?  )N*nvmlDeviceSetConfComputeUnprotectedMemSizerA  r  c_ccMemSizer2  rU  r	  r	  r
  r    r  r  c                 C   r  )N#nvmlDeviceGetConfComputeMemSizeInfo)rH  r^  r/  rV  r  r	  r	  r
  r    r  r  c                 C   r  )N,nvmlDeviceGetConfComputeProtectedMemoryUsage)r  r^  r/  rV  )r  r  r2  rU  r	  r	  r
  r    r  r  c                 C   r  )N&nvmlDeviceGetConfComputeGpuCertificate)rK  r^  r/  rV  )r  c_certr2  rU  r	  r	  r
  r  %  r  r  c                 C   sD   t  }tt| | }t|d| td}|| t|}t| |S )NrV  ,nvmlDeviceGetConfComputeGpuAttestationReport)rR  r/  r~  rL  r^  r/  rV  )r  c_noncec_attestReportc_nonce_arrr2  rU  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^  r/  rV  rT  )max_atk_advc_keyRotationThrInfor2  rU  r	  r	  r
  r  7  s   r  c                  C   s.   t d} t| _td}|t| }t| | S )Nr   0nvmlSystemGetConfComputeKeyRotationThresholdInfo)r_  )ConfComputeGetKeyRotationThresholdInfo_v1r  r^  r/  rV  )r  r2  rU  r	  r	  r
  r  A  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{  re  r	  r	  r	  r
  r    rs  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  re  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_MAXre  r	  r	  r	  r
  r  
  rX  r  c                   @   r  )c_nvmlGpmSupport_tr  isSupportedDeviceNr  r	  r	  r	  r
  r    r  r  c                 C   s    t d}|t| }t| | S )NnvmlGpmMetricsGetrV  )
metricsGetr2  rU  r	  r	  r
  r  #  rT  r  c                 C   r  )NnvmlGpmSampleFreer  	gpmSampler2  rU  r	  r	  r
  r  *  r  r  c                  C   r  )NnvmlGpmSampleAlloc)r  r^  r/  rV  r  r	  r	  r
  r  1  r  r  c                 C   s   t d}|| |}t| |S )NnvmlGpmSampleGetr  )r  r  r2  rU  r	  r	  r
  r  9  r  r  c                 C   s    t d}|| ||}t| |S )NnvmlGpmMigSampleGetr  )r  r  r  r2  rU  r	  r	  r
  r  @  rT  r  c                 C   r  )NnvmlGpmQueryDeviceSupport)r  NVML_GPM_SUPPORT_VERSIONr  r^  r/  rV  )r  
gpmSupportr2  rU  r	  r	  r
  r  G  r  r  c                 C   r  )NnvmlGpmSetStreamingEnabledr  )r  r  r  r2  rU  r	  r	  r
  r  P  r  r  c                 C   r  )NnvmlGpmQueryIfStreamingEnabledr  )r  r  r2  rU  r	  r	  r
  r  X  r  r  i  c                   @   r  )c_nvmlNvLinkPowerThres_tlowPwrThresholdNr  r	  r	  r	  r
  r  k  r  r  c                 C   s.   t  }||_td}|| t|}t| tS )N*nvmlDeviceSetNvLinkDeviceLowPowerThreshold)r  r  r^  r/  rV  rT  )r  l1thresholdr  r2  rU  r	  r	  r
  r   q  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clusterUuidrk  cliqueIdr  N)	r  r  r  r  r  r'  r$  _nvmlGpuFabricState_tre  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#  rk  r$  r  
healthMaskc                    r+  r,  )r|  r&  ra  nvmlGpuFabricInfo_v2r  r  r	  r
  ra    r6  zc_nvmlGpuFabricInfoV_t.__init__)r  r  r  r  r  NVML_GPU_FABRIC_UUID_LENr'  r$  r%  re  ra  r  r	  r	  r  r
  r&    s    
	r&  c                 C   r?  )NnvmlDeviceGetGpuFabricInforA  r  gpuFabricInfor2  rU  r	  r	  r
  r*    r  r*  c                 C   r?  )NnvmlDeviceGetGpuFabricInfoVrA  r+  r	  r	  r
  r-    r  r-  c                 C   rU  )NnvmlSystemSetNvlinkBwModerA  r  r2  rU  r	  r	  r
  r.    r  r.  c                  C   r  )NnvmlSystemGetNvlinkBwModer  r/  r	  r	  r
  r0    r  r0  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powerValueMwrs  r  N)r  r  r  r  _nvmlPowerScopeType_tre  rv  r	  r	  r	  r
  r1    r  r1  i  c                 C   sB   t |}t }t||_||_t||_td}|| t|}tS )N$nvmlDeviceSetPowerManagementLimit_v2)	r4  r1  r  r  r2  r3  r^  r/  rT  )r  r2  
powerLimitr  c_powerScopec_powerValuer2  rU  r	  r	  r
  r5    s   

r5  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|  r9  ra  nvmlEccSramErrorStatus_v1r  r  r	  r
  ra    r.  z&c_nvmlEccSramErrorStatus_v1_t.__init__)r  r  r  r  r  re  ra  r  r	  r	  r  r
  r9    s     r9  ih  c                 C   r?  )NnvmlDeviceGetSramEccErrorStatusrA  )r  rk  r2  rU  r	  r	  r
  rG    r  rG  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|  rI  ra  nvmlDeviceCapabilities_v1r  r  r	  r
  ra  '  r.  z&c_nvmlDeviceCapabilities_v1_t.__init__rD  r	  r	  r  r
  rI  !  
    rI  c                 C   r  )NnvmlDeviceGetCapabilitiesr  )r  capsr2  r	  r	  r
  rM  -  r  rM  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|  rO  ra  nvmlPlatformInfo_v1r  r  r	  r
  ra  >  r6  z c_nvmlPlatformInfo_v1_t.__init__)r  r  r  r  r  re  ra  r  r	  r	  r  r
  rO  2  s    

rO  i,  c                 C   r?  )NnvmlDeviceGetPlatformInforA  )r  platformInfor2  rU  r	  r	  r
  rW  E  r  rW  c                   @   s   e Zd Zded fgZdS )c_nvmlMask255_tmaskr   Nr  r	  r	  r	  r
  rY  L  s    
rY  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\  ra  nvmlWorkloadPowerProfileInfo_v1r  r  r	  r
  ra  o  r.  z,c_nvmlWorkloadPowerProfileInfo_v1_t.__init__r  r  r  r  rY  re  ra  r  r	  r	  r  r
  r\  g      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|  rb  ra  'nvmlWorkloadPowerProfileProfilesInfo_v1r  r  r	  r
  ra    r.  z4c_nvmlWorkloadPowerProfileProfilesInfo_v1_t.__init__)
r  r  r  r  rY  r\   NVML_WORKLOAD_POWER_MAX_PROFILESre  ra  r  r	  r	  r  r
  rb  x  s    	rb  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  rc  requestedProfilesMaskenforcedProfilesMaskc                    r+  r,  )r|  rg  ra  *nvmlWorkloadPowerProfileCurrentProfiles_v1r  r  r	  r
  ra    r.  z7c_nvmlWorkloadPowerProfileCurrentProfiles_v1_t.__init__r`  r	  r	  r  r
  rg    ra  rg  i$  c                       ,   e Zd ZdefdefgZ fddZ  ZS )0c_nvmlWorkloadPowerProfileRequestedProfiles_v1_tr  rh  c                    r+  r,  )r|  rl  ra  ,nvmlWorkloadPowerProfileRequestedProfiles_v1r  r  r	  r
  ra    r.  z9c_nvmlWorkloadPowerProfileRequestedProfiles_v1_t.__init__r`  r	  r	  r  r
  rl    rL  rl  c                 C   r?  )N-nvmlDeviceWorkloadPowerProfileGetProfilesInforA  )r  profilesInfor2  rU  r	  r	  r
  rn    r  rn  c                 C   r?  )N0nvmlDeviceWorkloadPowerProfileGetCurrentProfilesrA  )r  currentProfilesr2  rU  r	  r	  r
  rp    r  rp  c                 C   r?  )N2nvmlDeviceWorkloadPowerProfileSetRequestedProfilesrA  r  requestedProfilesr2  rU  r	  r	  r
  rr    r  rr  c                 C   r?  )N4nvmlDeviceWorkloadPowerProfileClearRequestedProfilesrA  rs  r	  r	  r
  ru    r  ru  c                 C   r?  )N#nvmlDeviceGetNvlinkSupportedBwModesrA  )r  supportedBwModesr2  rU  r	  r	  r
  rv    r  rv  c                 C   r?  )NnvmlDeviceGetNvlinkBwModerA  )r  	getBwModer2  rU  r	  r	  r
  rx    r  rx  c                 C   r?  )NnvmlDeviceSetNvlinkBwModerA  )r  	setBwModer2  rU  r	  r	  r
  rz    r  rz  c                       rk  )c_nvmlDramEncryptionInfo_tr  encryptionStatec                    r+  r,  )r|  r|  ra  nvmlDramEncryptionInfo_v1r  r  r	  r
  ra    r.  z#c_nvmlDramEncryptionInfo_t.__init__)r  r  r  r  r  re  ra  r  r	  r	  r  r
  r|    rL  r|  c                 C   rl  )NnvmlDeviceGetDramEncryptionMode)r|  r^  r/  rV  r}  ry  r	  r	  r
  r    r  r  c                 C   r|  rd  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}  r/  rV  )r0  r  r2  c_dramEncryptionModerU  r	  r	  r
  r    s   r  c                       rH  )c_nvmlPowerSmoothingState_v1_tr  r  c                    r+  r,  )r|  r  ra  nvmlPowerSmoothingState_v1r  r  r	  r
  ra    r.  z'c_nvmlPowerSmoothingState_v1_t.__init__rD  r	  r	  r  r
  r    rL  r  c                       r[  ) c_nvmlPowerSmoothingProfile_v1_tr  r  paramIdr  c                    r+  r,  )r|  r  ra  nvmlPowerSmoothingProfile_v1r  r  r	  r
  ra  &  r.  z)c_nvmlPowerSmoothingProfile_v1_t.__init__)r  r  r  r  r  re  ra  r  r	  r	  r  r
  r    ra  r  c                 C   r  )N-nvmlDevicePowerSmoothingActivatePresetProfiler  r  rd  r2  rU  r	  r	  r
  r  ,     
r  c                 C   r  )N0nvmlDevicePowerSmoothingUpdatePresetProfileParamr  r  r	  r	  r
  r  2  r  r  c                 C   r  )N nvmlDevicePowerSmoothingSetStater  )r  r  r2  rU  r	  r	  r
  r  8  r  r  r  )r   r   )NN(J  ru  rG  rD  	threadingctypes	functoolsr   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_COUNTrZ  #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_COUNTrR  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_COUNTrk  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  rc  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'  rT  r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  NVML_ERROR_IN_USEr3  NVML_ERROR_NO_DATA!NVML_ERROR_VGPU_ECC_NOT_SUPPORTED!NVML_ERROR_INSUFFICIENT_RESOURCESNVML_ERROR_FREQ_NOT_SUPPORTEDrW  NVML_ERROR_DEPRECATEDNVML_ERROR_NOT_READYNVML_ERROR_GPU_NOT_FOUNDNVML_ERROR_INVALID_STATEr4  r  NVML_FAN_NORMALNVML_FAN_FAILEDrM  (NVML_FAN_POLICY_TEMPERATURE_CONTINOUS_SWNVML_FAN_POLICY_MANUALr  NVML_LED_COLOR_GREENNVML_LED_COLOR_AMBERrx  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_DOWNr2  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_COUNTrA  NVML_PCIE_UTIL_TX_BYTESNVML_PCIE_UTIL_RX_BYTESNVML_PCIE_UTIL_COUNTrI  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  r[  r  r  r  r  +NVML_DEVICE_GPU_FRU_PART_NUMBER_BUFFER_SIZEr  !NVML_DEVICE_PCI_BUS_ID_LEGACY_FMTNVML_DEVICE_PCI_BUS_ID_FMTr  r  NVML_VALUE_NOT_AVAILABLE_uintNVML_FI_DEV_ECC_CURRENTNVML_FI_DEV_ECC_PENDINGNVML_FI_DEV_ECC_SBE_VOL_TOTALNVML_FI_DEV_ECC_DBE_VOL_TOTALNVML_FI_DEV_ECC_SBE_AGG_TOTALNVML_FI_DEV_ECC_DBE_AGG_TOTALNVML_FI_DEV_ECC_SBE_VOL_L1NVML_FI_DEV_ECC_DBE_VOL_L1NVML_FI_DEV_ECC_SBE_VOL_L2NVML_FI_DEV_ECC_DBE_VOL_L2NVML_FI_DEV_ECC_SBE_VOL_DEVNVML_FI_DEV_ECC_DBE_VOL_DEVNVML_FI_DEV_ECC_SBE_VOL_REGNVML_FI_DEV_ECC_DBE_VOL_REGNVML_FI_DEV_ECC_SBE_VOL_TEXNVML_FI_DEV_ECC_DBE_VOL_TEXNVML_FI_DEV_ECC_DBE_VOL_CBUNVML_FI_DEV_ECC_SBE_AGG_L1NVML_FI_DEV_ECC_DBE_AGG_L1NVML_FI_DEV_ECC_SBE_AGG_L2NVML_FI_DEV_ECC_DBE_AGG_L2NVML_FI_DEV_ECC_SBE_AGG_DEVNVML_FI_DEV_ECC_DBE_AGG_DEVNVML_FI_DEV_ECC_SBE_AGG_REGNVML_FI_DEV_ECC_DBE_AGG_REGNVML_FI_DEV_ECC_SBE_AGG_TEXNVML_FI_DEV_ECC_DBE_AGG_TEXNVML_FI_DEV_ECC_DBE_AGG_CBUNVML_FI_DEV_RETIRED_SBENVML_FI_DEV_RETIRED_DBENVML_FI_DEV_RETIRED_PENDING*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L0*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L1*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L2*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L3*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L4*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L5-NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_TOTAL*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L0*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L1*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L2*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L3*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L4*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L5-NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_TOTAL(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L0(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L1(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L2(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L3(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L4(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L5+NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_TOTAL*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L0*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L1*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L2*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L3*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L4*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L5-NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_TOTAL"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L0"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L1"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L2"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L3"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L4"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L5%NVML_FI_DEV_NVLINK_BANDWIDTH_C0_TOTAL"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L0"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L1"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L2"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L3"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L4"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L5%NVML_FI_DEV_NVLINK_BANDWIDTH_C1_TOTALNVML_FI_DEV_PERF_POLICY_POWERNVML_FI_DEV_PERF_POLICY_THERMAL"NVML_FI_DEV_PERF_POLICY_SYNC_BOOST#NVML_FI_DEV_PERF_POLICY_BOARD_LIMIT'NVML_FI_DEV_PERF_POLICY_LOW_UTILIZATION#NVML_FI_DEV_PERF_POLICY_RELIABILITY(NVML_FI_DEV_PERF_POLICY_TOTAL_APP_CLOCKS)NVML_FI_DEV_PERF_POLICY_TOTAL_BASE_CLOCKSNVML_FI_DEV_MEMORY_TEMP$NVML_FI_DEV_TOTAL_ENERGY_CONSUMPTION NVML_FI_DEV_NVLINK_SPEED_MBPS_L0 NVML_FI_DEV_NVLINK_SPEED_MBPS_L1 NVML_FI_DEV_NVLINK_SPEED_MBPS_L2 NVML_FI_DEV_NVLINK_SPEED_MBPS_L3 NVML_FI_DEV_NVLINK_SPEED_MBPS_L4 NVML_FI_DEV_NVLINK_SPEED_MBPS_L5$NVML_FI_DEV_NVLINK_SPEED_MBPS_COMMONNVML_FI_DEV_NVLINK_LINK_COUNTNVML_FI_DEV_RETIRED_PENDING_SBENVML_FI_DEV_RETIRED_PENDING_DBENVML_FI_DEV_PCIE_REPLAY_COUNTER(NVML_FI_DEV_PCIE_REPLAY_ROLLOVER_COUNTER*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L6*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L7*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L8*NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L9+NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L10+NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L11*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L6*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L7*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L8*NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L9+NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L10+NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L11(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L6(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L7(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L8(NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L9)NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L10)NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L11*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L6*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L7*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L8*NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L9+NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L10+NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L11"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L6"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L7"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L8"NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L9#NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L10#NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L11"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L6"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L7"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L8"NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L9#NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L10#NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L11 NVML_FI_DEV_NVLINK_SPEED_MBPS_L6 NVML_FI_DEV_NVLINK_SPEED_MBPS_L7 NVML_FI_DEV_NVLINK_SPEED_MBPS_L8 NVML_FI_DEV_NVLINK_SPEED_MBPS_L9!NVML_FI_DEV_NVLINK_SPEED_MBPS_L10!NVML_FI_DEV_NVLINK_SPEED_MBPS_L11%NVML_FI_DEV_NVLINK_THROUGHPUT_DATA_TX%NVML_FI_DEV_NVLINK_THROUGHPUT_DATA_RX$NVML_FI_DEV_NVLINK_THROUGHPUT_RAW_TX$NVML_FI_DEV_NVLINK_THROUGHPUT_RAW_RXNVML_FI_DEV_REMAPPED_CORNVML_FI_DEV_REMAPPED_UNCNVML_FI_DEV_REMAPPED_PENDINGNVML_FI_DEV_REMAPPED_FAILURE#NVML_FI_DEV_NVLINK_REMOTE_NVLINK_ID)NVML_FI_DEV_NVSWITCH_CONNECTED_LINK_COUNT*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L0*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L1*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L2*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L3*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L4*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L5*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L6*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L7*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L8*NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L9+NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L10+NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L11-NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_TOTAL"NVML_FI_DEV_NVLINK_ERROR_DL_REPLAY$NVML_FI_DEV_NVLINK_ERROR_DL_RECOVERYNVML_FI_DEV_NVLINK_ERROR_DL_CRCNVML_FI_DEV_NVLINK_GET_SPEEDNVML_FI_DEV_NVLINK_GET_STATENVML_FI_DEV_NVLINK_GET_VERSION"NVML_FI_DEV_NVLINK_GET_POWER_STATE&NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD'NVML_FI_DEV_PCIE_L0_TO_RECOVERY_COUNTERNVML_FI_DEV_C2C_LINK_COUNTNVML_FI_DEV_C2C_LINK_GET_STATUSNVML_FI_DEV_C2C_LINK_GET_MAX_BW)NVML_FI_DEV_PCIE_COUNT_CORRECTABLE_ERRORS$NVML_FI_DEV_PCIE_COUNT_NAKS_RECEIVED%NVML_FI_DEV_PCIE_COUNT_RECEIVER_ERRORNVML_FI_DEV_PCIE_COUNT_BAD_TLP NVML_FI_DEV_PCIE_COUNT_NAKS_SENTNVML_FI_DEV_PCIE_COUNT_BAD_DLLP&NVML_FI_DEV_PCIE_COUNT_NON_FATAL_ERROR"NVML_FI_DEV_PCIE_COUNT_FATAL_ERROR&NVML_FI_DEV_PCIE_COUNT_UNSUPPORTED_REQ!NVML_FI_DEV_PCIE_COUNT_LCRC_ERROR!NVML_FI_DEV_PCIE_COUNT_LANE_ERROR&NVML_FI_DEV_IS_RESETLESS_MIG_SUPPORTEDNVML_FI_DEV_POWER_AVERAGENVML_FI_DEV_POWER_INSTANTNVML_FI_DEV_POWER_MIN_LIMITNVML_FI_DEV_POWER_MAX_LIMITNVML_FI_DEV_POWER_DEFAULT_LIMITNVML_FI_DEV_POWER_CURRENT_LIMITNVML_FI_DEV_ENERGY!NVML_FI_DEV_POWER_REQUESTED_LIMIT'NVML_FI_DEV_TEMPERATURE_SHUTDOWN_TLIMIT'NVML_FI_DEV_TEMPERATURE_SLOWDOWN_TLIMIT&NVML_FI_DEV_TEMPERATURE_MEM_MAX_TLIMIT&NVML_FI_DEV_TEMPERATURE_GPU_MAX_TLIMITNVML_FI_DEV_PCIE_COUNT_TX_BYTESNVML_FI_DEV_PCIE_COUNT_RX_BYTES5NVML_FI_DEV_IS_MIG_MODE_INDEPENDENT_MIG_QUERY_CAPABLE*NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD_MAX%NVML_FI_DEV_NVLINK_COUNT_XMIT_PACKETS#NVML_FI_DEV_NVLINK_COUNT_XMIT_BYTES$NVML_FI_DEV_NVLINK_COUNT_RCV_PACKETS"NVML_FI_DEV_NVLINK_COUNT_RCV_BYTES%NVML_FI_DEV_NVLINK_COUNT_VL15_DROPPED0NVML_FI_DEV_NVLINK_COUNT_MALFORMED_PACKET_ERRORS.NVML_FI_DEV_NVLINK_COUNT_BUFFER_OVERRUN_ERRORS#NVML_FI_DEV_NVLINK_COUNT_RCV_ERRORS*NVML_FI_DEV_NVLINK_COUNT_RCV_REMOTE_ERRORS+NVML_FI_DEV_NVLINK_COUNT_RCV_GENERAL_ERRORS4NVML_FI_DEV_NVLINK_COUNT_LOCAL_LINK_INTEGRITY_ERRORS&NVML_FI_DEV_NVLINK_COUNT_XMIT_DISCARDS8NVML_FI_DEV_NVLINK_COUNT_LINK_RECOVERY_SUCCESSFUL_EVENTS4NVML_FI_DEV_NVLINK_COUNT_LINK_RECOVERY_FAILED_EVENTS-NVML_FI_DEV_NVLINK_COUNT_LINK_RECOVERY_EVENTS&NVML_FI_DEV_NVLINK_COUNT_RAW_BER_LANE0&NVML_FI_DEV_NVLINK_COUNT_RAW_BER_LANE1 NVML_FI_DEV_NVLINK_COUNT_RAW_BER)NVML_FI_DEV_NVLINK_COUNT_EFFECTIVE_ERRORS&NVML_FI_DEV_NVLINK_COUNT_EFFECTIVE_BER&NVML_FI_DEV_NVLINK_COUNT_SYMBOL_ERRORS#NVML_FI_DEV_NVLINK_COUNT_SYMBOL_BER*NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD_MIN,NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD_UNITS0NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD_SUPPORTEDNVML_FI_DEV_RESET_STATUS"NVML_FI_DEV_DRAIN_AND_RESET_STATUS&NVML_FI_DEV_PCIE_OUTBOUND_ATOMICS_MASK%NVML_FI_DEV_PCIE_INBOUND_ATOMICS_MASK#NVML_FI_DEV_GET_GPU_RECOVERY_ACTION&NVML_FI_DEV_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_VSGArZ  LockrX  rn  r  rM  _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  r7  rS  rV  r   rW  r^  objectr_  rl  rp  	Structurerq  r  r  rr  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;  r9  r<  r  r=  r  r?  r  !NVML_VGPU_PGPU_HETEROGENEOUS_MODENVML_VGPU_PGPU_HOMOGENEOUS_MODErD  r  rE  r  rG  rO  rS  r   rY  r\  r^  r  ra  r  rd  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_LICENSEDro  rt  r|  r}  r  r3  r  r  r  r  r  r  r  r  r  r  r_  r  r  nvmlEventTypeSingleBitEccErrornvmlEventTypeDoubleBitEccErrornvmlEventTypePStatenvmlEventTypeXidCriticalErrornvmlEventTypeClocknvmlEventTypePowerSourceChangenvmlEventMigConfigChange#nvmlEventTypeSingleBitEccErrorStorm nvmlEventTypeDramRetirementEvent"nvmlEventTypeDramRetirementFailure nvmlEventTypeNonFatalPoisonErrornvmlEventTypeFatalPoisonError nvmlEventTypeGpuUnavailableErrornvmlEventTypeGpuRecoveryActionnvmlEventTypeNonenvmlEventTypeAllnvmlClocksEventReasonGpuIdle.nvmlClocksEventReasonApplicationsClocksSetting&nvmlClocksEventReasonUserDefinedClocksnvmlClocksEventReasonSwPowerCapnvmlClocksEventReasonHwSlowdownnvmlClocksEventReasonSyncBoost&nvmlClocksEventReasonSwThermalSlowdown&nvmlClocksEventReasonHwThermalSlowdown)nvmlClocksEventReasonHwPowerBrakeSlowdown(nvmlClocksEventReasonDisplayClockSettingnvmlClocksEventReasonNonenvmlClocksEventReasonAllnvmlClocksThrottleReasonGpuIdle1nvmlClocksThrottleReasonApplicationsClocksSetting)nvmlClocksThrottleReasonUserDefinedClocks"nvmlClocksThrottleReasonSwPowerCap"nvmlClocksThrottleReasonHwSlowdown!nvmlClocksThrottleReasonSyncBoost)nvmlClocksThrottleReasonSwThermalSlowdown)nvmlClocksThrottleReasonHwThermalSlowdown,nvmlClocksThrottleReasonHwPowerBrakeSlowdown+nvmlClocksThrottleReasonDisplayClockSettingnvmlClocksThrottleReasonNonenvmlClocksThrottleReasonAllr  r  r  r  r  r  "NVML_VGPU_SCHEDULER_POLICY_UNKNOWN&NVML_VGPU_SCHEDULER_POLICY_BEST_EFFORT&NVML_VGPU_SCHEDULER_POLICY_EQUAL_SHARE&NVML_VGPU_SCHEDULER_POLICY_FIXED_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-  r3  r|  r4  r7  rP  rQ  rY  rZ  r[  *NVML_CC_CEC_ATTESTATION_REPORT_NOT_PRESENT&NVML_CC_CEC_ATTESTATION_REPORT_PRESENTr=  rC  rA  rE  rH  rK  rR  r\  r  r_  r   rh  rk  rl  ro  rm  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'  r(  r/  r1  r4  r8  r:  r9  r<  r=  r@  rB  rI  rL  rO  rT  rV  rS  rX  rY  r\  r^  ra  rf  rg  ri  rm  rp  rq  rr  rt  rw  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  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  r;  r@  rC  rF  rH  rM  rQ  rS  rU  rZ  r^  rb  rd  rh  rj  rl  rn  ro  ru  rx  rz  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r  r  r'  r*  r,  r-  r/  r0  r1  r2  r6  r:  r<  r@  rB  rD  rF  rH  rK  rM  rO  rP  rS  rV  rW  rX  rZ  r]  r_  rc  rb  re  rj  rl  ro  rp  rq  rs  rt  rv  ru  rx  ry  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  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_COUNTr.  r0  r4  NVML_POWER_SCOPE_GPUNVML_POWER_SCOPE_MODULENVML_POWER_SCOPE_MEMORYr1  nvmlPowerValue_v2r5  r9  rF  rG  NVML_DEV_CAP_EGMrK  rI  rM  rO  rV  rW  rY  rf  NVML_POWER_PROFILE_MAX_PNVML_POWER_PROFILE_MAX_QNVML_POWER_PROFILE_COMPUTENVML_POWER_PROFILE_MEMORY_BOUNDNVML_POWER_PROFILE_NETWORKNVML_POWER_PROFILE_BALANCED NVML_POWER_PROFILE_LLM_INFERENCENVML_POWER_PROFILE_LLM_TRAININGNVML_POWER_PROFILE_RBMNVML_POWER_PROFILE_DCPCIENVML_POWER_PROFILE_HMMA_SPARSENVML_POWER_PROFILE_HMMA_DENSE NVML_POWER_PROFILE_SYNC_BALANCEDNVML_POWER_PROFILE_HPCNVML_POWER_PROFILE_MIGNVML_POWER_PROFILE_MAXr_  r\  re  rb  rj  rg  rm  rl  rn  rp  rr  ru  rv  rx  rz  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  "
3 	7				


			

		
		
			
	

	

	-		
																		

	
	
	
		
	
				
	 ####&
											#		
								
			
#!	


 
					
			


		
	
		
	

