
    
3jf                    :   S r SSK7  SSKrSSKrSSKrSSKJr  SrSrSr	Sr
S	rS
rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!S r"S!r#S"r$S#r%S$r&S%r'S&r(S'r)S(r*S)r+S*r,S+r-S,r.S-r/S.r0S/r1S0r2S1r3S2r4S3r5S4r6S5r7S6r8S7r9S8r:S9r;S:r<S;r=S<r>S=r?S>r@S?rAS@rBSArCSBrDSCrESDrFSErGSFrHSGrISHrJSIrKSJrLSKrMSLrNSMrOSNrPSOrQSPrRSQrSSRrTSSrUSTrVSUrWSVrXSWrYSXrZSYr[SZr\S[r]S\r^S]r_S^r`S_raS`rbSarcSbrdScreSdrfSergSfrhSgriShrjSirkSjrlSkrmSlrnSmroSnrpSorqSprrSqrsSrrt0 Ss\_St\	_Su\
_Sv\_Sw\_Sx\_Sy\_Sz\_S{\_S|\_S}\_S~\_S\_S\_S\_S\_S\_0 S\_S\_S\_S\_S\_S\_S\_S\_S\_S\_S\_S\ _S\"_S\"_S\#_S\$_S\%_E0 S\%_S\&_S\&_S\'_S\'_S\(_S\)_S\S_S\T_S\U_S\V_S\W_S\X_S\Y_S\Z_S\[_S\\_E0 S\*_S\,_S\+_S\-_S\/_S\0_S\3_S\4_S\5_S\6_S\7_S\8_S\9_S\:_S\;_S\<_S\=_E0 S\>_S\?_S\@_S\A_S\B_S\C_S\D_S\E_S\F_S\G_S\H_S\I_S\J_S\K_S\L_S\M_S\N_E0 S\O_S\P_S\P_S\Q_S\Q_S\R_S\]_S\^_S\__S\`_S\a_S\b_S\c_S\d_S\e_S\f_S\f_E0 S\g_S\g_S\h_S\h_S\i_S\i_S\j_S\j_S\k_S\k_S\l_S\l_S\m_S\m_S\n_S\n_S\o_E\o\p\p\t\q\r\sS.Eru\vS\wS\xS\yS\zS\{S0r| " S S5      r}\~S:X  a  S r\" 5         gg)a  
nvidia_smi

Sample code that attempts to reproduce the output of nvidia-smi -q -x
For many cases the output should match.
Each query parameter is documented within nvdia-smi --help-query-gpu

From Code:
DeviceQuery()
DeviceQuery("--help")
DeviceQuery("--help_query_gpu")
DeviceQuery("pci.bus_id,memory.total,memory.free")
DeviceQuery([NVSMI_PCI_BUS_ID, NVSMI_MEMORY_TOTAL, NVSMI_MEMORY_FREE])

XmlDeviceQuery()
XmlDeviceQuery("--help")
XmlDeviceQuery("--help_query_gpu")
    )*N)Thread                        	   
                                                                         !   2   3   4   5   6   <   =   >   ?   i  i  i  F   G   P   Q   R   S   T   U   Z   [   \   ]   ^   _   d   e   f   g   h   i   n   o   p   q   r   s   x   y   z                                                                                                         	timestampdriver_versioncountnamegpu_nameserial
gpu_serialuuidgpu_uuidz
pci.bus_id
gpu_bus_idz
pci.domainzpci.busz
pci.devicezpci.device_idzpci.sub_device_idzpcie.link.gen.currentzpcie.link.gen.maxzpcie.link.width.currentzpcie.link.width.maxindexdisplay_modedisplay_activepersistence_modezaccounting.modezaccounting.buffer_sizezdriver_model.currentzdriver_model.pendingvbios_versionzinforom.imgzinforom.imagezinforom.oemzinforom.ecczinforom.pwrzinforom.powerzgom.currentzgpu_operation_mode.currentzgom.pendingzgpu_operation_mode.pendingz	fan.speedpstatez!clocks_throttle_reasons.supportedzclocks_throttle_reasons.activez clocks_throttle_reasons.gpu_idlez3clocks_throttle_reasons.applications_clocks_settingz$clocks_throttle_reasons.sw_power_capz#clocks_throttle_reasons.hw_slowdownz+clocks_throttle_reasons.hw_thermal_slowdownz/clocks_throttle_reasons.hw_power_brake_slowdownz+clocks_throttle_reasons.sw_thermal_slowdownz"clocks_throttle_reasons.sync_boostzmemory.totalzmemory.usedzmemory.freecompute_modezutilization.gpuzutilization.memoryzencoder.stats.sessionCountzencoder.stats.averageFpszencoder.stats.averageLatencyzecc.mode.currentzecc.mode.pendingz+ecc.errors.corrected.volatile.device_memoryz+ecc.errors.corrected.volatile.register_filez&ecc.errors.corrected.volatile.l1_cachez&ecc.errors.corrected.volatile.l2_cachez,ecc.errors.corrected.volatile.texture_memoryz#ecc.errors.corrected.volatile.totalz,ecc.errors.corrected.aggregate.device_memoryz,ecc.errors.corrected.aggregate.register_filez'ecc.errors.corrected.aggregate.l1_cachez'ecc.errors.corrected.aggregate.l2_cachez-ecc.errors.corrected.aggregate.texture_memoryz$ecc.errors.corrected.aggregate.totalz-ecc.errors.uncorrected.volatile.device_memoryz-ecc.errors.uncorrected.volatile.register_filez(ecc.errors.uncorrected.volatile.l1_cachez(ecc.errors.uncorrected.volatile.l2_cachez.ecc.errors.uncorrected.volatile.texture_memoryz%ecc.errors.uncorrected.volatile.totalz.ecc.errors.uncorrected.aggregate.device_memoryz.ecc.errors.uncorrected.aggregate.register_filez)ecc.errors.uncorrected.aggregate.l1_cachez)ecc.errors.uncorrected.aggregate.l2_cachez/ecc.errors.uncorrected.aggregate.texture_memoryz&ecc.errors.uncorrected.aggregate.totalz"retired_pages.single_bit_ecc.countzretired_pages.sbezretired_pages.double_bit.countzretired_pages.dbezretired_pages.pendingztemperature.gpuztemperature.memoryzpower.managementz
power.drawzpower.limitzenforced.power.limitzpower.default_limitzpower.min_limitzpower.max_limitzclocks.current.graphicsz	clocks.grzclocks.current.smz	clocks.smzclocks.current.memoryz
clocks.memzclocks.current.videozclocks.videozclocks.applications.graphicszclocks.applications.grzclocks.applications.memoryzclocks.applications.memz$clocks.default_applications.graphicszclocks.default_applications.grz"clocks.default_applications.memoryzclocks.default_applications.memzclocks.max.graphicszclocks.max.grclocks.max.sm)r   zclocks.max.memoryzclocks.max.memzsupported-clockszcompute-appszaccounted-appsclocksUnknownQuadroTeslaNVSGridGeForcec                      \ rS rSrSrSr " S S5      r\S 5       r\S S j5       r	S r
\S 5       rS	 r\S
 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S!S j5       r\S!S j5       rS r S r!S r"Sr#g)"
nvidia_smiiO  Nc                   `    \ rS rSrSrSrSrSrSS jrS r	\
SS j5       rS rS rS	 rS
 rSrg)nvidia_smi.loop_asynciS  NFc                     SU l         X0l        [        [        R                  R
                  XU[        R                  R                  4S9U l        U R                  R                  5         g )NF)targetargs)	_loop_async__abort_loop_async__callback_chainr   r   
loop_async_loop_async__loop_task_loop_async__callback_loop_async__taskstart)selftime_in_millisecondsfiltercallbacks       J/home/wildlama/miniconda3/lib/python3.13/site-packages/pynvml_utils/smi.py__init__nvidia_smi.loop_async.__init__Y  sj    $,"*

(=(=(I(ISWou  xB  xM  xM  xX  xX  SY  Z$+
++


    c                      SU l         S U l        g NT)r   r   r   s    r   __del__nvidia_smi.loop_async.__del__`  s    $,"&$
