Document navigation

GPU Device

Overview

A GPU device is a powerful microprocessor with high computational capabilities. You can use a GPU device to handle intricate graphics rendering and parallel computing jobs, thus improving the efficiency of businesses such as graphic production, video processing, and machine learning.

Figure 1. GPU Device


Characteristics

  • GPU Passthrough

    ZStack Cloud supports the GPU passthrough feature, which means to passthrough a physical GPU with all attached devices (GPU graphic cards, sound cards, and others) as group to a VM instance. Therefore, the VM instance gains access to the full and powerful parallel computing capabilities of the physical GPU.

    The GPU passthrough feature applies to the GPUs of following models.
    Vendor Model
    NVIDIA
    • Nvidia RTX 6000Ada, Nvidia RTX A6000
    • GeForce RTX 5090, Geforce RTX 4090, Nvidia RTX 3090
    • Quadro RTX 8000, Quadro RTX 6000
    • M4000, P2000
    • GTX 1650/1660, GTX 1060ti
    • H100, H800, H200, H20
    • Nvidia L40, Nvidia L20, Nvidia L4
    • Nvidia A100, A30
    • Nvidia A40, Nvidia A16, Nvidia A10, Nvidia T4
    • Tesla V100, Tesla P4/6/40/100, M6/10/60
    • K6000
    • More NVIDA models, see NVIDIA Official Documentation
    AMD
    • Radeon v620, Radeon RX5700
    • FirePro S7150, FirePro S7150X2
    HYGON DCU Z100/Z100L, DCU K100 AI
    Huawei
    • Atlas 300i Pro
    • 910B/910B4
    Note: You can only passthrough Huawei GPUs installed on ARM hosts.
    Iluvatar CoreX Zhikai 100, Tiangai
    Vastai SV100、SG100
    Note: We recommend that you do not passthrough a SG100 GPU to a VM instance directly. The recommended practice is to virtualize SG100 and attach vGPUs to VM instances.
    Enflame S60
    Note: If you attach more than 5 GPU devices of this type to a VM instance, enter the VM operating system and add event_timeout=300 in the configuration file /etc/udev/udev.conf. This extend the udev timeout to ensure all GPU devices are identified properly.
    Other MetaX N100, MOORE TREADS, Cambricon, CloudBlazer
  • GPU Virtualization

    ZStack Cloud supports the GPU virtualization feature, which means to divide a physical GPU device into multiple vGPUs based on the virtualization method and form a vGPU pool. You can use these vGPUs to create lightweight vGPU VM instances, improving the VM computing capabilities as well as reducing the cost.

    The GPU virtualization feature applies to the GPUs of following models.
    Vendor Model
    NVIDIA
    • Nvidia RTX 6000Ada, Nvidia RTX A6000
    • Quadro RTX 8000, Quadro RTX 6000
    • H100, H800, H200, H20
    • Nvidia L40, Nvidia L20, Nvidia L4
    • Nvidia A40, Nvidia A16, Nvidia A10, Nvidia T4
    • Tesla V100, Tesla P4/6/40/100, M6/10/60
    • More NVIDA models, see NVIDIA Official Documentation
    AMD FirePro S7150, FirePro S7150X2
    Vastai SV100、SG100
  • Recommended GPU Driver Version

    We recommend that you install GPU drivers of following versions to hosts and VM instances to make the GPU monitoring and vGPU feature work properly.

    GPU Recommended Version for Host Recommended Version for VM Instance
    NVIDA
    • GPU driver: NVIDIA-Linux-x86_64-510.47.03-grid.run
    • vGPU driver: NVIDIA-Linux-x86_64-510.47.03-vgpu-kvm.run
    Latest version recommended by NVDIA. For more information, see NVIDIA Official Documentation.
    AMD rocm-smi 6.1.2 and later versions. rocm-smi 6.1.2 and later versions.
    Note: If the VM instance uses the OS of RHEL7 series, make sure that the VM kernel is of 4.8.10 or later version.
    Hygon

    rock-5.2.0-5.16.29-V01.13.run

    /
    Huawei Ascend-hdk-310p-npu-driver_24.1.rc1_linux-aarch64.run Ascend-hdk-310p-npu-driver_24.1.rc1_linux-aarch64.run
    Iluvatar CoreX
    • x86: corex-installer-linux64-4.0.1_x86_64_10.2.run
    • ARM: corex-installer-linux64-4.0.1_arm64_10.2.run
    • x86: corex-installer-linux64-4.0.1_x86_64_10.2.run
    • ARM: corex-installer-linux64-4.0.1_arm64_10.2.run
    Enflame nflame-x86_64-gcc-1.4.3.4-20250520100021.run or later nflame-x86_64-gcc-1.4.3.4-20250520100021.run or later

