o
    S۷i                      @   s:   d dl T dd Zdd Zdd Zedkree  d	S d	S )
    )*c                 C   s@   | t krdS | tkrdS | tkrdS | tkrdS | tkrdS dS )NNonezPass-ThroughVGPUz	Host VGPUz	Host VSGAUnknown)!NVML_GPU_VIRTUALIZATION_MODE_NONE(NVML_GPU_VIRTUALIZATION_MODE_PASSTHROUGH!NVML_GPU_VIRTUALIZATION_MODE_VGPU&NVML_GPU_VIRTUALIZATION_MODE_HOST_VGPU&NVML_GPU_VIRTUALIZATION_MODE_HOST_VSGA)mode r   =/home/ubuntu/vllm_env/lib/python3.10/site-packages/example.pyStrVirt)   s   r   c                 C   s   | j tkrdS |  S )NzN/A)valueNVML_ERROR_NOT_SUPPORTED__str__)errr   r   r   handleError:   s   
r   c                  C   s`  d} zt   | dtt  d 7 } t }| dt| d 7 } td|D ]f}t|}t|}| d|j 7 } | dt| d	 7 } i t	d
t
dtdtdtdtdtdtdtdtdtdtdtdtdtdtdtd}z|t| }W n ty } z
t|}W Y d }~nd }~ww | d| d 7 } zt|}W n ty } z
t|}W Y d }~nd }~ww | d| d 7 } zt|}	W n ty } z
t|}	W Y d }~nd }~ww | d|	 d  7 } | d!7 } ztt |}
W n ty	 } z
t|}
W Y d }~nd }~ww | d"|
 d# 7 } | d$7 } zYt!|}|j"d%krn| d&7 } t|j#D ]?}|j$| j%dkrXt |t&krF| d'7 } | d(7 } q*| d)|j$| j' d* 7 } | d+7 } q*| d)|j$| j' d* 7 } | d(7 } q*| d,7 } W n ty } z
t|}W Y d }~nd }~ww | d-7 } q$W n ty } z| d.|(  d/ 7 } W Y d }~nd }~ww t)  | S )0N z  <driver_version>z</driver_version>
z  <attached_gpus>z</attached_gpus>
r   z  <gpu id="%s">
z    <product_name>z</product_name>
r   QuadroTeslaNVSGridTitanGeForcezNVIDIA Virtual ApplicationszNVIDIA Virtual PCzNVIDIA Virtual Compute ServerzNVIDIA RTX Virtual WorkstationzNVIDIA Cloud Gamingz
Quadro RTXz
NVIDIA RTXNVIDIAzGeForce RTXz	TITAN RTXz    <product_brand>z</product_brand>
z    <serial>z
</serial>
z
    <uuid>z</uuid>
z    <gpu_virtualization_mode>
z      <virtualization_mode>z</virtualization_mode>
z    </gpu_virtualization_mode>
   z%    <vgpu_software_licensed_product>
zS        <licensed_product_name>NVIDIA Virtual Applications</licensed_product_name>
z2        <license_status>Licensed</license_status>
z        <licensed_product_name>z</licensed_product_name>
z4        <license_status>Unlicensed</license_status>
z&    </vgpu_software_licensed_product>
z	  </gpu>
zexample.py: 
)*nvmlInitstrnvmlSystemGetDriverVersionnvmlDeviceGetCountrangenvmlDeviceGetHandleByIndexnvmlDeviceGetPciInfobusIdnvmlDeviceGetNameNVML_BRAND_UNKNOWNNVML_BRAND_QUADRONVML_BRAND_TESLANVML_BRAND_NVSNVML_BRAND_GRIDNVML_BRAND_TITANNVML_BRAND_GEFORCENVML_BRAND_NVIDIA_VAPPSNVML_BRAND_NVIDIA_VPCNVML_BRAND_NVIDIA_VCSNVML_BRAND_NVIDIA_VWSNVML_BRAND_NVIDIA_CLOUD_GAMINGNVML_BRAND_QUADRO_RTXNVML_BRAND_NVIDIA_RTXNVML_BRAND_NVIDIANVML_BRAND_GEFORCE_RTXNVML_BRAND_TITAN_RTXnvmlDeviceGetBrand	NVMLErrorr   nvmlDeviceGetSerialnvmlDeviceGetUUIDr   nvmlDeviceGetVirtualizationMode#nvmlDeviceGetGridLicensableFeaturesisGridLicenseSupportedlicensableFeaturesCountgridLicensableFeaturesfeatureStater   productNamer   nvmlShutdown)	strResultdeviceCountihandlepciInfo
brandNames	brandNamer   serialuuidr   r@   r   r   r   deviceQueryA   s   	

P rM   __main__N)pynvmlr   r   rM   __name__printr   r   r   r   <module>   s   #f