r   c                     US-  n[         R                  5       nU R                  5       S:X  aO  UR                  U5      nX`l        Ub  U" X5        [
        R                  " U5        U R                  5       S:X  a  MN  g g )Ni  F)r   getInstance
is_abortedDeviceQuery_loop_async__last_resultstimesleep)async_resultsr   r   r   delay_secondsnvsmiresultss          r   __loop_task!nvidia_smi.loop_async.__loop_taskd  sn    .5-((*%((*e3))&1g-4*&=2jj' ((*e3r   c                 N    Xl         U R                  b  U R                  X5        g g N)_loop_async__last_resultr   )r   results     r   
__callback nvidia_smi.loop_async.__callbackq  s'    %
##/##D1 0r   c                 b    SU l         U R                  b  U R                  R                  5         g g r   )r   r   joinr   s    r   cancelnvidia_smi.loop_async.cancelv  s(    $,kk%kk  &r   c                     U R                   $ r   )r   r   s    r   r    nvidia_smi.loop_async.is_aborted{  s    
r   c                     U R                   $ r   )r   r   s    r   r   nvidia_smi.loop_async.result~  s    ##
#r   )__abort__callback_chain__last_result__taskr   NN)__name__
__module____qualname____firstlineno__r   r   r   r   r   r   staticmethodr   r   r   r   r   __static_attributes__ r   r   r   r   S  sI    mfg' 
( 
(2
!
$r   r   c                  ^    [         R                  S:X  a
  [        5         [         R                  $ )zStatic access method. N)r   _nvidia_smi__instancer   r   r   r   nvidia_smi.getInstance  s#     
		$	&
,"""r   c                 .    [         R                  XU5      $ r   )r   r   )r   r   r   s      r   loopnvidia_smi.loop  s    ""#7JJr   c                     [         R                  S:w  a  [        S5      eU [         l        [         R                  S:X  a  [         R	                  5       [         l        gg)zVirtually private constructor. Nz,This class is a singleton, use getInstance())r   r   	Exception_nvidia_smi__handles_nvidia_smi__initialize_nvmlr   s    r   r   nvidia_smi.__init__  sH    			$	&GH	H!%					% * < < >	 
&r   c                  r    [        5         [        5       n 0 n[        SU 5       H  n[        U5      X'   M     U$ )zInitialize NVML bindings. r   )nvmlInitnvmlDeviceGetCountrangenvmlDeviceGetHandleByIndex)deviceCounthandlesis      r   __initialize_nvmlnvidia_smi.__initialize_nvml  s8     J$&KG1k"/2
 #Nr   c                     [         R                  S :w  a<  [         R                  U :X  a'  [         ?S [         l        S [         l        [        5         g g g r   )r   r   r   nvmlShutdownr   s    r   r   nvidia_smi.__del__  sA    %J,A,AT,I! $
#
	 -J%r   c                     U R                  S5      n/ nU H7  nUR                  5       nU[        ;   d  M  UR                  [        U   5        M9     U$ )N,)splitstripNVSMI_QUERY_GPUappend)queryString
parametersvaluesppss        r   __fromDeviceQueryString"nvidia_smi.__fromDeviceQueryString  sL    $$S)jf!wwy"O#MM/"-. 
 mr   c                 \   Sn [        XU[        5      nUS[        R                  U5      -   S-   -  n [        XU[        5      nUS[        R                  U5      -   S-   -  n [        XU[        5      nUS[        R                  U5      -   S-   -  n [        XU[        5      nUS[        R                  U5      -   S	-   -  n [        XU[        5      n	US
[        R                  U	5      -   S-   -  n [        R                  [        XU5      5      n
USU
-   S-   -  nU$ ! [         a   n[        R	                  U5      n S nAGN0S nAff = f! [         a   n[        R	                  U5      n S nAGN-S nAff = f! [         a   n[        R	                  U5      n S nAGN*S nAff = f! [         a   n[        R	                  U5      n S nAGN'S nAff = f! [         a   n[        R	                  U5      n	 S nAGN$S nAff = f! [         a   n[        R	                  U5      n
 S nAGNS nAff = f)N z          <device_memory>z</device_memory>
z          <register_file>z</register_file>
z          <l1_cache>z</l1_cache>
z          <l2_cache>z</l2_cache>
z          <texture_memory>z</texture_memory>
z          <total>	</total>
)nvmlDeviceGetMemoryErrorCounter"NVML_MEMORY_LOCATION_DEVICE_MEMORY	NVMLErrorr   _nvidia_smi__handleError_nvidia_smi__toString"NVML_MEMORY_LOCATION_REGISTER_FILENVML_MEMORY_LOCATION_L1_CACHENVML_MEMORY_LOCATION_L2_CACHE#NVML_MEMORY_LOCATION_TEXTURE_MEMORYnvmlDeviceGetTotalEccErrors)handlecounterType	errorType	strResultdeviceMemoryerrregisterFilel1Cachel2CachetextureMemoryrr   s              r   __xmlGetEccByTypenvidia_smi.__xmlGetEccByType  s*   i78K9[], .1F1F|1TTWkkki78K9[],
 .1F1F|1TTWkkki23F{4QS' )J,A,A',JJ_\\i23F{4QS' )J,A,A',JJ_\\i89&[:]_- /*2G2G2VVYnnni0''(CFWb(cd% &.==iO  7#11#6,7  7#11#6,7  2,,S1'2  2,,S1'2  8$2237-8  0**3/%0s   D  E $E: F' G 4H  
E
*EE

E7E22E7:
F$FF$'
G1GG
G>G99G>
H+H&&H+c                 D   Sn0 n [        XU[        5      nXTS'    [        XU[
        5      nXtS'    [        XU[        5      nXS'    [        XU[        5      n	XS'    [        XU[        5      n
XS'    [        R                  [        XU5      5      nXS'   U$ ! [         a  n[        R	                  U5      n S nANS nAff = f! [         a  n[        R	                  U5      n S nANS nAff = f! [         a  n[        R	                  U5      n S nANS nAff = f! [         a  n[        R	                  U5      n	 S nANS nAff = f! [         a  n[        R	                  U5      n
 S nANS nAff = f! [         a   n[        R	                  U5      n S nAGNS nAff = f)Nr   device_memoryregister_filel1_cachel2_cachetexture_memorytotal)r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   	eccByTyper  r  r  r  r  r  rr   s               r   __GetEccByTypenvidia_smi.__GetEccByType  s   ii78K9[],
 $0 78K9[],
 $0 23F{4QS' &
23F{4QS' &
89&[:]_- %2 !0''(CFWb(cd% !Q  7#11#6,7  7#11#6,7  2,,S1'2  2,,S1'2  8$2237-8  0**3/%0s   B C C1 D E	 4E5 
C#B==C
C.C))C.1
D;DD
E'EE	
E2E--E25
F?FFc                    Sn[         U;   dn  [        U;   dd  [        U;   dZ  [        U;   dP  [        U;   dF  [
        U;   d<  [        U;   d2  [        U;   d(  [        U;   d  [        U;   d  [        U;   d
  [        U;   a:  US-  nU[        R                  [        R                  X[        5      5      -  nUS-  n[         U;   dn  [        U;   dd  [        U;   dZ  [        U;   dP  [        U;   dF  [
        U;   d<  [        U;   d2  [        U;   d(  [        U;   d  [        U;   d  [        U;   d
  [        U;   a:  US-  nU[        R                  [        R                  X[         5      5      -  nUS-  nU$ )Nr   z        <single_bit>
z        </single_bit>
z        <double_bit>
z        </double_bit>
)	NVSMI_ALL*NVSMI_ECC_ERROR_CORRECTED_VOLATILE_DEV_MEM*NVSMI_ECC_ERROR_CORRECTED_VOLATILE_REGFILE*NVSMI_ECC_ERROR_CORRECTED_VOLATILE_L1CACHE*NVSMI_ECC_ERROR_CORRECTED_VOLATILE_L2CACHE*NVSMI_ECC_ERROR_CORRECTED_VOLATILE_TEXTURE+NVSMI_ECC_ERROR_CORRECTED_AGGREGATE_DEV_MEM+NVSMI_ECC_ERROR_CORRECTED_AGGREGATE_REGFILE+NVSMI_ECC_ERROR_CORRECTED_AGGREGATE_L1CACHE+NVSMI_ECC_ERROR_CORRECTED_AGGREGATE_L2CACHE+NVSMI_ECC_ERROR_CORRECTED_AGGREGATE_TEXTURE)NVSMI_ECC_ERROR_CORRECTED_AGGREGATE_TOTALr   r   _nvidia_smi__xmlGetEccByType NVML_MEMORY_ERROR_TYPE_CORRECTED"NVML_MEMORY_ERROR_TYPE_UNCORRECTEDr   r   r   eccByCounters       r   __xmlGetEccByCounternvidia_smi.__xmlGetEccByCounter  sY   l
v

4
>
4
>
4
>
4
>
4
>
5
?
5
?
5
?
5
?
5
?
3v
=
2
2,
*//
0L0LV  cC  1D  E  E,
3
3,
v

4
>
4
>
4
>
4
>
4
>
5
?
5
?
5
?
5
?
5
?
3v
=
2
2,
*//
0L0LV  cE  1F  G  G,
3
3,r   c                 ^   0 n[         U;   dn  [        U;   dd  [        U;   dZ  [        U;   dP  [        U;   dF  [
        U;   d<  [        U;   d2  [        U;   d(  [        U;   d  [        U;   d  [        U;   d
  [        U;   a  [        R                  X[        5      US'   [         U;   dn  [        U;   dd  [        U;   dZ  [        U;   dP  [        U;   dF  [
        U;   d<  [        U;   d2  [        U;   d(  [        U;   d  [        U;   d  [        U;   d
  [        U;   a  [        R                  X[        5      US'   U$ )N
single_bit
double_bit)r  r  r  r  r  r  r  r  r  r  r  r  r   _nvidia_smi__GetEccByTyper!  r"  r#  s       r   __GetEccByCounternvidia_smi.__GetEccByCounter>  s    l
v

4
>
4
>
4
>
4
>
4
>
5
?
5
?
5
?
5
?
5
?
3v
='1'@'@Vv'w,|
$
v

4
>
4
>
4
>
4
>
4
>
5
?
5
?
5
?
5
?
5
?
3v
='1'@'@Vx'y,|
$r   c                    SnSn[         U;   dn  [        U;   dd  [        U;   dZ  [        U;   dP  [        U;   dF  [
        U;   d<  [        U;   d2  [        U;   d(  [        U;   d  [        U;   d  [        U;   d
  [        U;   a=  US-  nU[        R                  [        R                  U [        U5      5      -  nUS-  nSn[         U;   dx  [         U;   dn  ["        U;   dd  [$        U;   dZ  [&        U;   dP  [(        U;   dF  [*        U;   d<  [,        U;   d2  [.        U;   d(  [0        U;   d  [2        U;   d  [4        U;   d
  [6        U;   a=  US-  nU[        R                  [        R                  U [8        U5      5      -  nUS-  nSn[;        U5      S:  a  X#4$ S U4$ )	Nr   Fz      <volatile>
z      </volatile>
Tz      <aggregate>
z      </aggregate>
r   )r  r  r  r  r  r  ,NVSMI_ECC_ERROR_UNCORRECTED_VOLATILE_DEV_MEM,NVSMI_ECC_ERROR_UNCORRECTED_VOLATILE_REGFILE,NVSMI_ECC_ERROR_UNCORRECTED_VOLATILE_L1CACHE,NVSMI_ECC_ERROR_UNCORRECTED_VOLATILE_L2CACHE,NVSMI_ECC_ERROR_UNCORRECTED_VOLATILE_TEXTURE*NVSMI_ECC_ERROR_UNCORRECTED_VOLATILE_TOTALr   r   _nvidia_smi__xmlGetEccByCounterNVML_VOLATILE_ECCr  r  r  r  r  r  -NVSMI_ECC_ERROR_UNCORRECTED_AGGREGATE_DEV_MEM-NVSMI_ECC_ERROR_UNCORRECTED_AGGREGATE_REGFILE-NVSMI_ECC_ERROR_UNCORRECTED_AGGREGATE_L1CACHE-NVSMI_ECC_ERROR_UNCORRECTED_AGGREGATE_L2CACHE-NVSMI_ECC_ERROR_UNCORRECTED_AGGREGATE_TEXTURE+NVSMI_ECC_ERROR_UNCORRECTED_AGGREGATE_TOTALNVML_AGGREGATE_ECClenr   r   ecc
includeEccs       r   __xmlGetEccnvidia_smi.__xmlGetEcc`  ss   cj
v

4
>
4
>
4
>
4
>
4
>
6&
@
6&
@
6&
@
6&
@
6&
@
4
>
%
%#
&&z'F'FvO`bh'ij
j#
&
&#*
v

5
?
5
?
5
?
5
?
5
?
3v
=
76
A
76
A
76
A
76
A
76
A
5
?
&
&#
&&z'F'FvOaci'jk
k#
'
'#*HqLS66dJ66r   c                    0 nSn[         U;   dn  [        U;   dd  [        U;   dZ  [        U;   dP  [        U;   dF  [
        U;   d<  [        U;   d2  [        U;   d(  [        U;   d  [        U;   d  [        U;   d
  [        U;   a   [        R                  U [        U5      US'   Sn[         U;   dx  [        U;   dn  [         U;   dd  ["        U;   dZ  [$        U;   dP  [&        U;   dF  [(        U;   d<  [*        U;   d2  [,        U;   d(  [.        U;   d  [0        U;   d  [2        U;   d
  [4        U;   a   [        R                  U [6        U5      US'   Sn[9        UR;                  5       5      S:  a  X#4$ S U4$ )NFvolatileT	aggregater   )r  r  r  r  r  r  r.  r/  r0  r1  r2  r3  r   _nvidia_smi__GetEccByCounterr5  r  r  r  r  r  r  r6  r7  r8  r9  r:  r;  r<  r=  r   r>  s       r   __GetEccnvidia_smi.__GetEcc  s8   cj
v

4
>
4
>
4
>
4
>
4
>
6&
@
6&
@
6&
@
6&
@
6&
@
4
>&88ARTZ[#j/*
v

5
?
5
?
5
?
5
?
5
?
3v
=
76
A
76
A
76
A
76
A
76
A
5
?'99&BTV\]#k
*

%)S??tZ??r   c                 d   SnS nSn [        X5      n[        [        [        U5      5      nUS[
        R                  U5      -   S-   -  nUb"  US-  nU H  nUSSU-  -   S-   -  nM     US	-  nOUS
U-   S-   -  nUS:  a  U$ S$ ! [         a!  n[
        R                  U5      nS n S nAN~S nAff = f)Nr   r   z        <retired_count>z</retired_count>
z!        <retired_page_addresses>
z           <retired_page_address>0x%016xz</retired_page_address>
z"        </retired_page_addresses>
z         <retired_page_addresses>z</retired_page_addresses>
)nvmlDeviceGetRetiredPagessummapr=  r   r   r   r   )r   causeretiredPagedByCauseerrorrr   pagesr  pages           r   __xmlGetRetiredPagesByCause&nvidia_smi.__xmlGetRetiredPagesByCause  s    ee+F:%c#uo&%
 69N9Nu9UUXlll		
!E
E
d!%G)VZJZ%Z]x%xx! 
!F
F

!Ce!KNk!k
k
$)AI 525  **3/%%s   $B 
B/B**B/c                 P   0 nS nSn [        X5      n0 nUb)  SnU H!  n	SU	-  US[	        U5      -   '   US-  nUS-  nM#     Ub  X7S'   XBS'   [        UR                  5       5      S:  a  UOS US'   US:  a  U$ S $ ! [         a!  n[        R                  U5      nS n S nANS nAff = f)Nr   r   rJ  retired_page_address_Errorretired_countretired_page_addresses)rK  r   r   r   strr=  r   )
r   rN  rO  rP  rr   rQ  r  retiredPageAddressesiirR  s
             r   __GetRetiredPagesByCause#nvidia_smi.__GetRetiredPagesByCause  s    ee+F:%
  		"dFORVFV"#:3r7#BC!ebQhe  
	*/w
'-2/*NQRfRmRmRoNpstNt6Jz~23$)AI 747#  **3/%%s   A: :
B%B  B%c                    SnSnSS/n[        [        5       He  n[        U;   d$  [        U;   a  US:X  d  [        U;   d  M)  US:X  d  M1  USXE   -   S-   -  nU[
        R                  X5      -  nUS	XE   -   S-   -  nS
nMg     [        U;   d
  [        U;   a,  US-  n [        [        U 5      :X  a  US-  nOUS-  n US-  nS
n[        U5      S:  a  X#4$ S U4$ ! [         a"  nU[
        R                  U5      -  n S nANDS nAff = f)Nr   Fmultiple_single_bit_retirementdouble_bit_retirementr   r         <>
z      </Tz      <pending_retirement>NoYesz</pending_retirement>
)r    NVML_PAGE_RETIREMENT_CAUSE_COUNTr  'NVSMI_RETIREDPAGES_SINGLE_BIT_ECC_COUNT'NVSMI_RETIREDPAGES_DOUBLE_BIT_ECC_COUNTr   &_nvidia_smi__xmlGetRetiredPagesByCauseNVSMI_RETIREDPAGES_PENDINGNVML_FEATURE_DISABLED&nvmlDeviceGetRetiredPagesPendingStatusr   r   r=  )r   r   retiredPagesincludeRetiredPagescausesidxr  s          r   __xmlGetRetiredPagesnvidia_smi.__xmlGetRetiredPages  s2   l!13JLf78#6!6&@SAX6&@SAXi&+5==ljDDVQQlj6;6>>l$(! 9 v
!;v!E
6
6,<&*PQW*XX$&,%', 3
3, $
 .2\QQ>QQQ  <j66s;;l<s   C 4C 
D!C>>Dc                    0 nSnSS/n[        [        5       HM  n[        U;   d$  [        U;   a  US:X  d  [        U;   d  M)  US:X  d  M1  [
        R                  X5      X$U   '   SnMO     [        U;   d
  [        U;   a"  Sn [        [        U 5      :X  a  SnOS	n XbS
'   Sn[        UR                  5       5      S:  a  X#4$ S U4$ ! [         a  n[
        R                  U5      n S nANNS nAff = f)NFr`  ra  r   r   Tr   rd  re  pending_retirement)r   rf  r  rg  rh  r   #_nvidia_smi__GetRetiredPagesByCauserj  rk  rl  r   r   r=  r   )r   r   rm  rn  ro  rp  rt  r  s           r   __GetRetiredPagesnvidia_smi.__GetRetiredPages  s   l!13JLf78#6!6&@SAX6&@SAX*4*M*Mf*Zl#;'$(! 9 v
!;v!E!
A&*PQW*XX'+$',$ 0B+
, $
 !4!4!67!;\ZZGZZZ  A#-#;#;C#@ As    C C 