Applications

  • 3D Rendering

    Pre-rendering, a technology often used in filmmaking, demands high computational intensity which needs to be provided by a large amount of servers. Real-time rendering, a technology commonly used in 3D video games, usually relies on GPUs to execute the rendering process.

    Nowadays, with the rapid development of the GPU technology, a significant amount of 3D rendering is accomplished by using GPU server clusters. With the GPU passthrough feature provided by ZStack Cloud, you can make VM instances process these 3D rendering tasks with a low GPU performance loss (within 5%). Combined with intelligent monitoring software and the billing feature of ZStack Cloud, this feature provides you with a comprehensive, convenient, and efficient rendering farm solution.
    Figure 2. 3D Rendering


  • Artificial Intelligent

    GPU's powerful computations supports deep learning tasks. Since Google released its network tool, TensorFlow, GPUs have become infrastructures preferred by research organizations and companies. Take the NVIDIA P100 GPU as an example. After be passthroughed to a VM instance, the performance of the GPU is nearly the same with that of a host GPU and can perfectly meet the requirements of extensive model trainings.

    Figure 3. Artificial Intelligent


  • Cloud Gaming

    With the expansion of broadband networks and the widespread adoption of mobile devices, a new trend in gaming has emerged where the computational load is shifted to the cloud. In this model, the client device merely handles display and input, while the heavy lifting of 3D game rendering is performed on powerful cloud servers. Combined with GPUs, these cloud servers can encode each frame instantly and stream it to any devices connected to the network. This model can be realized by using the GPU passthrough or vGPU feature provides by ZStack Cloud, ensuring a more fluent game experience for users.

    Figure 4. Cloud Gaming


  • Virtual Desktop Infrastructure
    GPUs have long been crucial components in VDI environments. They enhance visual experiences and take on primary computational roles in specialized applications, effectively replacing traditional PC workstations. This enables users to perform 3D design tasks in a more secure setting. Through the GPU passthrough or vGPU feature provided by ZStack Cloud, coupled with protocols such as RDP (Remote Desktop Protocol) or PCoIP (PC over IP), you can harness the full potential of the GPU devices, providing users with a VDI using experience as fluent as that in a physical environment.
    Figure 5. VDI


Inventory

Properties

