
# 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操作系统，且内核版本为5.10及以上版本                                                                                                                                                                                                                                                                                                                                          |
| GPU类型  | 支持Tesla T4、Tesla V100类型的GPU                                                                                                                                                                                                                                                                                                                                                           |
| 驱动版本   | GPU虚拟化功能仅支持570.86.15、535.216.03、535.54.03（EOL）、510.47.03（EOL）、470.57.02（EOL）版本的GPU驱动 说明： 对于已停止维护（EOL）的GPU驱动，2.7.84以上版本的CCE AI 套件（NVIDIA GPU）插件将不再兼容，请及时升级至受支持的驱动版本。                                                                                                                                                       |
| CUDA版本 | 仅支持CUDA 12.2.0至12.8.0版本                                                                                                                                                                                                                                                                                                                                                               |
| 运行时    | 仅支持containerd                                                                                                                                                                                                                                                                                                                                                                         |
| 插件     | 集群中需要同时安装以下插件： - [Volcano调度器](https://support.huaweicloud.com/usermanual-cce/cce_10_0193.html)插件：1.10.5及以上版本  - [CCE AI套件（NVIDIA GPU）](https://support.huaweicloud.com/usermanual-cce/cce_10_0141.html)插件：2.0.5及以上版本   |
   
#### 约束与限制
- 单个GPU卡最多虚拟化成20个GPU虚拟设备。
- init容器不支持使用GPU虚拟化资源。
- GPU虚拟化支持显存隔离、显存与算力隔离两种隔离模式。单个GPU卡仅支持调度同一种隔离模式的工作负载。
- v1.26及以下的集群中，使用GPU虚拟化后，不支持使用Autoscaler插件自动扩缩容GPU虚拟化节点。
- GPU虚拟化服务的隔离功能不支持以UVM的方式申请显存，即调用CUDA API cudaMallocManaged()，更多信息，请参见[NVIDIA官方文档](https://developer.nvidia.com/blog/unified-memory-cuda-beginners/)。请使用其他方式申请显存，例如调用cudaMalloc()等。
- 受GPU虚拟化技术的限制，容器内应用程序初始化时，通过nvidia-smi监测工具监测到的实时算力可能超过容器可用的算力上限。
- 受GPU虚拟化技术的限制，GPU虚拟化的算显隔离功能在渲染场景无法使用，渲染场景请使用整卡模式或显存隔离模式。
- 节点上开启了GPU虚拟化且有多张GPU卡时，如果GPU资源不足，不支持抢占其他Pod的GPU资源。
 
#### 实现GPU虚拟化
- [准备GPU虚拟化资源](https://support.huaweicloud.com/usermanual-cce/cce_10_0645.html)：准备支持GPU虚拟化的节点资源。
- [使用GPU虚拟化](https://support.huaweicloud.com/usermanual-cce/cce_10_0646.html)：创建GPU虚拟化工作负载，以满足业务需要。
 