C,C''C,c                 F    U [         :X  a  gU [        :X  a  gU [        :X  a  gg)NzAll OnComputezLow Double Precisionr   )NVML_GOM_ALL_ONNVML_GOM_COMPUTENVML_GOM_LOW_DP)modes    r   
__toStrGOMnvidia_smi.__toStrGOM  s'    		 ##?"'r   c           	         [         S/[        S/[        S/[        S/[        S/[
        S//nSn [        U 5      n[        U 5      nUS-  nU H8  u  pVUS:w  d  M  XS-  (       a  XT-  (       a  S	OS
nOSnUSU< SU< SU< S3-  nM:     US-  nU$ ! [         a&  nUS[        R                  U5      -  -  n S nAU$ S nAff = f)Nclocks_throttle_reason_gpu_idle*clocks_throttle_reason_user_defined_clocks2clocks_throttle_reason_applications_clocks_setting#clocks_throttle_reason_sw_power_cap"clocks_throttle_reason_hw_slowdownclocks_throttle_reason_unknownr   z    <clocks_throttle_reasons>
Active
Not ActiveN/Arb  >z</rc  z    </clocks_throttle_reasons>
z:    <clocks_throttle_reasons>%s</clocks_throttle_reasons>
)nvmlClocksThrottleReasonGpuIdle)nvmlClocksThrottleReasonUserDefinedClocks1nvmlClocksThrottleReasonApplicationsClocksSetting"nvmlClocksThrottleReasonSwPowerCap"nvmlClocksThrottleReasonHwSlowdownnvmlClocksThrottleReasonUnknown+nvmlDeviceGetSupportedClocksThrottleReasons)nvmlDeviceGetCurrentClocksThrottleReasonsr   r   r   )	r   throttleReasonsr   supportedClocksThrottleReasonsclocksThrottleReasonsmaskrs   valr  s	            r   __xmlGetClocksThrottleReasons(nvidia_smi.__xmlGetClocksThrottleReasons$  s     /:[\8:fg@Bvw1:_`1:^_.:Z[o ix+VW]+^
("KF"S

8
8)-ltFF;(,(DH,c!cc4HH) . 9
9)   x
TXbXpXpqtXuv
v)xs   &B 4B 
C B;;C c                    [         S/[        S/[        S/[        S/[        S/[
        S//n0 n [        U 5      n[        U 5      nU H*  u  pVUS:w  d  M  XS-  (       a  XT-  (       a  SOSnOS	nXrU'   M,     [        UR                  5       5      S:  a  U$ S $ ! [         a"  n[        R                  U5      US
'    S nANHS nAff = f)Nr  r  r  r  r  r  r  r  r  rW  r   )r  r  r  r  r  r  r  r  r   r   r   r=  r   )	r   r  clockThrottleReasonsr  r  r  rs   r  r  s	            r   __GetClocksThrottleReasons%nvidia_smi.__GetClocksThrottleReasonsB  s     /:[\8:fg@Bvw1:_`1:^_.:Z[o  I+VW]+^
("KF"S
-ltFF;(,(DH,c!c.1t, . &))=)D)D)F%G!%K!UQUU  I*4*B*B3*G
w
'Is   !B !B 
C!B>>Cc                 L    U R                   [        :X  a  gU R                  5       $ )Nr  )valueNVML_ERROR_NOT_SUPPORTED__str__)r  s    r   __handleErrornvidia_smi.__handleErrora  s    
))/
/
r   c                 d    [        U [        5      (       a  U R                  S5      $ [        U 5      $ )Nzutf-8)
isinstancebytesdecoderZ  )r  s    r   
__toStringnvidia_smi.__toStringh  s'    
S%
 
 G$
$Xor   c                 \K   Uc  [         /nO[        U[        5      (       ah  US:X  d  US:X  a  [        R                  R
                  $ US:X  a&  [        SS5       nUR                  5       sSSS5        $ [        R                  U5      nO[        U5      nSn US-  nUS	-  nUS
-  n[         U;   d
  [        U;   a:  US[        R                  [        R                  R                  5       5      -   S-   -  n[         U;   d
  [        U;   a&  US[        R                  [!        5       5      -   S-   -  n[#        5       n[         U;   d
  [$        U;   a  US[        R                  U5      -   S-   -  n['        SU5       GH  nU R(                  U   n[+        U5      nSn[         U;   d
  [,        U;   a  USUR.                  -  -  n[         U;   d
  [0        U;   aE  US[        R                  [3        U5      5      -   S-   -  n [4        [7        U5         n	USU	-   S-   -  n[         U;   d
  [<        U;   a   [?        U5      S:w  a  SOSnUSU-   S-   -  n[         U;   d
  [@        U;   a   [C        U5      S:w  a  SOSnUSU-   S-   -  n[         U;   d
  [D        U;   a   [G        U5      S:w  a  SOSnUSU-   S-   -  n[         U;   d
  [H        U;   a   [K        U5      S:w  a  SOSnUSU-   S -   -  n[         U;   d
  [L        U;   a*   [        R                  [O        U5      5      nUS!U-   S"-   -  nSnS#n[         U;   d
  [P        U;   a%   [S        U5      [T        :X  a  S$OS%nUS&U-   S'-   -  nS(n[         U;   d
  [V        U;   a   [Y        U5      [T        :X  a  S$OS%nU(       a  US+-  nX-  nUS,-  n[         U;   d
  [Z        U;   a*   []        U5      nUS-[        R                  U5      -   S.-   -  n[         U;   d
  [^        U;   a*   [a        U5      nUS/[        R                  U5      -   S0-   -  n[         U;   d
  [b        U;   a*   [e        U5      nUS1[        R                  U5      -   S2-   -  n[         U;   d
  [f        U;   a*   [i        U5      nUS3[        R                  U5      -   S4-   -  n[         U;   d
  [f        U;   a*   [k        U5      nUS5:X  a  US6-  nOU(       a  US7-  nOUS8-  n[         U;   d
  [l        U;   a   [o        U5      n S9U-  nUS:U-   S;-   -  nSnS#n[         U;   d
  [p        U;   a,   [s        U5      nUS<[        R                  U5      -   S=-   -  nS(n[         U;   d
  [t        U;   a1   [w        U[x        5      nUS>[        R                  U5      -   S?-   -  nS(n[         U;   d
  [z        U;   a1   [w        U[|        5      nUS@[        R                  U5      -   SA-   -  nS(n[         U;   d
  [~        U;   a1   [w        U[        5      nUSB[        R                  U5      -   SC-   -  nS(nU(       a  USD-  nUU-  nUSE-  nSnS#n [         U;   d
  [~        U;   a?   [        R                  [        U5      5      nUSF[        R                  U5      -   SG-   -  nS(n [         U;   d
  [~        U;   a?   [        R                  [        U5      5      nUSH[        R                  U5      -   SI-   -  nS(n U (       a  USJ-  nUU-  nUSK-  nSn!S#n"[         U;   d
  [        U;   a  U!SLUR                  -  -  n!S(n"[         U;   d
  [        U;   a  U!SMUR                  -  -  n!S(n"[         U;   d
  [        U;   a  U!SNUR                  -  -  n!S(n"[         U;   d
  [        U;   a  U!SOUR                  -  -  n!S(n"[         U;   d
  [,        U;   a*  U!SP[        R                  UR.                  5      -   SQ-   -  n!S(n"[         U;   d
  [        U;   a  U!SRUR                  -  -  n!S(n"Sn#S#n$Sn%S#n&[         U;   d
  [        U;   a,   [        R                  [        U5      5      n'U%SSU'-   ST-   -  n%S(n&[         U;   d
  [        U;   a,   [        R                  [        U5      5      n'U%SUU'-   SV-   -  n%S(n&U&(       a  U#SW-  n#U#U%-  n#U#SX-  n#S(n$Sn(S#n)[         U;   d
  [        U;   a/   [        R                  [        U5      5      SY-   n*U(SZU*-   S[-   -  n(S(n)[         U;   d
  [        U;   a/   [        R                  [        U5      5      SY-   n*U(S\U*-   S]-   -  n(S(n)U)(       a  U#S^-  n#U#U(-  n#U#S_-  n#S(n$U$(       a  U!S`-  n!U!U#-  n!U!Sa-  n!Sn+S#n,[         U;   a   [        U5      n-Sn.U-R                  S   R                  S:X  a  U.Sb-  n.OU.Sc-  n.U+SdU.-   Se-   -  n+U-R                  S   R                  S:X  a  S5n/OSfU-R                  S   R                  -  n/U+SgU/-  -  n+S(n,U,(       a  U!Sj-  n!U!U+-  n!U!Sk-  n![         U;   a,   [        U5      n0U!Sl[        R                  U05      -   Sm-   -  n!S(n"[         U;   a4   [        U[        5      n1U!Sn[        R                  U15      -   So-   Sp-   -  n!S(n"[         U;   a4   [        U[        5      n2U!Sq[        R                  U25      -   So-   Sr-   -  n!S(n"U"(       a  USs-  nUU!-  nUSt-  n[         U;   d
  [        U;   a-   [        R                  [        U5      5      Su-   n3USvU3-   Sw-   -  n[         U;   d
  [        U;   a   [        U5      n4SxU4-  n5USyU5-   Sz-   -  n[         U;   dd  [        U;   dZ  [        U;   dP  [        U;   dF  [        U;   d<  [        U;   d2  [        U;   d(  [        U;   d  [        U;   d  [        U;   d
  [        U;   a  U[        R                  U5      -  nSn6S#n7[         U;   d  [        U;   d  [        U;   d
  [        U;   a  S(n7 [        U5      n8[        R                  U8R                  S{-  S{-  5      S|-   n9[        R                  U8R                  S{-  S{-  5      S|-   n:[        R                  U8R                  S{-  S{-  U8R                  S{-  S{-  -
  5      S|-   n;[         U;   d
  [        U;   a  U6S}U9-   S~-   -  n6[         U;   d
  [        U;   a  U6SU:-   S-   -  n6[         U;   d
  [        U;   a  U6SU;-   S-   -  n6U7(       a  US-  nUU6-  nUS-  n[         U;   d
  [        U;   a   [        U5      n8[        R                  U8R                  S{-  S{-  5      S|-   n9[        R                  U8R                  S{-  S{-  5      S|-   n:[        R                  U8R                  S{-  S{-  U8R                  S{-  S{-  -
  5      S|-   n;US-  nUS}U9-   S~-   -  nUSU:-   S-   -  nUSU;-   S-   -  nUS-  n[         U;   d
  [        U;   aN   [        U5      nU[        :X  a  Sn=O*U[        :X  a  Sn=OU[        :X  a  Sn=OU[        :X  a  Sn=OSn= USU=-   S-   -  nSn>S#n?[         U;   d  [        U;   d
  [        U;   a   [        U5      n@[        R                  U@GR                   5      Su-   nA[        R                  U@GR                  5      Su-   nB[         U;   d
  [        U;   a  U>SWA-   S-   -  n>[         U;   d
  [        U;   a  U>SWB-   S-   -  n>S(n?[         U;   d  G[        U;   a5   G[        U5      u  nCnD[        R                  UC5      Su-   nEU>SWE-   S-   -  n>S(n?[         U;   d  G[        U;   a5   G[        U5      u  nCnD[        R                  UC5      Su-   nFU>SWF-   S-   -  n>S(n?U?(       a  US-  nUU>-  nUS-  n[         U;   d  G[        U;   d  G[        U;   au   G[        U5      u  nnUS:w  a  SOSnGUS:w  a  SOSnHSnI[         U;   d  G[        U;   a  WISWG-   S-   -  nI[         U;   d  G[        U;   a  WISWH-   S-   -  nIUS-  nUWI-  nUS-  n[        GR                  Xa5      u  nJnKUK(       a  US-  nUWJ-  nUS-  n[        GR                  Xa5      u  nLnMUM(       a  US-  nUWL-  nUS-  nSnNS#nO[         U;   d  G[        U;   a   [        R                  G[        UG[        5      5      S-   nPWNSWP-   S-   -  nN [        R                  G[        UG[        5      5      S-   nPWNSWP-   S-   -  nNS(nO [        R                  G[        UG[         5      5      S-   nPWNSWP-   S-   -  nNS(nOWO(       a  US-  nUWN-     US-  nSnQS#nR[         U;   d  G["        U;   a$   G[%        U5      nSUSS:w  a  SOS5nTWQSWT-   S-   -  nQS(nR[         U;   d  G[&        U;   a"   G[)        U5      S-  nUSUU-  nVWQSWV-   S-   -  nQS(nR[         U;   d  G[*        U;   a"   G[-        U5      S-  nWSUW-  nXWQSWX-   S-   -  nQS(nR[         U;   d  G[.        U;   a"   G[1        U5      S-  nWSUW-  nXWQSWX-   S-   -  nQS(nR[         U;   d  G[2        U;   a"   G[5        U5      S-  nYSUY-  nZWQSWZ-   S-   -  nQS(nR[         U;   d  G[6        U;   d  G[8        U;   ae   G[;        U5      nWSUWS   S-  -  n[SUWS   S-  -  n\[         U;   d  G[6        U;   a  WQSW[-   S-   -  nQ[         U;   d  G[8        U;   a  WQSW\-   S-   -  nQS(nRWR(       a9  US-  n S[        R                  [        U5      5      -   n4USU4-  -  nUWQ-  nUS-  nSn]S#n^[         U;   d  G[<        U;   a6   [        R                  G[?        UG[@        5      5      S-   n_W]SW_-   S-   -  n]S(n^[         U;   d  G[<        U;   a6   [        R                  G[?        UG[B        5      5      S-   n`W]SW`-   S-   -  n]S(n^[         U;   d  G[D        U;   a6   [        R                  G[?        UG[F        5      5      S-   naW]SWa-   S-   -  n]S(n^W^(       a  US-  nUW]-  nUS-  nSnbS#nc[         U;   d  G[H        U;   a6   [        R                  G[K        UG[@        5      5      S-   n_WbSW_-   S-   -  nbS(nc[         U;   d  G[L        U;   a6   [        R                  G[K        UG[F        5      5      S-   naWbSWa-   S-   -  nbS(ncWc(       a  US-  nUWb-  nUS-  nSndS#ne[         U;   d  G[N        U;   a6   [        R                  G[Q        UG[@        5      5      S-   n_WdSW_-   S-   -  ndS(ne[         U;   d  G[R        U;   a6   [        R                  G[Q        UG[F        5      5      S-   naWdSWa-   S-   -  ndS(neWe(       a  US-  nUWd-  nUS-  nSnfS#ng[         U;   d  G[T        U;   a6   [        R                  G[W        UG[@        5      5      S-   n_WfSW_-   S-   -  nfS(ng[         U;   d  G[X        U;   a6   [        R                  G[W        UG[B        5      5      S-   n`WfSW`-   S-   -  nfS(ng[         U;   d  G[Z        U;   a6   [        R                  G[W        UG[F        5      5      S-   naWfSWa-   S-   -  nfS(ngWg(       a  US-  nUWf-  nUS-  n[         U;   d  G[\        U;   aQ  US-  n G[_        U5      u  nhniUhG[`        :X  a  SnjOSnjWiG[`        :X  a  SnkOSnk USWj-   S-   -  nUSWk-   S-   -  nUS-  n[         U;   d  G[d        U;   aQ   G[g        U5      nlUS-  nUl H4  nmUS-  nUSUm-  -  n G[i        UUm5      n]U] H  nnUSUn-  -  nM     US-  nM6     US-  n[         U;   d  G[j        U;   a   G[m        U5      noUS-  nUo H  np [        R                  G[o        UpGRp                  5      5      nqUS-  nUSWpGRp                  -  -  nUSWq-   S-   -  nUpGRv                  S:X  a  S5naOSWpGRv                  S{-  S{-  -  naUSWa-   S-   -  nUS-  nM     US-  n[         U;   d  G[x        U;   a   G[{        U5      nrUS-  nUr H  ns G[}        UUs5      ntSUtGR~                  -  nuSUtGR                  -  nvUtGR                  S:X  a  S5nwOSWtGR                  S{-  S{-  -  nwSWtGR                  -  nxSUtGR                  -  nyUS-  nUSWs-  -  nUSWu-   S-   -  nUSWv-   S-   -  nUSWw-   S-   -  nUSWx-   S-   -  nUSWy-   S-   -  nUS-  nM     US-  nG[        U5      S:  d  GM  US-  nX8-  nUS-  nGM     US-  nU$ ! , (       d  f       GN= f! [8         a   n
[        R;                  U
5      n	 Sn
A
GNVSn
A
ff = f! [8         a   n
[        R;                  U
5      n Sn
A
GNPSn
A
ff = f! [8         a   n
[        R;                  U
5      n Sn
A
GNJSn
A
ff = f! [8         a   n
[        R;                  U
5      n Sn
A
GNDSn
A
ff = f! [8         a   n
[        R;                  U
5      n Sn
A
GN>Sn
A
ff = f! [8         a   n
[        R;                  U
5      n Sn
A
GN-Sn
A
ff = f! [8         a   n
[        R;                  U
5      n Sn
A
GNSn
A
ff = f! [8         a-  n
[        R;                  U
5      nUS)U-   S*-   -  nS(n Sn
A
GN Sn
A
ff = f! [8         a   n
[        R;                  U
5      n Sn
A
GNSn
A
ff = f! [8         a   n
[        R;                  U
5      n Sn
A
GNSn
A
ff = f! [8         a   n
[        R;                  U
5      n Sn
A
GNSn
A
ff = f! [8         a   n
[        R;                  U
5      n Sn
A
GNSn
A
ff = f! [8         a   n
[        R;                  U
5      n Sn
A
GNSn
A
ff = f! [8         a   n
[        R;                  U
5      n Sn
A
GNSn
A
ff = f!   Un GN= f! [8         a   n
[        R;                  U
5      n Sn
A
GNSn
A
ff = f! [8         a   n
[        R;                  U
5      n Sn
A
GNSn
A
ff = f! [8         a   n
[        R;                  U
5      n Sn
A
GNSn
A
ff = f! [8         a   n
[        R;                  U
5      n Sn
A
GN}Sn
A
ff = f! [8         a   n
[        R;                  U
5      n Sn
A
GN=Sn
A
ff = f! [8         a   n
[        R;                  U
5      n Sn
A
GNSn
A
ff = f! [8         a   n
[        R;                  U
5      n' Sn
A
GNSn
A
ff = f! [8         a   n
[        R;                  U
5      n' Sn
A
GNSn
A
ff = f! [8         a   n
[        R;                  U
5      n* Sn
A
GNSn
A
ff = f! [8         a   n
[        R;                  U
5      n* Sn
A
GNnSn
A
ff = f! [8         aG  n
U+Sd[        R;                  U
5      -   Se-   -  n+U+Sh[        R;                  U
5      -   Si-   -  n+ Sn
A
GNSn
A
ff = f! [8         a)  n
U!Sl[        R;                  U
5      -   Sm-   -  n! Sn
A
GNSn
A
ff = f! [8         a)  n
U!Sn[        R;                  U
5      -   Sp-   -  n! Sn
A
GNSn
A
ff = f! [8         a)  n
U!Sq[        R;                  U
5      -   Sr-   -  n! Sn
A
GNSn
A
ff = f! [8         a   n
[        R;                  U
5      n3 Sn
A
GNSn
A
ff = f! [8         a   n
[        R;                  U
5      n5 Sn
A
GNSn
A
ff = f! [8         a&  n
[        R;                  U
5      n<U<n9U<n:U<n; Sn
A
GNSn
A
ff = f! [8         a&  n
[        R;                  U
5      n<U<n9U<n:U<n; Sn
A
GNSn
A
ff = f! [8         a   n
[        R;                  U
5      n= Sn
A
GNGSn
A
ff = f! [8         a$  n
[        R;                  U
5      n<U<nAU<nB Sn
A
GNSn
A
ff = f! [8         a"  n
[        R;                  U
5      n<U<nE Sn
A
GNSn
A
ff = f! [8         a"  n
[        R;                  U
5      n<U<nF Sn
A
GNSn
A
ff = f! [8         a$  n
[        R;                  U
5      n<U<nGU<nH Sn
A
GNZSn
A
ff = f! [8         a   n
[        R;                  U
5      nP Sn
A
GNSn
A
ff = f! [8         a   n
[        R;                  U
5      nP Sn
A
GNSn
A
ff = f! [8         a   n
[        R;                  U
5      nP Sn
A
GNSn
A
ff = f! [8         a   n
[        R;                  U
5      nT Sn
A
GN`Sn
A
ff = f! [8         a   n
[        R;                  U
5      nV Sn
A
GNVSn
A
ff = f! [8         a   n
[        R;                  U
5      nX Sn
A
GNLSn
A
ff = f! [8         a   n
[        R;                  U
5      nX Sn
A
GNBSn
A
ff = f! [8         a   n
[        R;                  U
5      nZ Sn
A
GN8Sn
A
ff = f! [8         a$  n
[        R;                  U
5      n<U<n[U<n\ Sn
A
GNSn
A
ff = f! [8         a   n
[        R;                  U
5      n4 Sn
A
GNSn
A
ff = f! [8         a   n
[        R;                  U
5      n_ Sn
A
GNSn
A
ff = f! [8         a   n
[        R;                  U
5      n` Sn
A
GNSn
A
ff = f! [8         a   n
[        R;                  U
5      na Sn
A
GNsSn
A
ff = f! [8         a   n
[        R;                  U
5      n_ Sn
A
GN;Sn
A
ff = f! [8         a   n
[        R;                  U
5      na Sn
A
GNSn
A
ff = f! [8         a   n
[        R;                  U
5      n_ Sn
A
GNSn
A
ff = f! [8         a   n
[        R;                  U
5      na Sn
A
GNSn
A
ff = f! [8         a   n
[        R;                  U
5      n_ Sn
A
GNSn
A
ff = f! [8         a   n
[        R;                  U
5      n` Sn
A
GNqSn
A
ff = f! [8         a   n
[        R;                  U
5      na Sn
A
GNSSn
A
ff = f! G[b         a    S5njS5nk GN[8         a5  n
[        R;                  U
5      nj[        R;                  U
5      nk Sn
A
GN8Sn
A
ff = f! [8         a&  n
US[        R;                  U
5      -  -  n Sn
A
GNSn
A
ff = f! [8         a)  n
US[        R;                  U
5      -   S-   -  n Sn
A
GN Sn
A
ff = f! [8         a=  n
U
GRr                  G[t        :X  a   Sn
A
GM&  [        R;                  U
5      nq Sn
A
GNSn
A
ff = f! [8         a)  n
US[        R;                  U
5      -   S-   -  n Sn
A
GNSn
A
ff = f! [8         aG  n
U
GRr                  G[t        :X  a   Sn
A
GM  [        R;                  U
5      n
U
nuU
nvU
nwU
nxU
ny Sn
A
GNSn
A
ff = f! [8         a)  n
US[        R;                  U
5      -   S-   -  n Sn
A
GNwSn
A
ff = f! [8         a&  n
USU
GR                  5       -   GS -   -  n Sn
A
U$ Sn
A
ff = f(  a  
Provides a Python interface to GPU management and monitoring functions.

This is a wrapper around the NVML library.
For information about the NVML library, see the NVML developer page
http://developer.nvidia.com/nvidia-management-library-nvml

Examples:
---------------------------------------------------------------------------
For all elements as in XML format.  Similiar to nvisia-smi -q -x

$ XmlDeviceQuery()

---------------------------------------------------------------------------
For XML of filtered elements by string name.
Similiar ot nvidia-smi --query-gpu=pci.bus_id,memory.total,memory.free
See help_query_gpu.txt or XmlDeviceQuery("--help_query_gpu") for available filter elements

$ XmlDeviceQuery("pci.bus_id,memory.total,memory.free")

---------------------------------------------------------------------------
For XML of filtered elements by enumeration value.
See help_query_gpu.txt or XmlDeviceQuery("--help_query_gpu") for available filter elements

$ XmlDeviceQuery([NVSMI_PCI_BUS_ID, NVSMI_MEMORY_TOTAL, NVSMI_MEMORY_FREE])

N--help-h--help-query-gpuhelp_query_gpu.txtrr   z<?xml version="1.0" ?>
z7<!DOCTYPE nvidia_smi_log SYSTEM "nvsmi_device_v4.dtd">
z<nvidia_smi>
z  <timestamp>z</timestamp>
z  <driver_version>z</driver_version>
z	  <count>z	</count>
r   z  <id>%s</id>
z    <product_name>z</product_name>
z    <product_brand>z</product_brand>
EnabledDisabledz    <display_mode>z</display_mode>
z    <display_active>z</display_active>
z    <persistence_mode>z</persistence_mode>
z    <accounting_mode>z</accounting_mode>
z!    <accounting_mode_buffer_size>z</accounting_mode_buffer_size>
FWDDMTCCz      <current_dm>z</current_dm>
Tz      <pending_dm>z</pending_dm>
z    <driver_model>
z    </driver_model>
z    <serial>z
</serial>
z
    <uuid>z</uuid>
z    <minor_number>z</minor_number>
z    <vbios_version>z</vbios_version>
r  z)    <multigpu_board>N/A</multigpu_board>
z)    <multigpu_board>Yes</multigpu_board>
z(    <multigpu_board>No</multigpu_board>
0x%xz    <board_id>z</board_id>
z      <img_version>z</img_version>
z      <oem_object>z</oem_object>
z      <ecc_object>z</ecc_object>
z      <pwr_object>z</pwr_object>
z    <inforom_version>
z    </inforom_version>
z      <current_gom>z</current_gom>
z      <pending_gom>z</pending_gom>
z    <gpu_operation_mode>
z    </gpu_operation_mode>
z      <pci_bus>%02X</pci_bus>
z$      <pci_device>%02X</pci_device>
z$      <pci_domain>%04X</pci_domain>
z*      <pci_device_id>%08X</pci_device_id>
z      <pci_bus_id>z</pci_bus_id>
z2      <pci_sub_system_id>%08X</pci_sub_system_id>
z          <max_link_gen>z</max_link_gen>
z          <current_link_gen>z</current_link_gen>
z        <pcie_gen>
z        </pcie_gen>
xz          <max_link_width>z</max_link_width>
z          <current_link_width>z</current_link_width>
z        <link_widths>
z        </link_widths>
z      <pci_gpu_link_info>
z      </pci_gpu_link_info>
PLXBR04z        <bridge_chip_type>z</bridge_chip_type>
%08Xz,        <bridge_chip_fw>%s</bridge_chip_fw>
z        <bridge_chip_fw>z</bridge_chip_fw>
z      <pci_bridge_chip>
z      </pci_bridge_chip>
z      <replay_counter>z</replay_counter>z      <tx_util>z KB/sz
</tx_util>z      <rx_util>z
</rx_util>z
    <pci>
z    </pci>
z %z    <fan_speed>z</fan_speed>
P%sz    <performance_state>z</performance_state>
   z MiBz      <total>r   z      <used>z</used>
z      <free>z</free>
z    <fb_memory_usage>
z    </fb_memory_usage>
z    <bar1_memory_usage>
z    </bar1_memory_usage>
DefaultExclusive Thread
ProhibitedExclusive_Processr   z    <compute_mode>z</compute_mode>
z      <gpu_util>z</gpu_util>
z      <memory_util>z</memory_util>
z      <encoder_util>z</encoder_util>
z      <decoder_util>z</decoder_util>
z    <utilization>
z    </utilization>
z      <current_ecc>z</current_ecc>
z      <pending_ecc>z</pending_ecc>
z    <ecc_mode>
z    </ecc_mode>
z    <ecc_errors>
z    </ecc_errors>
z    <retired_pages>
z    </retired_pages>
z Cz      <gpu_temp>z</gpu_temp>
z      <gpu_temp_max_threshold>z</gpu_temp_max_threshold>
z      <gpu_temp_slow_threshold>z</gpu_temp_slow_threshold>
z    <temperature>
z    </temperature>
	Supportedz      <power_management>z</power_management>
     @@z%.2f Wz      <power_draw>z</power_draw>
z      <power_limit>z</power_limit>
z      <default_power_limit>z</default_power_limit>
z      <enforced_power_limit>z</enforced_power_limit>
r   z      <min_power_limit>z</min_power_limit>
z      <max_power_limit>z</max_power_limit>
z    <power_readings>
Pz$      <power_state>%s</power_state>
z    </power_readings>
z MHzz      <graphics_clock>z</graphics_clock>
z      <sm_clock>z</sm_clock>
z      <mem_clock>z</mem_clock>
z    <clocks>
z    </clocks>
z    <applications_clocks>
z    </applications_clocks>
z"    <default_applications_clocks>
z#    </default_applications_clocks>
z    <max_clocks>
z    </max_clocks>
z    <clock_policy>
OffOnz      <auto_boost>z</auto_boost>
z      <auto_boost_default>z</auto_boost_default>
z    </clock_policy>
z    <supported_clocks>
z      <supported_mem_clock>
z        <value>%d MHz</value>
zD        <supported_graphics_clock>%d MHz</supported_graphics_clock>
z@        <supported_graphics_clock>%s</supported_graphics_clock>
z      </supported_mem_clock>
z    </supported_clocks>
z    <supported_clocks>z</supported_clocks>
z    <processes>
z    <process_info>
z      <pid>%d</pid>
z      <process_name>z</process_name>
%d MiBz      <used_memory>z</used_memory>
z    </process_info>
z    </processes>
z    <processes>z</processes>
z    <accounted_processes>
%d %%%d ms%dz    <accounted_process_info>
z      <max_memory_usage>z</max_memory_usage>
z      <time>z</time>
z      <is_running>z</is_running>
z    </accounted_process_info>
z    </accounted_processes>
z    <accounted_processes>z</accounted_processes>
z  <gpu>z	  </gpu>
z</nvidia_smi>
nvidia_smi.py: 
)r  r  rZ  r   XmlDeviceQuery__doc__openread"_nvidia_smi__fromDeviceQueryStringlistNVSMI_TIMESTAMPr   datetimedatetodayNVSMI_DRIVER_VERSIONnvmlSystemGetDriverVersionr   NVSMI_COUNTr   r   nvmlDeviceGetPciInfoNVSMI_PCI_BUS_IDbusId
NVSMI_NAMEnvmlDeviceGetNameNVSMI_BRAND_NAMESnvmlDeviceGetBrandr   r   NVSMI_DISPLAY_MODEnvmlDeviceGetDisplayModeNVSMI_DISPLAY_ACTIVEnvmlDeviceGetDisplayActiveNVSMI_PERSISTENCE_MODEnvmlDeviceGetPersistenceModeNVSMI_ACCT_MODEnvmlDeviceGetAccountingModeNVSMI_ACCT_BUFFER_SIZE!nvmlDeviceGetAccountingBufferSizeNVSMI_DRIVER_MODEL_CURnvmlDeviceGetCurrentDriverModelNVML_DRIVER_WDDMNVSMI_DRIVER_MODEL_PENDINGnvmlDeviceGetPendingDriverModelNVSMI_SERIALNUMBERnvmlDeviceGetSerial
NVSMI_UUIDnvmlDeviceGetUUIDNVSMI_INDEXnvmlDeviceGetMinorNumberNVSMI_VBIOS_VERnvmlDeviceGetVbiosVersionnvmlDeviceGetMultiGpuBoardNVSMI_BOARD_IDnvmlDeviceGetBoardIdNVSMI_INFOROM_IMG nvmlDeviceGetInforomImageVersionNVSMI_INFOROM_OEMnvmlDeviceGetInforomVersionNVML_INFOROM_OEMNVSMI_INFOROM_ECCNVML_INFOROM_ECCNVSMI_INFOROM_PWRNVML_INFOROM_POWER_nvidia_smi__toStrGOM$nvmlDeviceGetCurrentGpuOperationMode$nvmlDeviceGetPendingGpuOperationModeNVSMI_PCI_BUSbusNVSMI_PCI_DEVICEdeviceNVSMI_PCI_DOMAINdomainNVSMI_PCI_DEVICE_IDpciDeviceIdNVSMI_PCI_SUBDEVICE_IDpciSubSystemIdNVSMI_PCI_LINK_GEN_MAX"nvmlDeviceGetMaxPcieLinkGenerationNVSMI_PCI_LINK_GEN_CUR#nvmlDeviceGetCurrPcieLinkGenerationNVSMI_PCI_LINK_WIDTH_MAXnvmlDeviceGetMaxPcieLinkWidthNVSMI_PCI_LINK_WIDTH_CURnvmlDeviceGetCurrPcieLinkWidthnvmlDeviceGetBridgeChipInfobridgeChipInfotype	fwVersionnvmlDeviceGetPcieReplayCounternvmlDeviceGetPcieThroughputNVML_PCIE_UTIL_TX_BYTESNVML_PCIE_UTIL_RX_BYTESNVSMI_FAN_SPEEDnvmlDeviceGetFanSpeedNVSMI_PSTATEnvmlDeviceGetPowerState&NVSMI_CLOCK_THROTTLE_REASONS_SUPPORTED#NVSMI_CLOCK_THROTTLE_REASONS_ACTIVE!NVSMI_CLOCK_THROTTLE_REASONS_IDLE(NVSMI_CLOCK_THROTTLE_REASONS_APP_SETTING'NVSMI_CLOCK_THROTTLE_REASONS_SW_PWR_CAP(NVSMI_CLOCK_THROTTLE_REASONS_HW_SLOWDOWN0NVSMI_CLOCK_THROTTLE_REASONS_HW_THERMAL_SLOWDOWN2NVSMI_CLOCK_THROTTLE_REASONS_HW_PWR_BRAKE_SLOWDOWN0NVSMI_CLOCK_THROTTLE_REASONS_SW_THERMAL_SLOWDOWN'NVSMI_CLOCK_THROTTLE_REASONS_SYNC_BOOST(_nvidia_smi__xmlGetClocksThrottleReasonsNVSMI_MEMORY_TOTALNVSMI_MEMORY_USEDNVSMI_MEMORY_FREEnvmlDeviceGetMemoryInfor  usedNVSMI_MEMORY_BAR1nvmlDeviceGetBAR1MemoryInfo	bar1Totalbar1UsedNVSMI_COMPUTE_MODEnvmlDeviceGetComputeModeNVML_COMPUTEMODE_DEFAULT!NVML_COMPUTEMODE_EXCLUSIVE_THREADNVML_COMPUTEMODE_PROHIBITED"NVML_COMPUTEMODE_EXCLUSIVE_PROCESSNVSMI_UTILIZATION_GPUNVSMI_UTILIZATION_MEMnvmlDeviceGetUtilizationRatesgpumemoryNVSMI_UTILIZATION_ENCODERnvmlDeviceGetEncoderUtilizationNVSMI_UTILIZATION_DECODERnvmlDeviceGetDecoderUtilizationNVSMI_ECC_MODE_CURNVSMI_ECC_MODE_PENDINGnvmlDeviceGetEccMode_nvidia_smi__xmlGetEcc_nvidia_smi__xmlGetRetiredPagesNVSMI_TEMPERATURE_GPUnvmlDeviceGetTemperatureNVML_TEMPERATURE_GPU!nvmlDeviceGetTemperatureThreshold#NVML_TEMPERATURE_THRESHOLD_SHUTDOWN#NVML_TEMPERATURE_THRESHOLD_SLOWDOWNNVSMI_POWER_MGMT nvmlDeviceGetPowerManagementModeNVSMI_POWER_DRAWnvmlDeviceGetPowerUsageNVSMI_POWER_LIMIT!nvmlDeviceGetPowerManagementLimitNVSMI_POWER_LIMIT_DEFAULT(nvmlDeviceGetPowerManagementDefaultLimitNVSMI_POWER_LIMIT_ENFORCEDnvmlDeviceGetEnforcedPowerLimitNVSMI_POWER_LIMIT_MINNVSMI_POWER_LIMIT_MAX,nvmlDeviceGetPowerManagementLimitConstraintsNVSMI_CLOCKS_GRAPHICS_CURnvmlDeviceGetClockInfoNVML_CLOCK_GRAPHICSNVML_CLOCK_SMNVSMI_CLOCKS_MEMORY_CURNVML_CLOCK_MEMNVSMI_CLOCKS_APPL_GRAPHICSnvmlDeviceGetApplicationsClockNVSMI_CLOCKS_APPL_MEMORY"NVSMI_CLOCKS_APPL_GRAPHICS_DEFAULT%nvmlDeviceGetDefaultApplicationsClock NVSMI_CLOCKS_APPL_MEMORY_DEFAULTNVSMI_CLOCKS_GRAPHICS_MAXnvmlDeviceGetMaxClockInfoNVSMI_CLOCKS_SM_MAXNVSMI_CLOCKS_MEMORY_MAXNVSMI_CLOCKS_POLICY%nvmlDeviceGetAutoBoostedClocksEnabledrk  NVMLError_NotSupportedNVSMI_CLOCKS_SUPPORTED"nvmlDeviceGetSupportedMemoryClocks$nvmlDeviceGetSupportedGraphicsClocksNVSMI_COMPUTE_APPS$nvmlDeviceGetComputeRunningProcessesnvmlSystemGetProcessNamepidr  NVML_ERROR_NOT_FOUNDusedGpuMemoryNVSMI_ACCOUNTED_APPSnvmlDeviceGetAccountingPidsnvmlDeviceGetAccountingStatsgpuUtilizationmemoryUtilizationmaxMemoryUsager   	isRunningr=  r  )zr   r   finr   r   r   r   pciInfogpuInfo	brandNamer  stater}  
bufferSizedriverModelincludeDriverModelcurrentpendingru   rw   minor_numbervbiosmultiGpuBoolboardIdhexBIDinforomVersionincludeInforomimgoemr?  pwrgpuOperationMode
includeGOMpci
includePcipciGpuLinkInfoincludeLinkInfopciGen
includeGengenpciLinkWidthsincludeLinkWidthswidthpciBridgeChipincludeBridgeChipbridgeHierarchybridge_typestrFwVersionreplaytx_bytesrx_bytesfan	perfStateperfStateStrfbMemoryUsageincludeMemoryUsagememInfo	mem_totalmem_usedmem_freerP  modeStrutilizationincludeUtilizationutilgpu_utilmem_utilutil_intssizeencoder_utildecoder_utilcurr_strpend_streccMode	eccErrorsincludeEccErrorsrm  rn  temperatureincludeTemperaturetemppower_readingsincludePowerReadingspowMan	powManStrpowDraw
powDrawStrpowLimitpowLimitStrenforcedPowLimitenforcedPowLimitStrpowLimitStrMinpowLimitStrMaxr   includeClocksgraphicssmmemapplicationClocksincludeAppClocksdefaultApplicationClocksincludeDefaultAppClocks	maxClocksincludeMaxClocksboostedStateboostedDefaultStateautoBoostStrautoBoostDefaultStr	memClocksmcprocsr   rs   pidsrv  statsr|  r}  r~  r   
is_runningsz                                                                                                                             r   r  nvidia_smi.XmlDeviceQueryo  sd(   < .;&vs## fn..666,,,c2c 32 "99&Af<&i{@
1
1)
Q
Q)
'
')6!_%>?Z-B-B8==CVCVCX-YY\llli6!%9V%C/*2G2GHbHd2eeh}}}i*,+6![F%:;)>)>{)KKlZZiK(a~~a(f,V4ggv%)9V)C.>>'v%v)=1J4I4IJ[\bJc4ddgzzz'@"34Fv4N"Oi
 2Y>AUUU'v%);v)E<-Ef-MQR-RyYce 1E9<OOO'v%)=)G<-G-OST-Ty[ee 3e;>SSS'v%)?6)I;+G+OST+TY[ed 5<?VVV'v%F)B;+Fv+NRS+SYZdd 4t;>TTT'v%)?6)IA#-#8#89Z[a9b#cj @:MPrrr'k#( v%)?6)I>+J6+RVf+fmrg !5!?BS!SS+'+$v%)Cv)M.)H)PTd)dfkpG $33'('44'v%);v)E=26:f ^j.C.CF.KKm[['v%v)=;.v6d \J,A,A$,GG+UU'v%)>C%=f%El 1J4I4I,4WWZmmm'v%F)B<7?e 2Z5J5J55QQThhh'v%F)BD%?%Gl "U*!WWg#!WWg!VVgv%6)A> 4V <g'%/f -6HH'!n$nv%):f)D:<VDc !$9J<Q<QRU<V$VYk$kk.#'.v%):f)D:7@PQc !$8:;P;PQT;U$UXi$ii.#'.v%):f)D:7@PQc !$8:;P;PQT;U$UXi$ii.#'.v%):f)D:7@RSc !$8:;P;PQT;U$UXi$ii.#'.66'^+'77'!# jv%):f)D> * 5 56Z[a6b cg #&;j>S>ST[>\&\_q&qq"#*v%):f)D> * 5 56Z[a6b cg #&;j>S>ST[>\&\_q&qq"#*99'--'::'c jv%&)@:W[[HH##*v%)9V)C@7>>QQ##*v%)9V)C@7>>QQ##*v%)<)FF'J]J]^^##*v%)9V)C-
0E0Egmm0TTWhhh##*v%)?6)INRYRhRhii##*!n %of jv%)?6)I:&112TU[2\]c 6<?RRR&#*v%)?6)I:&112UV\2]^c :S@CZZZ&#* $::. F*. $;;.$(/ m"'v%)AV)K<(334QRX4YZ]``e  #?%#GJ_#__-&*#v%)AV)K<(334RSY4Z[^aae  #Ce#KNg#gg-&*#" $==. M1. $>>.$(/ 66#'#77# !m"'v%z(CF(Ko$&k(77:??1D%.+%/+#'Ck'QTk'kkm(77:DDI).,)/?3Q3QRS3T3^3^)_,#'VZf'ggm '+#"44#&#55#v%l=fEf5
8M8Mf8UUXkkkc  $*v%^!<VE\!]h.1F1Fx1PPSZZ]iiic  $*v%^!<VE\!]h.1F1Fx1PPSZZ]iiic  $*]*'S.'^+'v%F)B:&112G2OPSWWc .47GGG'v%)?C"9&"Ai%*Y%6l 6EH```'v%8FB5?3v=:fD9VC:fDBfLDNBfL9VCZEEfMM' m#( v%$.#v-#v-'+$	' 7 ?g","7"78Lt8S"TW]"]i!+!6!6w||d7JT7Q!RU[![h!+!6!6w}}t7Kd7RU\UaUadhUhkoUo7o!psy!yh  6)-?6-I#'B\'QQm6)->&-H#~'@;'NNm6)->&-H#~'@;'NNm#66']*'77'v%):f)D	' ;F Cg","7"78I8ID8PSW8W"X[a"ai!+!6!6w7G7G$7NQU7U!VY_!_h!+!6!6w7H7H47ORV7VY`YiYilpYpswYw7w!x  |B  "Bh 88'_y8<GG'^h6DD'^h6DD'99'v%);v)E>5f=d!99$-'#DD$6'#>>$0'#EE$7'$-' 1G;>QQQ'k#( v%'61'61':6Bd!+!6!6txx!@4!Gh!+!6!6t{{!Cd!Jh  6)-Bf-L!%7(%B_%TTk6)-Bf-L!%:X%EHZ%ZZk'+$v%)Bf)L+*I&*Q'x%/%:%:8%Dt%Kl
 !7,!FI\!\\+'+$v%)Bf)L+*I&*Q'x%/%:%:8%Dt%Kl
 !7,!FI\!\\+'+$#22'[('33'v%$.(F2'+?+G(w/6!|*h/6!|*h '6)-?6-I!6!ADV!VVg6)-Cv-M!6!ADV!VVg//'W$'00'+5+A+A&+Q(i(!11'Y&'22'3=3R3RSY3b/l/$44'\)'55'k#( v%)>&)H;'223KFTh3ijmqqd !3d!:_!LL+;'223TU[  ^A  4B  C  FJ  Jd !AD!HKh!hh+'+$;'223TU[  ^A  4B  C  FJ  Jd !BT!ILj!jj+'+$#22'K'33'!n%*"v%)9V)C@?Gf171+%i !$>$JMd$dd.)-&v%)9V)CA!8!@6!Ig#+g#5j !$8:$EHY$YY.)-&v%):f)DB"CF"Kf"Th$,x$7k !$9K$GJ\$\\.)-&v%)Bf)LB"J6"RU["[h$,x$7k !$AK$ORl$ll.)-&v%)Cv)MJ*I&*QTZ*Z&,47G,G) !$BEX$X[v$vv.)-&v%'61'61-!Mf!Uh'/8A;3G'Hn'/8A;3G'Hn
  6)-Bf-L$(AN(RUk(kkn6)-Bf-L$(AN(RUk(kkn)-&%55'@"%
(=(=>UV\>](^"^i DyPP'^+'66'f#mf$(AV(K?!+!6!67MfVi7j!knt!th 4h>AVVV&"&-f$(AV(K9%001GP]1^_bhhb .3oEE&"&-f$(?6(I:&112HQ_2`adjjc /#58HHH&"&---'V#'..'"$!&f$(Bf(L?!+!6!67UV\^q7r!sv|!|h $'?'ILa'aa#%)"f$(@F(J:&112PQWYg2hilrrc $':S'@CS'SS#%)"!::'..';;')+&(-%f$(Jf(T?!+!6!67\]cex7y!z  ~D  "Dh +.F.PSh.hh*,0)f$(HF(R:&112WX^`n2opsyyc +.AC.GJZ.ZZ*,0)(BB'55'CC'i!&f$(AV(K?!+!6!67PQWYl7m!nqw!wh 7(BEZZZ)%)"f$(;v(E9%001J6S`1abekkb 1B6HH)%)"f$(?6(I:&112KFTb2cdgmmc 2S8;KKK)%)"!11'Y&'22'v%)<)F33':_`f:g7l$7%)>>).,)-,,0EE05-04- 1L@CTTT'9<OORkkk'44'v%)?6)It"DV"Li!;;g(!!%DD'!%F%JJ'M'KFTU'Vf'-!")-twx-x"x' (. "%EE'  ) !<<g v%);v)EfB6Je!44g$!G%/%:%:;STUTYTY;Z%[d "%;;'!%<quu%DD'!%;d%BEX%XX'oo5$)c$,$0F0M$Nc!%:S%@CU%UU'!%<<''  %* !55g v%)=)G%z8@d!>>g!%#/&B63&Oe/69M9M/Mn29E<S<S2S/"'"6"6$">38.3;u?S?SVZ?Z]a?a3b.%,uzz%9d+/%//+Aj "%EE'!%<s%BB'!%7.%H?%ZZ'!%:=N%NQc%cc'!%?.%PRi%ii'!^d%:[%HH'!%9J%FIZ%ZZ'!%FF'; "&> !??g Wqy()&)|+)Q )T (
()
 K 32L # @",":":3"?i@ # <(66s;e< # <(66s;e< # ;'55c:d; # ;'55c:d; # A#-#;#;C#@jA # > * 8 8 =g> ! .(66s;G#7'#ADU#UUK)-&. # =)77<f= # ;'55c:d; # C%/%=%=c%BlC # <(66s;e< # D%/%=%=c%BlD # > * 8 8 =g>
'&f # :&44S9c: # :&44S9c: # :&44S9c: # :&44S9c:  # > * 8 8 =g> # > * 8 8 =g>\ # :&44S9c: # :&44S9c:$ # <(66s;e< # <(66s;e<H # z#'CjF^F^_bFc'cf}'}}m#'AJD\D\]`Da'ady'yymz # l5
8P8PQT8UUXkkkcl # ^.1I1I#1NNQ]]]c^ # ^.1I1I#1NNQ]]]c^ # :&44S9c: # C%/%=%=c%BlC< # '(66s;e"'i!&h!&h	'0 # '(66s;e"'i!&h!&h	'2 # > * 8 8 =g> # '(66s;e!&h!&h'" # +(66s;e%*l+ # +(66s;e%*l+( # '(66s;e!&h!&h'B # ;'55c:d; # ;'55c:d; # ;'55c:d;$ # @",":":3"?i@ # A#-#;#;C#@jA # B$.$<$<S$AkB # B$.$<$<S$AkB # J,6,D,DS,I)J # -(66s;e',n',n- # @",":":3"?i@ # ?!+!9!9#!>h? # 9%33C8b9 # :&44S9c: # ?!+!9!9#!>h? # :&44S9c:  # ?!+!9!9#!>h? # :&44S9c: # ?!+!9!9#!>h? # 9%33C8b9 # :&44S9c:0 0 2%*l,1)" %/%=%=c%Bl,6,D,DS,I)( "+ M%)loy  pH  pH  IL  pM  *M  MgM
 # t!9J<T<TUX<Y!Y\s!ssgt "+ G"%))/C"C"*)3)A)A#)F$G& # f!2Z5M5Mc5R!RUe!eegf& "+ 	/"%))/C"C"*$.$<$<S$Ac/2n25//2n%(d+.j	/* # z!<z?W?WX[?\!\_y!yygz  @
(3;;=84?
?)@s  Ad)E BU; 8Ad;
BU; *Ae(=BU; Af0BU; Ag#BU; Ag/BU; 6Ah#BU; 8Ai	!BU; 1Ai6)BU; 2Aj0=2BU; 0Ak;2BU; .Al
92BU; ,Al772BU; *Am$52BU; (An4An>9#BU; Ao(4BU; Ao5-4BU; "Ap"24BU; 'Aq7ABU; Aq<$4BU; Ar)7EBU; As2!BU; At2=BU; 0!At0!BU; 3!AuA	BU; BAv
""BU; )Aw.BU; ;1Ax,BU; 91Ay
*,BU; !Az 8BU; Az-(B?BU; (BA{>BBU; BA|?BU; A} 3BU; 4A}  BU; A} BU; A} BU; A} .BU; AA}-ABU; 3'A~"BU; ='A$ABU; (#A<CBU; B(B@-B<BU; C(BAC0BU; C>(BBD&<BU; E#BB4E9"BU; FBC!F0"BU; GBDG'"BU; H
BD;H"BU; IBE(I-BU; J"BFJ%ABU; K4!BGL+BU; M(BG3M)"BU; N(BH N4"BU; O(BIO?<BU; P<(BI:Q$"BU; R(BJ'R/<BU; S,(BKT"BU; T7(BLU<BU; V(BL.W"BU; W'(BMX"BU; X2(BNY=BU; Z,BN5[BU; [BN5[1BU; [9#BP;\BP\;BP;]	BU; ]BR;]6*BQ1^ A&BR;`BU; `BU`3A7BS1b*ABUc<BU; dBU; d)
Ad8d;
Ae%eAe eBU; e Ae%e%BU; e(
Afe2AffBU; fAffBU; f
Af?fAf:f4BU; f:Af?f?BU; g
Ag,gAg'g!BU; g'Ag,g,BU; g/
Ahg9AhhBU; hAhhBU; h
Aih&Aih;BU; iAiiBU; i	
Ai3iAi.i(BU; i.Ai3i3BU; i6
Aj-j "Aj(j"BU; j(Aj-j-BU; j0
Akj:AkkBU; kAkkBU; k
Alk'Alk<BU; lAllBU; l

Al4lAl/l)BU; l/Al4l4BU; l7
Am!mAmmBU; mAm!m!BU; m$
Anm.An	nBU; n	AnnBU; n
An;nAn6n0BU; n6An;n;BU; n>AooBU; o
Ao2oAo-o'BU; o-Ao2o2BU; o5
Apo?AppBU; pAppBU; p"
Aqp,AqqBU; qAqqBU; q
Aq9qAq4q.BU; q4Aq9q9BU; q<
Ar&rAr!rBU; r!Ar&r&BU; r)
Asr3AssBU; sAssBU; s
At s As;s5BU; s;At t BU; t
At-tAt(t"BU; t(At-t-BU; t0
Aut:AuuBU; uAuuBU; u
Avu'Avu<BU; vAvvBU; v

Awv<AwwBU; wAwwBU; w
Axw(AxxBU; xAxxBU; x
AyxAyx<BU; yAyyBU; y

Ay=yAy8y2BU; y8Ay=y=BU; z 
Az*z
Az%zBU; z%Az*z*BU; z-
A{z7A{{BU; {A{{BU; {
A|
{$A|{?BU; |A|
|
BU; |
A|=|A|8|2BU; |8A|=|=BU; } 
A}*}
A}%}BU; }%A}*}*BU; }-
A~}7A~~BU; ~A~~BU; ~
A
~(A~?BU; A

BU; 
A9A4.BU; 4A99BU; <
B@*@B@%@BU; @%B@*@*BU; @-
BA@7BAABU; ABAABU; A
BBA$BA?A9BU; A?BBBBU; B
BB1BBB,B&BU; B,BB1B1BU; B4
BCB>BCCBU; CBCCBU; C!
BDC+BDD BU; DBDDBU; D
BD8DBD3D-BU; D3BD8D8BU; D;
BE%EBE EBU; E BE%E%BU; E(
BFE2BFFBU; FBFFBU; F
BGFBF>F8BU; F>BGGBU; G
BG0GBG+G%BU; G+BG0G0BU; G3
BHG=BHHBU; HBHHBU; H 
BI
H*BIH?BU; IBI
I
BU; I
BI7IBI2I,BU; I2BI7I7BU; I:
BJ$JBJJBU; JBJ$J$BU; J'
BKJ1BKKBU; KBKKBU; K
BK>KBK9K3BU; K9BK>K>BU; L
BL+LBL&L BU; L&BL+L+BU; L.
BML8BMMBU; MBMMBU; M
BNM%BN M:BU; N BNNBU; N
BN2NBN-N'BU; N-BN2N2BU; N5BPOBU; O	BPO*BP O:BU; P BPPBU; P
BP8PBP3P-BP;P3BP8P8BP;P;
BQ.QBQ)Q#BU; Q)BQ.Q.BU; Q1
BR8Q;BR3RBR;RBR3R-BR;R3BR8R8BR;R;
BS.SBS)S#BU; S)BS.S.BU; S1
BUS;BT=TBUTBT=T7BUT=BUUBUU
BU8UBU3U-BU; U3BU8U8BU; U;
BV+VBV&V&BV+c                 B   Uc  [         /nO[        U[        5      (       ah  US:X  d  US:X  a  [        R                  R
                  $ US:X  a&  [        SS5       nUR                  5       sSSS5        $ [        R                  U5      nO[        U5      n0 n/ n [         U;   d
  [        U;   a4  [        R                  [        R                  R                  5       5      US'   [         U;   d
  [        U;   a   [        R                  [!        5       5      US'   [#        5       n[         U;   d
  [$        U;   a  XSS	'   ['        S
U5       GH  n0 nU R(                  U   n[+        U5      n	[         U;   d
  [,        U;   a"  [        R                  U	R.                  5      US'   [         U;   d
  [0        U;   a8  [        R                  [3        U5      5      US'    [4        [7        U5         n
XS'   [         U;   d
  [<        U;   a   [?        U5      S
:w  a  SOSnXS'   [         U;   d
  [@        U;   a   [C        U5      S
:w  a  SOSnXS'   [         U;   d
  [D        U;   a   [G        U5      S
:w  a  SOSnXS'   [         U;   d
  [H        U;   a   [K        U5      S
:w  a  SOSnXS'   [         U;   d
  [L        U;   a#   [        R                  [O        U5      5      nXS'   0 nSn[         U;   d
  [P        U;   a   [S        U5      [T        :X  a  SOSnUUS'   Sn[         U;   d
  [V        U;   a   [Y        U5      [T        :X  a  SOSnUUS'   SnU(       a  XS'   [         U;   d
  [Z        U;   a$   []        U5      n[        R                  U5      US'   [         U;   d
  [^        U;   a$   [a        U5      n[        R                  U5      US'   [         U;   d
  [b        U;   a$   [e        U5      n[        R                  U5      US'   [         U;   d
  [f        U;   a$   [i        U5      n[        R                  U5      US'   [         U;   d
  [f        U;   a*   [k        U5      nUS :X  a  S US!'   OU(       a  S"US!'   OS#US!'   [         U;   d
  [l        U;   a   [o        U5      n S$U-  nUUS%'   0 nSn[         U;   d
  [p        U;   a&   [s        U5      n[        R                  U5      US&'   Sn[         U;   d
  [t        U;   a+   [w        U[x        5      n[        R                  U5      US''   Sn[         U;   d
  [z        U;   a+   [w        U[|        5      n[        R                  U5      US('   Sn[         U;   d
  [~        U;   a+   [w        U[        5      n[        R                  U5      US)'   SnU(       a  UUS*'   0 n Sn![         U;   d
  [~        U;   a9   [        R                  [        U5      5      n[        R                  U5      U S+'   Sn![         U;   d
  [~        U;   a9   [        R                  [        U5      5      n[        R                  U5      U S,'   Sn!U!(       a  U US-'   0 n"Sn#[         U;   d
  [        U;   a  S.U	R                  -  U"S/'   Sn#[         U;   d
  [        U;   a  S.U	R                  -  U"S0'   Sn#[         U;   d
  [        U;   a  S1U	R                  -  U"S2'   Sn#[         U;   d
  [        U;   a  S3U	R                  -  U"S4'   Sn#[         U;   d
  [,        U;   a$  [        R                  U	R.                  5      U"S5'   Sn#[         U;   d
  [        U;   a  S3U	R                  -  U"S6'   Sn#0 n$Sn%0 n&Sn'[         U;   d
  [        U;   a&   [        R                  [        U5      5      n(U(U&S7'   Sn'[         U;   d
  [        U;   a&   [        R                  [        U5      5      n(U(U&S8'   Sn'U'(       a  U&U$S9'   Sn%0 n)Sn*[         U;   d
  [        U;   a)   [        R                  [        U5      5      S:-   n+U+U)S;'   Sn*[         U;   d
  [        U;   a)   [        R                  [        U5      5      S:-   n+U+U)S<'   Sn*U*(       a  U)U$S='   Sn%U%(       a  U$U"S>'   Sn#0 n,Sn-[         U;   a   [        U5      n.S?n/U.R                  S
   R                  S
:X  a  U/S@-  n/OU/SA-  n/U/U,SB'   U.R                  S
   R                  S
:X  a  S n0OS3U.R                  S
   R                  -  n0[        R                  U05      U,SC'   Sn-U-(       a  U,U"SD'   Sn#[         U;   a&   [        U5      n1[        R                  U15      U"SE'   Sn#[         U;   a   [        U[        5      n2U2U"SF'   SGU"SH'   Sn#[         U;   a   [        U[        5      n3U3U"SI'   SGU"SJ'   Sn#U#(       a  U"USK'   [         U;   d
  [        U;   a   [        U5      n4U4USL'   SMUSN'   [         U;   d
  [        U;   a   [        U5      n5SOU5-  n6U6USP'   [         U;   dd  [        U;   dZ  [        U;   dP  [        U;   dF  [        U;   d<  [        U;   d2  [        U;   d(  [        U;   d  [        U;   d  [        U;   d
  [        U;   a  [        R                  U5      USQ'   0 n7Sn8[         U;   d  [        U;   d  [        U;   d
  [        U;   a  Sn8 [        U5      n9U9R                  SR-  SR-  n:U9R                  SR-  SR-  n;U9R                  SR-  SR-  U9R                  SR-  SR-  -
  n<[         U;   d
  [        U;   a  U:U7SS'   [         U;   d
  [        U;   a  U;U7ST'   [         U;   d
  [        U;   a  U<U7SU'   U8(       a
  SVU7SW'   U7USX'   [         U;   d
  [        U;   ap   [        U5      n9U9R                  SR-  SR-  n:U9R                  SR-  SR-  n;U9R                  SR-  SR-  U9R                  SR-  SR-  -
  n<0 n>U:U>SS'   U;U>ST'   U<U>SU'   SVU>SW'   U>USY'   [         U;   d
  [        U;   aH   [        U5      nU[        :X  a  SZn?O*U[        :X  a  S[n?OU[        :X  a  S\n?OU[        :X  a  S]n?OS^n? U?US_'   0 n@SnA[         U;   d  [        U;   d
  [        U;   aZ   [        U5      nBUBGR                   nCUBGR                  nD[         U;   d
  [        U;   a  WCW@S`'   [         U;   d
  [        U;   a  WDW@Sa'   SnA[         U;   d  G[        U;   a   G[        U5      u  nEnFUEnGWGW@Sb'   SnA[         U;   d  G[        U;   a   G[        U5      u  nEnFUEnHWHW@Sc'   SnAWA(       a
  SMW@SW'   U@USd'   [         U;   d  G[        U;   d  G[        U;   a_   G[        U5      u  nnUS
:w  a  SOSnIUS
:w  a  SOSnJ0 nK[         U;   d  G[        U;   a  WIWKSe'   [         U;   d  G[        U;   a  WJWKSf'   WKUSg'   [        GR                  X5      u  nLnMUM(       a  WLUSh'   [        GR                  X5      u  nNnOUO(       a  WNUSi'   0 nPSnQ[         U;   d  G[        U;   aN   G[        UG[        5      nRWRWPSj'   SnQ G[        UG[        5      nRWRWPSk'   SnQ G[        UG[         5      nRWRWPSl'   SnQWQ(       a
  SmWPSW'   UPUSn'   0 nSSnT[         U;   d  G["        U;   a   G[%        U5      nUUUS
:w  a  SoOS nVWVWSSp'   SnT[         U;   d  G[&        U;   a   G[)        U5      Sq-  nWUWnXWXWSSr'   SnT[         U;   d  G[*        U;   a   G[-        U5      Sq-  nYUYnZWZWSSs'   SnT[         U;   d  G[.        U;   a   G[1        U5      Sq-  nYUYnZWZWSSt'   SnT[         U;   d  G[2        U;   a   G[5        U5      Sq-  n[U[n\W\WSSu'   SnT[         U;   d  G[6        U;   d  G[8        U;   aS   G[;        U5      nYUYS
   Sq-  n]UYSv   Sq-  n^[         U;   d  G[6        U;   a  W]WSSw'   [         U;   d  G[8        U;   a  W^WSSx'   SnTWT(       a1   Sy[        R                  [        U5      5      -   n5U5WSSz'   S{USSW'   USUS|'   0 n_Sn`[         U;   d  G[<        U;   a   G[?        UG[@        5      naWaW_S}'   Sn`[         U;   d  G[<        U;   a   G[?        UG[B        5      nbWbW_S~'   Sn`[         U;   d  G[D        U;   a   G[?        UG[F        5      ncWcW_S'   Sn`W`(       a
  SW_SW'   U_US'   0 ndSne[         U;   d  G[H        U;   a   G[K        UG[@        5      naWaWdS}'   Sne[         U;   d  G[L        U;   a   G[K        UG[F        5      ncWcWdS'   SneWe(       a
  SWdSW'   UdUS'   0 nfSng[         U;   d  G[N        U;   a   G[Q        UG[@        5      naWaWfS}'   Sng[         U;   d  G[R        U;   a   G[Q        UG[F        5      ncWcWfS'   SngWg(       a
  SWfSW'   UfUS'   0 nhSni[         U;   d  G[T        U;   a   G[W        UG[@        5      naWaWhS}'   Sni[         U;   d  G[X        U;   a   G[W        UG[B        5      nbWbWhS~'   Sni[         U;   d  G[Z        U;   a   G[W        UG[F        5      ncWcWhS'   SniWi(       a
  SWhSW'   UhUS'   [         U;   d  G[\        U;   aB  0 nj G[_        U5      u  nknlUkG[`        :X  a  SnmOSnmWlG[`        :X  a  SnnOSnn WmWjS'   WnUjS'   UjUS'   [         U;   d  G[d        U;   a}  / no G[g        U5      npUp HQ  nq0 nrUqUrS'   SUrSW'   / ns G[i        UUq5      n_U_ H  ntWsGRk                  Ut5        M     WsWrS'   WoGRk                  Ur5        MS     G[m        Wo5      S
:  a  WoOSUS'   [         U;   d  G[n        U;   a  / nu G[q        U5      nvUv H  nw [        R                  G[s        UwGRt                  5      5      nx0 nyWwGRt                  UyS'   WxUyS'   UwGRz                  S:X  a  S
ncOG[}        WwGRz                  SR-  SR-  5      ncWcWyS'   SVUySW'   WuGRk                  Uy5        M     G[m        Wu5      S
:  a  WuOSUS'   [         U;   d  G[~        U;   a   G[        U5      nz/ n{Uz H  n| G[        UU|5      n}SU}GR                  -  n~SU}GR                  -  nU}GR                  S:X  a  S nOSW}GR                  SR-  SR-  -  nSW}GR                  -  nSU}GR                  -  n0 nSW|-  US'   W~US`'   WUSa'   WUS'   WUS'   WUS'   W{GRk                  U5        M     G[m        W{5      S
:  a  W{OSUS'   G[m        U5      S
:  d  GM  UGRk                  U5        GM     G[m        U5      S
:  a  XCS'   U$ ! , (       d  f       GN= f! [8         a   n[        R;                  U5      n
 SnAGNdSnAff = f! [8         a   n[        R;                  U5      n SnAGNeSnAff = f! [8         a   n[        R;                  U5      n SnAGNfSnAff = f! [8         a   n[        R;                  U5      n SnAGNgSnAff = f! [8         a   n[        R;                  U5      n SnAGNhSnAff = f! [8         a   n[        R;                  U5      n SnAGN^SnAff = f! [8         a   n[        R;                  U5      n SnAGNWSnAff = f! [8         a   n[        R;                  U5      n SnAGNQSnAff = f! [8         a   n[        R;                  U5      n SnAGNLSnAff = f! [8         a   n[        R;                  U5      n SnAGNASnAff = f! [8         a   n[        R;                  U5      n SnAGN6SnAff = f! [8         a   n[        R;                  U5      n SnAGN+SnAff = f! [8         a   n[        R;                  U5      n SnAGN SnAff = f! [8         a   n[        R;                  U5      n SnAGNSnAff = f!   Un GN= f! [8         a   n[        R;                  U5      n SnAGNSnAff = f! [8         a   n[        R;                  U5      n SnAGNSnAff = f! [8         a   n[        R;                  U5      n SnAGNSnAff = f! [8         a   n[        R;                  U5      n SnAGNSnAff = f! [8         a   n[        R;                  U5      n SnAGNSnAff = f! [8         a   n[        R;                  U5      n SnAGNSnAff = f! [8         a   n[        R;                  U5      n( SnAGNYSnAff = f! [8         a   n[        R;                  U5      n( SnAGNLSnAff = f! [8         a   n[        R;                  U5      n+ SnAGN*SnAff = f! [8         a   n[        R;                  U5      n+ SnAGNSnAff = f! [8         a;  n[        R;                  U5      U,SB'   [        R;                  U5      U,SC'    SnAGNSnAff = f! [8         a#  n[        R;                  U5      U"SE'    SnAGNSnAff = f! [8         a#  n[        R;                  U5      U"SF'    SnAGNSnAff = f! [8         a#  n[        R;                  U5      U"SI'    SnAGNSnAff = f! [8         a   n[        R;                  U5      n4 SnAGNSnAff = f! [8         a   n[        R;                  U5      n6 SnAGNSnAff = f! [8         a&  n[        R;                  U5      n=U=n:U=n;U=n< SnAGNSnAff = f! [8         a&  n[        R;                  U5      n=U=n:U=n;U=n< SnAGN6SnAff = f! [8         a   n[        R;                  U5      n? SnAGNSnAff = f! [8         a$  n[        R;                  U5      n=U=nCU=nD SnAGNSnAff = f! [8         a"  n[        R;                  U5      n=U=nG SnAGNSnAff = f! [8         a"  n[        R;                  U5      n=U=nH SnAGNSnAff = f! [8         a$  n[        R;                  U5      n=U=nIU=nJ SnAGNSnAff = f! [8         a   n[        R;                  U5      nR SnAGNSnAff = f! [8         a   n[        R;                  U5      nR SnAGNSnAff = f! [8         a   n[        R;                  U5      nR SnAGN!SnAff = f! [8         a   n[        R;                  U5      nV SnAGNSnAff = f! [8         a   n[        R;                  U5      nX SnAGNSnAff = f! [8         a   n[        R;                  U5      nZ SnAGNSnAff = f! [8         a   n[        R;                  U5      nZ SnAGNSnAff = f! [8         a   n[        R;                  U5      n\ SnAGNSnAff = f! [8         a$  n[        R;                  U5      n=U=n]U=n^ SnAGNSnAff = f! [8         a   n[        R;                  U5      n5 SnAGNSnAff = f! [8         a   n[        R;                  U5      na SnAGNSnAff = f! [8         a   n[        R;                  U5      nb SnAGNSnAff = f! [8         a   n[        R;                  U5      nc SnAGNSnAff = f! [8         a   n[        R;                  U5      na SnAGNSnAff = f! [8         a   n[        R;                  U5      nc SnAGNSnAff = f! [8         a   n[        R;                  U5      na SnAGN{SnAff = f! [8         a   n[        R;                  U5      nc SnAGNySnAff = f! [8         a   n[        R;                  U5      na SnAGNbSnAff = f! [8         a   n[        R;                  U5      nb SnAGN`SnAff = f! [8         a   n[        R;                  U5      nc SnAGN^SnAff = f! G[b         a    S nmS nn GN[8         a5  n[        R;                  U5      nm[        R;                  U5      nn SnAGNQSnAff = f! [8         a   n[        R;                  U5      ns SnAGNSnAff = f! [8         a#  n[        R;                  U5      WoS'    SnAGN$SnAff = f! [8         a=  nUGRv                  G[x        :X  a   SnAGM  [        R;                  U5      nx SnAGNSnAff = f! [8         a   n[        R;                  U5      nu SnAGNSnAff = f! [8         aG  nUGRv                  G[x        :X  a   SnAGM  [        R;                  U5      nUn~UnUnUnUn SnAGNdSnAff = f! [8         a#  n[        R;                  U5      US'    SnAGNDSnAff = f! [8         a,  nG[        SUGR                  5       -   S-   5         SnAU$ SnAff = f)a4  
Provides a Python interface to GPU management and monitoring functions.

This is a wrapper around the NVML library.
For information about the NVML library, see the NVML developer page
http://developer.nvidia.com/nvidia-management-library-nvml

Examples:
---------------------------------------------------------------------------
For all elements as a list of dictionaries.  Similiar to nvisia-smi -q -x

$ DeviceQuery()

---------------------------------------------------------------------------
For a list of filtered dictionary elements by string name.
Similiar ot nvidia-smi --query-gpu=pci.bus_id,memory.total,memory.free
See help_query_gpu.txt or DeviceQuery("--help_query_gpu") for available filter elements

$ DeviceQuery("pci.bus_id,memory.total,memory.free")

---------------------------------------------------------------------------
For a list of filtered dictionary elements by enumeration value.
See help_query_gpu.txt or DeviceQuery("--help_query_gpu") for available filter elements

$ DeviceQuery([NVSMI_PCI_BUS_ID, NVSMI_MEMORY_TOTAL, NVSMI_MEMORY_FREE])

Nr  r  r  r  r  rp   rq   rr   r   idproduct_nameproduct_brandr  r  r{   r|   r}   accounting_modeaccounting_mode_buffer_sizeFr  r  
current_dmT
pending_dmdriver_modelru   rw   r  r~   r  multigpu_boardre  rd  r  board_idimg_version
oem_object
ecc_object
pwr_objectinforom_versioncurrent_gompending_gomgpu_operation_modez%02Xpci_bus
pci_devicez%04X
pci_domainr  pci_device_id
pci_bus_idpci_sub_system_idmax_link_gencurrent_link_genpcie_genr  max_link_widthcurrent_link_widthlink_widthspci_gpu_link_infor   r  r  bridge_chip_typebridge_chip_fwpci_bridge_chipreplay_countertx_utilzKB/stx_util_unitrx_utilrx_util_unitr  	fan_speed%fan_speed_unitr  performance_stateclocks_throttler  r  r1  freeMiBunitfb_memory_usagebar1_memory_usager  r  r  r  r   r   r  memory_utilr  r  r  current_eccpending_eccecc_mode
ecc_errorsretired_pagesgpu_tempgpu_temp_max_thresholdgpu_temp_slow_thresholdCr  r  power_managementr  
power_drawpower_limitdefault_power_limitenforced_power_limitr   min_power_limitmax_power_limitr  power_stateWr  graphics_clocksm_clock	mem_clockMHzr   applications_clocksdefault_applications_clocks
max_clocksr  r  
auto_boostauto_boost_defaultclock_policyr  supported_graphics_clockrW  supported_clocksrv  process_nameused_memory	processesr  r  r  r  max_memory_usager   r  accounted_processesr?  r  r  )r  r  rZ  r   r   r  r  r  r  r  r  r   r  r  r  r  r  r   r  r   r   r  r  r  r  r  r  r  r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  %_nvidia_smi__GetClocksThrottleReasonsr-  r.  r/  r0  r  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  _nvidia_smi__GetEcc_nvidia_smi__GetRetiredPagesrJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  r[  r\  r]  r^  r_  r`  ra  rb  rc  rd  re  rf  rg  rh  ri  rj  rk  rl  rm  rn  rk  ro  rp  rq  rr  r   r=  rs  rt  ru  rv  r  rw  rx  intry  rz  r{  r|  r}  r~  r   r  printr  )r   r   r  nvidia_smi_results
dictResultr   r   
gpuResultsr   r  r  r  r  r}  r  r  r  r  r  ru   rw   r  r  r  r  r  r  r  r  r  r?  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rP  bar1MemoryUsager  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rm  rn  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  clockPolicyr  r  r  r  supportedClocksr  r  supportMemClocksupportedGraphicsClocksr  r8  r  r   rs   processInfor  accountProcessrv  r  r|  r}  r~  r   r  accountProcessInfos                                                                                                                                       r   r   nvidia_smi.DeviceQuery  s:!   < .;&vs## fn++333,,,c2c 32 "99&Af<&jq<6!_%>.8.C.CHMMDWDWDY.Z -6!%9V%C3=3H3HIcIe3f !12*,+6![F%:*5)K(aj~~a(f,V4gv%)9V)C#-#8#8#G*T"v%v)=-7-B-BCTU[C\-]*^,@"34Fv4N"Oi /8_- v%);v)E<-Ef-MQR-RyYce .3^,v%)=)G<-G-OST-Ty[ee 05-.v%)?6)I;+G+OST+TY[ed 26/0v%F)B;+Fv+NRS+SYZdd 15./v%)?6)IA#-#8#89Z[a9b#cj =G:;k#( v%)?6)I>+J6+RVf+fmrg -4+l+'+$v%)Cv)M>+J6+RVf+fmrg /6+l+'+$#/:^,v%);v)E=26:f *4)>)>v)F*X&v%v)=;.v6d (2'<'<T'B*V$v%)>C%=f%El 0:/D/D\/R*^,v%F)B<7?e 1;0E0Ee0L*_-v%F)BF'A&'I #e+7<
#34$7<
#347;
#34v%6)A> 4V <g'%/f ,2*Z(!n$nv%):f)D:<VDc 3=2G2G2L./#'.v%):f)D:7@PQc 2<1F1Fs1K..#'.v%):f)D:7@PQc 2<1F1Fs1K..#'.v%):f)D:7@RSc 2<1F1Fs1K..#'.2@*./!# jv%):f)D> * 5 56Z[a6b cg 5?4I4I'4R"=1#*v%):f)D> * 5 56Z[a6b cg 5?4I4I'4R"=1#*5E*12c jv%&)@#)GKK#7#i.#*v%)9V)C&,w~~&=#l##*v%)9V)C&,w~~&=#l##*v%)<)F)/73F3F)G#o&#*v%)9V)C&0&;&;GMM&J#l##*v%)?6)I-3w7M7M-N#)*#*!n %of jv%)?6)I:&112TU[2\]c ,/&(#*v%)?6)I:&112UV\2]^c 03&+,#*/5.,$(/ m"'v%)AV)K<(334QRX4YZ]``e 5:- 01&*#v%)AV)K<(334RSY4Z[^aae 9>- 45&*#"2?./$(/ -;#)*#* m"'v%V(CF(Ko$&k(77:??1D%.+%/+:Em$67(77:DDI).,)/?3Q3QRS3T3^3^)_,8B8M8Ml8[m$45
 '+#"+8#'(#*v%L=fEf.8.C.CF.Kc*+  $*v%E!<VE\!]h'/c)n,2c.)  $*v%E!<VE\!]h'/c)n,2c.)  $*%(*U#v%F)B:1&9c ,/*[)03*-.v%)?C"9&"Ai%*Y%6l 4@*01 v%8FB5?3v=:fD9VC:fDBfLDNBfL9VC1;1V1VW]1^*./ m#( v%$.#v-#v-'+$	' 7 ?g")--$"6"=i!(!4t!;h!(!5!<w||d?RUY?Y!Yh  6)-?6-I-6mG,6)->&-H,4mF+6)->&-H,4mF+#(--'2?*./v%):f)D	' ;F Cg")"3"3d":T"Ai!(!1!1D!84!?h!(!2!2T!9D!@7CSCSVZCZ]aCa!ah %'/+4/'**2/&)*2/&)*//&)4C*01v%);v)E>5f=d!99$-'#DD$6'#>>$0'#EE$7'$-' 07*^,k#( v%'61'61':6Bd!%h!%h  6)-Bf-L08k*-6)-Bf-L3;k-0'+$v%)Bf)L+*I&*Q'x%-l
 1=+n-'+$v%)Bf)L+*I&*Q'x%-l
 1=+n-'+$#(++f%.9*]+v%$.(F2'+?+G(w/6!|*h/6!|*h '6)-?6-I/7gm,6)-Cv-M/7gm,+2*Z( .8-@-@-P(i(!-6*\*2<2N2Nv2^/l/$0<*_-k#( v%)>&)H;5f>RSd -1+j)'+$;>vGjkd ;?+67'+$;>vGjkd <@+78'+$#(++f%.9*]+!n%*"v%)9V)C@?Gf171+%i 8A.!34)-&v%)9V)CA 7 ?& Hg#*j 2<..)-&v%):f)DB"CF"Kf"Th$,k 3>./)-&v%)Bf)LB"J6"RU["[h$,k ;F.!67)-&v%)Cv)MJ*I&*QTZ*Z&,<) <O.!78)-&v%'61'61-!Mf!Uh'/{V';n'/{V';n  6)-Bf-L:Hn%676)-Bf-L:Hn%67)-&%@"%
(=(=>UV\>](^"^i 3<./+..(1?*-.f#mf$(AV(K?!7@S!Th .6&)*"&-f$(AV(K91&-Hb (*&$"&-f$(?6(I:26>Jc ),&%"&-#(&.)/*X&"$!&f$(Bf(L?!?H[!\h 9A#$45%)"f$(@F(J::6>Rc 47#K0%)"!.3#F+6G*23)+&(-%f$(Jf(T?!FvOb!ch @H*+;<,0)f$(HF(R:A&.Yc ;>*;7,0)(5:*62>V*:;i!&f$(AV(K?!:6CV!Wh 19),-%)"f$(;v(E94V]Kb +-)J'%)"f$(?6(I:5fnMc ,/)K(%)"!&+)F#-6*\*v%)<)F "+J:_`f:g7l$7%)>>).,)-,,0EE05-04- /;+l+6I+23/:*^,v%)?6)I$&/O"DV"Li(!,./78/)449/&1461V'KFTU'Vf'-!"9"@"@"C (.
 I`/*DE)00/C  )* GJ/FZ]^F^?dh*/0v%);v)E )@B6Je  %!G%/%:%:;STUTYTY;Z%[d )++/0uu+e,8<+n5oo5$%c$'$(>(E$Fc7:+m405+f-#**K9'  %2 :=Y!9KIQU*[)v%)=)G(X8@d')n!%#/&B63&Oe/69M9M/Mn29E<S<S2S/"'"6"6$">38.3;u?S?SVZ?Z]a?a3b.%,uzz%9d+/%//+Aj 02,6:Sj,U3;I,Z8>O,];CQ,-?@7;,V4=G,\:(//1CE= "&@ MPP^L_bcLc.imj!67 j/A%##J/C )F *o!(2'
  y 32B # @",":":3"?i@ # <(66s;e< # <(66s;e< # ;'55c:d; # ;'55c:d; # A#-#;#;C#@jA # > * 8 8 =g> # > * 8 8 =g> # =)77<f= # ;'55c:d; # C%/%=%=c%BlC # <(66s;e< $ F'1'?'?'DF # > * 8 8 =g>
'&f # :&44S9c: # :&44S9c: # :&44S9c: # :&44S9c: # > * 8 8 =g> # > * 8 8 =g>X # :&44S9c: # :&44S9c:  # <(66s;e< # <(66s;e<@ # V:D:R:RSV:Wm$678B8P8PQT8Um$45V # L.8.F.Fs.Kc*+L # E'1'?'?'Dc)nE # E'1'?'?'Dc)nE # :&44S9c: # C%/%=%=c%BlC> # '(66s;e"'i!&h!&h	'2 # '(66s;e"'i!&h!&h	'4 # > * 8 8 =g> # '(66s;e!&h!&h'" # +(66s;e%*l+ # +(66s;e%*l+$ # '(66s;e!&h!&h': # ;'55c:d; # ;'55c:d; # ;'55c:d;  # @",":":3"?i@ # A#-#;#;C#@jA # B$.$<$<S$AkB # B$.$<$<S$AkB # J,6,D,DS,I)J # -(66s;e',n',n- # @",":":3"?i@ # ?!+!9!9#!>h? # 9%33C8b9 # :&44S9c: # ?!+!9!9#!>h? # :&44S9c: # ?!+!9!9#!>h? # :&44S9c: # ?!+!9!9#!>h? # 9%33C8b9 # :&44S9c:. 0 2%*l,1)" J%/%=%=c%Bl,6,D,DS,I)J. "+ V8B8P8PQT8U5V # O1;1I1I#1Nog.O "+ G"%))/C"C"*)3)A)A#)F$G& # @",":":3"?i@, "+ 	/"%))/C"C"*$.$<$<S$Ac/2n25//2n%(d+.j	/. # X:D:R:RSV:Wj!67X  <
"S[[]2T9
;
;<ss  ATD5BD AT !BD :AUBD &AU:9BD AV'%BD >AWBD *AXBD %AX.<BD AY/&BD AZ!,BD AZ5,BD A[",BD >A\	,BD 6A\<2BD 4A]) A^BD #A^ ..BD A_-.BD A_:,.BD A`'+>BD *Aa.BD 7AbEBD Ab.:BD Ac4-BD "!AdBD !Ad5 1BD 2BAe" BD #Af*>BD Ag%BD 2Ah
"BD /Ah::BD Ai')B9BD #AAj7A0BD (AAk</BD ,Ak:BD Ak:BD Ak:BD Ak:*BD +Ak:-(BD %Al';A	BD AmBD 3An8BD =#An6 BBD ?Ao'BD Ap+BD 3Aq1BD 7Aq.BD *Ar;BD As)BD As5BD 4At"'BD -Au	=BD !Av ((BD @Av-@#BD A AwABD A/AxB1BD B3Ax4CBD C"Ay!C41BD D&AzD8BD EAz;E'1BD FA{(F+BD GA|GBD G7A}H	/BD H9,A}/I%BD I&A}/I('BD JA/J0(AKA/K3.BD L"BA)L4*B@MA(BA)O,BD O3BC*PA7BBQ>ABC*SBD S!+BD T
ATT 
AU
T*AUT?BD UAU
U
BD U
AU7UAU2U,BD U2AU7U7BD U:
AV$VAVVBD VAV$V$BD V'
AWV1AWWBD WAWWBD W
AW>WAW9W3BD W9AW>W>BD X
AX+XAX&X BD X&AX+X+BD X.
AYX8AYYBD YAYYBD Y
AZY%AZ Y:BD Z AZZBD Z
AZ2ZAZ-Z'BD Z-AZ2Z2BD Z5
A[Z?A[[BD [A[[BD ["
A\[,A\\BD \A\\BD \
A\9\A\4\.BD \4A\9\9BD \<
A]&]A]!]BD ]!A]&]&BD ])
A^]3A^^BD ^A^^BD ^A^^BD ^ 
A_
^*A_^?BD _A_
_
BD _
A_7_A_2_,BD _2A_7_7BD _:
A`$`A``BD `A`$`$BD `'
Aa`1AaaBD aAaaBD a
Aa>aAa9a3BD a9Aa>a>BD b
Ab+bAb&b BD b&Ab+b+BD b.
Acb8AccBD cAccBD c
Adc%Ad c:BD d AddBD d
Ad2dAd-d'BD d-Ad2d2BD d5
Aed?AeeBD eAeeBD e"
Af'e,0Af"fBD f"Af'f'BD f*
Agf4AggBD gAggBD g
Ahg$Ahg<BD hAhhBD h

Ah7hAh2h,BD h2Ah7h7BD h:
Ai$iAiiBD iAi$i$BD i'
Aji1AjjBD jAjjBD j
AkjAj?j9BD j?AkkBD k
Ak7kAk2k,BD k2Ak7k7BD k:
Al$lAllBD lAl$l$BD l'
Aml1Amm
BD mAmmBD m
Anm"Am?m9BD m?AnnBD n
An3nAn.n(BD n.An3n3BD n6
Ao$o AooBD oAo$o$BD o'
Apo1AppBD pAppBD p
Ap>pAp9p3BD p9Ap>p>BD q
Aq+qAq&q BD q&Aq+q+BD q.
Arq8ArrBD rArrBD r
Asr%As r:BD s AssBD s
As2sAs-s'BD s-As2s2BD s5
Ats?AttBD tAttBD t"
Aut,AuuBD uAuuBD u
Au=uAu8u2BD u8Au=u=BD v 
Av*v
Av%vBD v%Av*v*BD v-
Awv7AwwBD wAwwBD w
Axw$Aw?w9BD w?AxxBD x
Ax1xAx,x&BD x,Ax1x1BD x4
Ayx>AyyBD yAyyBD y!
Azy+Azz BD zAzzBD z
Az8zAz3z-BD z3Az8z8BD z;
A{%{A{ {BD { A{%{%BD {(
A|{2A||BD |A||BD |
A|?|A|:|4BD |:A|?|?BD }
A},}A}'}!BD }'A},},BD }/A~?}>BD ~	A~?~
*A~:~4BD ~:A~?~?BD 
A,A'!A/'A,,A//
B@9B@@BD @B@@BD @
BA&@)BA!@?BA)ABA!ABA)A!BA&A&BA)A)
BBA3BBBBD BBBBBD B
BC'B BC"B6BC*B=BC"CBC*C"BC'C'BC*C*
BDC4BDDBD DBDDBD D
BED$!BEEBEc           
         Sn UR                  5        GH  u  pE[        U[        R                  5      (       aR  [	        UR                  5       5      S:  a$  X2< U< S3-  nX0R                  USU-   5      -  nMf  X2< U< SS< S3-  nMw  [        U5      [        L ap  [        US   [        R                  5      (       aN  [        S[	        U5      5       H3  nUSX$US	-   [	        U5      4-  -  nX0R                  XV   SU-   5      -  nM5     M  X2< U< S[        U5      < S3-  nGM     U$ ! [         a  nUS
[        U5      -   -  n S nAU$ S nAff = f)Nr   r   z:
  : Noner  %s%s: [%d of %d]
r   z	
[Error] )itemsr  collectionsMappingr=  r   _nvidia_smi__to_str_dictionaryr  r  r   rZ  r   )r   r  indent
strResultskeyr  r   es           r   __to_str_dictionarynvidia_smi.__to_str_dictionary
  s9   j.gcC!4!455&* $<<j $<$<S$v+$NNj F3v$FFjI%Js1v{?R?R,S,S 3s8,a %9F!CPSH;U$UUj $<$<SVDK$PPj - fS#c(CC
 '"   .
s1v-
-*.s   D&D, ,
E6EEc           
      0   SnSnUR                  5        H}  u  pE[        U5      [        L aN  [        S[	        U5      5       H3  nUSX4US-   [	        U5      4-  -  nX R                  XV   SU-   5      -  nM5     Me  X#< U< S[        U5      < S3-  nM     U$ )Nr   rM  r   rP  r   rN  r  )rQ  r  r  r   r=  rT  rZ  )r   r   rV  rU  rW  r  r   s          r   __to_strnvidia_smi.__to_str
  s    jf]]_'##Y$Qs3x(!!5AaCC7Q QQ* 8 8V LL* ) F3CAAj % r   c                 L    [        U5      [        L a  U$ U R                  U5      $ r   )r  rZ  _nvidia_smi__to_str)r   r   s     r   formatnvidia_smi.format
  s"    	g#	.]]7##r   r   r   r   )$r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r*  r4  rF  rH  r<  ri  ru  rI  r=  r  r,  r;  r   r   classmethodr  r   rT  r_  r`  r   r   r   r   r   r   O  s   *),$ ,$\ # # K K?     - -^ / /b " "H  B &7 &7P "@ "@H 6 6. 8 84 R R8 [ [4    : V V<     h hT _  _ B,$r   r   __main__c                     Sn S n[        S[        [        R                  5      5       H>  n[        R                  U   nUR	                  5       S:X  a  Sn M.  UR	                  5       nM@     [
        R                  5       nU (       a  UR                  U5      nOUR                  U5      n[        UR                  U5      5        g )NFr   xmlT)r   r=  sysargvlowerr   r   r  r   r?  r`  )as_xmlquery_gpu_argsr   vr   r   s         r   mainrl  
  s    qSXX'AA	U"!" ( &&(**>:G''7Gell7#$r   )r  pynvmlr  rR  r   	threadingr   r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  NVSMI_GOM_CURNVSMI_GOM_PENDINGr  r   r-  r/  r.  r6  r2  r<  r=  rA  rC   NVSMI_ENCODER_STATS_SESSIONCOUNTNVSMI_ENCODER_STATS_AVG_EPSNVSMI_ENCODER_STATS_AVG_LATENCYrE  rF  r  r  r  r  r  (NVSMI_ECC_ERROR_CORRECTED_VOLATILE_TOTALr  r  r  r  r  r  r.  r/  r0  r1  r2  r3  r6  r7  r8  r9  r:  r;  rg  rh  rj  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  rJ  NVSMI_TEMPERATURE_MEMORYrP  rR  rT  rX  rV  rZ  r[  r]  NVSMI_CLOCKS_SM_CURra  NVSMI_CLOCKS_VIDEO_CURrc  re  rf  rh  ri  rk  rl  rs  ry  rm  rp  r   NVML_BRAND_UNKNOWNNVML_BRAND_QUADRONVML_BRAND_TESLANVML_BRAND_NVSNVML_BRAND_GRIDNVML_BRAND_GEFORCEr  r   r   rl  r   r   r   <module>r~     s=
  :&      	 
 
                             #&  ! "%   -/ *-/ *-/ *-/ *-/ *+- (.0 +.0 +.0 +.0 +.0 +,. )/2 ,/2 ,/2 ,/2 ,/2 ,-0 *03 -03 -03 -03 -03 -.1 +*- '*- '  ), &&) #$' !+. (*- '+. (36 058 236 0*- '                 %( "#&         ) K :	
 z  # : z ! ! ! m ! '  .!" 2#$ .%& 6'( 2)* K+, %-. )/0 -12 o34 356 178 59: O;< #=> %?@ #AB #CD #EF %GH -IJ !KL #MN !!2OP QR \ST ((NUV %%HWX ''HYZ ::b[\ ++R]^ **R_` 22bab 66hcd 22bef ))Pgh %ij #kl #mn %op +qr .st !!Auv :wx ##Byz ){| -}~ 22\@ 22\AB --WCD --WEF 33]GH **RIJ 33^KL 33^MN ..YOP ..YQR 44_ST ++TUV 44`WX 44`YZ //[[\ //[]^ 55a_` ,,Vab 55bcd 55bef 00]gh 00]ij 66ckl --Xmn ))Pop ?qr %%Lst ?uv 6wx +yz 1{| '}~ !@ #AB 5CD 3EF +GH +IJ 7KL )MN +OP #QR 3ST (UV 1WX )YZ ##=[\ 7]^ !!9_` 6ab ++Mcd %%Gef ))Igh &&Fij 3kl -mn 'op (/,-%) }B (9&8%7#5$6'9 U&$ U&$pL z%( 	F+ r   