本文介绍如何使用 qGPU 离在线混部能力。
步骤1:前置准备
1. 在使用 qGPU 及 qGPU 在离线混部之前,您需要拥有一个集群。若您没有集群,请参见 创建 TKE 集群。
2. 依次执行使用 qGPU 的 步骤1:安装 qGPU 调度组件、步骤2:开启集群 qGPU 共享 和 步骤3:准备 GPU 资源。
步骤2:重建组件
注意:
请确保完成下方重建动作后再调度应用到节点上,否则离在线混部功能无法正常工作。
如果您是先创建好了工作负载再创建节点,建议您在创建节点池时勾选封锁节点,完成下方重建步骤后再解除封锁,避免在重建过程中调度应用到节点上。
1. 节点创建完成后,需要重建节点上的 qgpu-manager 的 Pod 以及 qgpu-scheduler Pod 以使配置生效,命令如下:
$ kubectl delete pod qgpu-manager-6mcrk -n kube-system$ kubectl delete pod -n kube-system -l app=qgpu-scheduler
2. 查看节点是否有 qGPU 低优算力资源,执行
kubectl describe node
命令,检查是否有如下资源:
步骤3:配置业务
通过
tke.cloud.tencent.com/app-class: offline
标识是一个离线 Pod,通过tke.cloud.tencent.com/qgpu-core-greedy
申请离线算力,需要注意的是,离线 Pod 不支持多卡,需要同时设置低优算力与显存:低优算力:tke.cloud.tencent.com/qgpu-core-greedy,单位为百分比。
显存:tke.cloud.tencent.com/qgpu-memory,单位为 GB。
apiVersion: v1kind: Podmetadata:name: xxannotations:tke.cloud.tencent.com/app-class: offline # 低优标识spec:containers:- name: offline-containerimage: xxresources:requests:tke.cloud.tencent.com/qgpu-core-greedy: 10 # 离线算力tke.cloud.tencent.com/qgpu-memory: 5limits:tke.cloud.tencent.com/qgpu-core-greedy: 10 # 离线算力tke.cloud.tencent.com/qgpu-memory: 5
通过
tke.cloud.tencent.com/app-class: online
标识是一个在线 Pod,不需要申请算力,只需要申请显存。说明:
显存是静态切分的,高优 Pod 并不会抢占低优 Pod 的显存资源。
apiVersion: v1kind: Podannotations:tke.cloud.tencent.com/app-class: onlinespec:containers:- name: online-containerresources:requests:tke.cloud.tencent.com/qgpu-memory: xx
没有
tke.cloud.tencent.com/app-class
这个 Annotation,普通 Pod 支持多卡。apiVersion: v1kind: Podspec:containers:- name: common-containerresources:requests:tke.cloud.tencent.com/qgpu-core: xxtke.cloud.tencent.com/qgpu-memory: xx