Name Description Optional Valid Values Starting Version
uuid The UUID. For more information, see Resource Property. 5.1.8
chooser 5.1.8
description The description. For more information, see Resource Property. 5.1.8
deviceId The device ID. 5.1.8
hostUuid The host UUID. 5.1.8
isDriverLoaded Whether the driver is loaded. 5.1.8
memory The memory. 5.1.8
name The name. For more information, see Resource Property. 5.1.8
pciDeviceAddress The PCI device address. 5.1.8
power The power. 5.1.8
serialNumber The serial number. 5.1.8
status The status. 5.1.8
subvendorId The sub vendor ID. 5.1.8
type The type. 5.1.8
virStatus The virtualization status. 5.1.8
device The device 5.1.8
groupBy 5.1.8
iommuGroup The IOMMU group. 5.1.8
parentUuid The parent UUID. 5.1.8
pciSpecUuid The PCI spec UUID. 5.1.8
rev The device revision. 5.1.8
state The state. 5.1.8
subdeviceId The sub device ID. 5.1.8
vendorId The vendor ID. 5.1.8
vmInstanceUuid The VM instance UUID. 5.1.8
createDate The creation date. For more information, see Resource Property. 5.1.8
lastOpDate The last operation date. For more information, see Resource Property. 5.1.8
userTags The user tags. For more information, see CreateUserTag. The resource type is ZoneVO. 5.1.8
systemTags The system tags. For more information, see CreateSystemTag. The resource type is ZoneVO. 5.1.8
Sample
{
    "inventories": [
        {
            "chooser": "None",
            "createDate": "Jul 15, 2024 3:54:32 PM",
            "description": "3D controller: NVIDIA TU102GL [Quadro RTX 6000/8000]",
            "device": "TU102GL [Quadro RTX 6000/8000] [1e78]",
            "deviceId": "1e78",
            "hostUuid": "363c8eab666547e29a7a74bbde9c1967",
            "iommuGroup": "363c8eab666547e29a7a74bbde9c1967_/sys/kernel/iommu_groups/39",
            "isDriverLoaded": true,
            "lastOpDate": "Jul 17, 2024 4:03:05 PM",
            "mdevSpecRefs": [],
            "memory": 48318382080,
            "metaData": {},
            "name": "NVIDIA_TU102GL [Quadro RTX 6000/8000]_4885da63",
            "pciDeviceAddress": "0000:17:00.0",
            "pciSpecUuid": "016a96fd5aa648b290d2e96bf49f7407",
            "power": 250,
            "serialNumber": "1325119076420",
            "state": "Enabled",
            "status": "System",
            "subdeviceId": "13d8",
            "subvendorId": "10de",
            "type": "GPU_3D_Controller",
            "uuid": "4885da636aba4e12afcc5901e12673a3",
            "vendor": "NVIDIA",
            "vendorId": "10de",
            "virtStatus": "SRIOV_VIRTUALIZABLE"
        }
    ],
    "success": true
}

matchedPciDeviceOffering inventory

Name Description Optional Valid Values Starting Version
uuid The UUID. For more information, see Resource Property. 5.1.8
description The description. For more information, see Resource Property. 5.1.8
deviceId The device ID. 5.1.8
ramSize 5.1.8
name The name. For more information, see Resource Property. 5.1.8
subvendorId The sub vendor ID. 5.1.8
type The type. 5.1.8
groupBy 5.1.8
subdeviceId The sub device ID. 5.1.8
vendorId The vendor ID. 5.1.8
subvendorId The sub vendor ID. 5.1.8
createDate The creation date. For more information, see Resource Property. 5.1.8
lastOpDate The last operation date. For more information, see Resource Property. 5.1.8
userTags The user tags. For more information, see CreateUserTag. 5.1.8
systemTags The system tags. For more information, see CreateSystemTag. 5.1.8

PciDeviceSpec inventory

Name Description Optional Valid Values Starting Version
uuid The UUID. For more information, see Resource Property. 5.1.8
description The description. For more information, see Resource Property. 5.1.8
device The device. 5.1.8
isVirtual Whether the device is virtualized. 5.1.8
deviceId The device ID. 5.1.8
ramSize 5.1.8
romMd5sum 5.1.8
romVersion 5.1.8
name The name. For more information, see Resource Property. 5.1.8
subvendorId The sub vendor ID. 5.1.8
type The type. 5.1.8
groupBy 5.1.8
subdeviceId The sub device ID. 5.1.8
vendorId The vendor ID. 5.1.8
subvendorId The sub vendor ID. 5.1.8
createDate The creation date. For more information, see Resource Property. 5.1.8
lastOpDate The last operation date. For more information, see Resource Property. 5.1.8
userTags The user tags. For more information, see CreateUserTag. 5.1.8
systemTags The system tags. For more information, see CreateSystemTag. 5.1.8

Operations

QueryGpuDevice

Queries GPU devices. For example,
QueryGpuDevice

Primitive Fields of Query

See GPU Device Inventory.

Nested and Expanded Fields of Query

Field Inventory Description Starting Version
host Host Inventory The host that the device resides on. 5.1.8
macthedPciDeviceOffering matchedPciDeviceOffering inventory The matched PCI device offering. 5.1.8
mdevSpec The mdev device specification. 5.1.8
matchedPciDeviceOfferingRef. The matched PCI devices offering reference. 5.1.8
parent 5.1.8
pciDeviceSpec PciDeviceSpec inventory The PCI device specification. 5.1.8
vmInstance VM Instance Inventory The VM instances that run on the host. 5.1.8
CLI Command Manual | 5.4.12 | ZStack Cloud · ZCF | ZStack Resource Center