GPU虚拟化概述
CCE GPU虚拟化采用自研xGPU虚拟化技术,能够动态对GPU设备显存与算力进行划分,单个GPU卡最多虚拟化成20个GPU虚拟设备。相对于静态分配来说,虚拟化的方案更加灵活,最大程度保证业务稳定的前提下,可以完全由用户自己定义使用的GPU量,提高GPU利用率。
GPU虚拟化的优势
CCE提供的GPU虚拟化功能优势如下:
- 灵活:精细配置GPU算力占比及显存大小,算力分配粒度为5%GPU,显存分配粒度达MiB级别。
- 隔离:支持显存和算力的严格隔离,支持单显存隔离,算力与显存同时隔离两类场景。
- 兼容:业务无需重新编译,无需进行CUDA库替换,对业务无感。
前提条件
配置 |
支持版本 |
---|---|
集群版本 |
v1.23.8-r0、v1.25.3-r0及以上 |
操作系统 |
Huawei Cloud EulerOS 2.0操作系统 |
GPU类型 |
支持T4、V100类型的GPU |
驱动版本 |
GPU虚拟化功能仅支持470.57.02、510.47.03、535.54.03版本的GPU驱动。 |
运行时 |
仅支持containerd |
插件 |
集群中需要同时安装以下插件:
|
约束与限制
- 单个GPU卡最多虚拟化成20个GPU虚拟设备。
- init容器不支持使用GPU虚拟化资源。
- GPU虚拟化支持显存隔离、显存与算力隔离两种隔离模式。单个GPU卡仅支持调度同一种隔离模式的工作负载。
- 使用GPU虚拟化后,不支持使用Autoscaler插件自动扩缩容GPU虚拟化节点。
- XGPU服务的隔离功能不支持以UVM的方式申请显存,即调用CUDA API cudaMallocManaged(),更多信息,请参见NVIDIA官方文档。请使用其他方式申请显存,例如调用cudaMalloc()等。
- 受GPU虚拟化技术的限制,容器内应用程序初始化时,通过nvidia-smi监测工具监测到的实时算力可能超过容器可用的算力上限。