+
    9i                         ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIt^ RI	t	^ RI
HtHtHtHtHtHtHtHt  ! R R4      tR tRR R lltRR	 R
 llt]R8X  d"   ]! 4       t]! ]! ]P4                  4      4       R# R# )    N)environ)	NVMLErrornvmlDeviceGetCountnvmlDeviceGetHandleByIndexnvmlDeviceGetMemoryInfonvmlDeviceGetNamenvmlInitnvmlShutdownnvmlSystemGetDriverVersionc                      a  ] tR t^t o RtRR ltR tV 3R lR ltV 3R lR ltV 3R	 lR
 lt	V 3R lR lt
V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltRtV tR# )MachineInfoz'Class encapsulating Machine Info logic.Nc                T   Wn         VfG   \        P                  ! R\        P                  R7       \        P                  ! \
        4      V n        MW n        R V n         V P                  4       V n        R #   \         d'    T P                  P                  R4       R T n         R # i ; i)Nz3%(asctime)s - %(name)s - %(levelname)s: %(message)s)formatlevelz"Exception in getting machine info.)silentloggingbasicConfigINFO	getLogger__name__loggermachine_infoget_machine_info	Exception	exception)selfr   r   s   &&&c/var/www/html/photoedit/myenv/lib/python3.14/site-packages/onnxruntime/transformers/machine_info.py__init__MachineInfo.__init__    s    >Lll "++H5DK K 	% $ 5 5 7D 	%KK!!"FG $D	%s   A6 6-B'&B'c                h   V P                  4       p\        P                  ! 4       pRVRV P                  4       RV P                  4       R\        P                  ! 4       RV P                  VR.4      RV P                  4       RV P                  4       R	V P                  4       R
V P                  4       /	pV# )z!Get machine info in metric formatgpucpumemoryospythonpython_versionpackagesonnxruntimepytorch
tensorflow)
get_gpu_info_by_nvmlcpuinfoget_cpu_infoget_memory_infoplatform_try_getget_related_packagesget_onnxruntime_infoget_pytorch_infoget_tensorflow_info)r   gpu_infocpu_infor   s   &   r   r   MachineInfo.get_machine_info3   s    ,,.'') 84$$&d**,(##%dmmH/?.@A1134446t,,.$224

     c                    < V ^8  d   QhRS[ /#    returndict)r   __classdict__s   "r   __annotate__MachineInfo.__annotate__E   s     @ @ @r8   c                `    \         P                  ! 4       pRVP                  RVP                  /# )zGet memory infototal	available)psutilvirtual_memoryrC   rD   )r   mems   & r   r.   MachineInfo.get_memory_infoE   s'    ##%K??r8   c                ,   < V ^8  d   QhRS[ RS[RS[/# )r;   r6   namesr<   )r>   liststr)r   r?   s   "r   r@   rA   J   s"       d s r8   c           	         V F]  pW19   g   K  W,          p\        V\        \        34      '       d-   R P                  V Uu. uF  p\	        V4      NK  	  up4      u # Vu # 	  R# u upi ), )
isinstancerK   tuplejoinrL   )r   r6   rJ   namevalueis   &&&   r   r0   MachineInfo._try_getJ   s[    D edE]3388U$;USVU$;<<   %<s   A&
c                    < V ^8  d   QhRS[ /# r:   r=   )r   r?   s   "r   r@   rA   S   s     
 
d 
r8   c                d   \         P                  ! 4       pRV P                  VRR.4      R\        P                  ! RR7      R\        P                  ! RR7      RV P                  VR	.4      R
V P                  VR.4      RV P                  VR.4      R\
        P                  ! 4       P                  /# )zGet CPU infobrand	brand_rawcoresF)logicallogical_coresThz	hz_actuall2_cachel2_cache_sizeflags	processor)r,   r-   r0   rE   	cpu_countr/   unamerc   )r   r6   s   & r   r-   MachineInfo.get_cpu_infoS   s    '') T]]8g{-CDV%%e4V--d;$--;-8h0ABT]]8gY7)33
 	
r8   c                    < V ^8  d   QhRS[ /# r:   r=   )r   r?   s   "r   r@   rA   a   s      d r8   c                   . pRp \        4        \        4       p\        4       p\        V4       FX  p\	        V4      p\        V4      p/ pVP                  VR&   VP                  VR&   \        V4      VR&   VP                  V4       KZ  	  \        4        RTRT/p	R\        9   d   \        R,          T	R	&   T	#   \         d:   pT P                  '       g   T P                  P                  RT4        Rp?R# Rp?ii ; i)
zGet GPU info using nvmlNmemory_totalmemory_availablerS   z-Error fetching GPU information using nvml: %sdriver_versiondevicesCUDA_VISIBLE_DEVICEScuda_visible)r	   r   r   ranger   r   rC   freer   appendr
   r   r   r   errorr   )
r   gpu_info_listrk   deviceCountrU   handleinfor5   rr   results
   &         r   r+    MachineInfo.get_gpu_info_by_nvmla   s    	J79N,.K;'3A6.v6+/::(/3yy+,#4V#< $$X. ( N #NI}M!W,%,-C%DF>"  	;;;!!"QSXY	s   BB8 8C<.C77C<c                0   < V ^8  d   QhRS[ S[,          /# r:   )rK   rL   )r   r?   s   "r   r@   rA   }   s     % %d3i %r8   c                   0 Rmp/ p\         P                  P                  4        FX  pVP                  R,          P                  4       V9   g   K+  VP                  W#P                  R,          P                  4       &   KZ  	  V# )onnxruntime-gpuName>   onnxnumpysympytorchprotobufr*   flatbuffersr(   transformersr{   onnxconverter-common)	importlibmetadatadistributionslowerversion)r   related_packagesrelated_packages_listdists   &   r   r1    MachineInfo.get_related_packages}   sm    
 !#&&446D}}V$**,0@@GK||%mmF&;&A&A&CD 7 %$r8   c                    < V ^8  d   QhRS[ /# r:   r=   )r   r?   s   "r   r@   rA      s      d r8   c                ^    ^ RI pRVP                  RRVP                  4       9   /#   \         d9   pT P                  '       g   T P
                  P                  T4        Rp?R# Rp?i\         d:   pT P                  '       g   T P
                  P                  TR4        Rp?R# Rp?ii ; i)r   Nr   support_gpuCUDAExecutionProviderF)r(   __version__get_available_providersImportErrorr   r   r   r   )r   r(   rr   r   s   &   r   r2    MachineInfo.get_onnxruntime_info   s    	 ;226+:]:]:__   	;;;%%e, 	;;;%%i7	s&   $' B,-A%%B,2B,3.B''B,c                    < V ^8  d   QhRS[ /# r:   r=   )r   r?   s   "r   r@   rA      s      $ r8   c                    ^ RI pRVP                  RVP                  P                  4       RVP                  P                  /#   \
         d9   pT P                  '       g   T P                  P                  T4        Rp?R# Rp?i\         d:   pT P                  '       g   T P                  P                  TR4        Rp?R# Rp?ii ; i)r   Nr   r   cudaF)
r   r   r   is_availabler   r   r   r   r   r   )r   r   rr   r   s   &   r   r3   MachineInfo.get_pytorch_info   s    	 5,,uzz668** 
  	;;;%%e, 	;;;%%i7	s*   AA C	-BC	C	.CC	c                    < V ^8  d   QhRS[ /# r:   r=   )r   r?   s   "r   r@   rA      s      T r8   c                    ^ RI pRVP                  P                  RVP                  P                  RVP                  P                  4       /#   \         d9   pT P                  '       g   T P                  P                  T4        Rp?R# Rp?i\         d9   pT P                  '       g   T P                  P                  T4        Rp?R# Rp?ii ; i)r   Nr   git_versionr   )r*   r   VERSIONGIT_VERSIONtestis_built_with_cudar   r   r   r   ModuleNotFoundError)r   tfrr   s   &  r   r4   MachineInfo.get_tensorflow_info   s    	# 2::--rzz55rww99; 
  	;;;%%e," 	;;;%%e,	s*   AA C-BCC-CC)r   r   r   )FN)r   
__module____qualname____firstlineno____doc__r   r   r.   r0   r-   r+   r1   r2   r3   r4   __static_attributes____classdictcell__)r?   s   @r   r   r      sd     1%&$@ @
 
 
 8% %* " $ r8   r   c                      \         P                  ! 4       p V P                  R RRRR7       V P                  RR7       V P	                  4       pV# )z--silentF
store_truezDo not print error message)requiredactionhelp)r   )argparseArgumentParseradd_argumentset_defaults
parse_args)parserargss     r   parse_argumentsr      sU    $$&F
)	   u%DKr8   c                $    V ^8  d   QhR\         /# r:   rL   )r   s   "r   r@   r@      s     6 6S 6r8   c                 \    \        V 4      p\        P                  ! VP                  ^R7      # )r;   indent)r   jsondumpsr   )r   machines   & r   r   r      s#    &!G::g**155r8   c                $    V ^8  d   QhR\         /# r:   r   )r   s   "r   r@   r@      s     & &C &r8   c                     \        V 4      pVP                  pV'       d-   VP                  4        UUu/ uF  w  r4VR9   g   K  W4bK  	  ppp\        P                  ! V^R7      # u uppi )r!   r   )r!   r"   r#   )r   r   itemsr   r   )r   r   rv   keyrT   s   &    r   get_device_infor      sY    &!GD-1ZZ\]\zsSD\=\

\]::d1%% ^s   A$A$__main__)T)r   importlib.metadatar   r   r   r/   r$   r   r,   rE   py3nvml.py3nvmlr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   printr    r8   r   <module>r      ss           	 	 	h hV6
& zD	
4;;
'( r8   