ACK托管集群Pro版支持共享GPU功能。您可以通过设置共享GPU组件的Policy来选择不同的算力分配策略。本文介绍如何配置共享GPU算力分配策略。
关于cGPU的更多信息,请参见什么是GPU容器共享技术cGPU。
前提条件
- 已创建ACK Pro版集群,且集群的Kubernetes版本≥1.18.8。关于Kubernetes的升级操作,请参见手动升级集群。 
- cGPU版本≥1.0.6。关于cGPU的升级操作,请参见升级节点cGPU版本。 
注意事项
- 如果节点已存在cGPU隔离模块,安装共享GPU组件后需要重启节点,Policy才能生效。具体操作,请参见重启实例。 说明- 您可以登录节点,执行 - cat /proc/cgpu_km/version命令,查看是否安装cGPU隔离模块。执行命令后显示cGPU的版本号,说明已安装cGPU隔离模块。
- 如果您的节点未安装cGPU隔离模块或已卸载cGPU隔离模块,安装共享GPU组件后,Policy立即生效。 
- 同一个集群中的共享GPU节点只能使用同一种Policy。 
步骤一:查看是否已安装共享GPU组件
配置共享GPU算力分配策略时,操作方式因是否已安装共享GPU组件而不同,因此需要确认集群是否已安装该组件。
- 登录容器服务管理控制台,在左侧导航栏选择集群列表。 
- 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择。 
- 在Helm页面的组件列表,查看是否存在ack-ai-installer组件。 - 若存在ack-ai-installer组件,表示已安装共享GPU组件;若不存在,表示未安装。 
步骤二:配置共享GPU算力分配策略
下文将根据两种情况(未安装共享GPU组件和已安装共享GPU组件)分别介绍如何配置共享GPU算力分配策略,具体操作步骤如下。
未安装共享GPU组件
- 登录容器服务管理控制台,在左侧导航栏选择集群列表。 
- 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择。 
- 在云原生AI套件页面,单击一键部署。 
- 在调度区域,选中调度策略扩展(批量任务调度、GPU共享、GPU拓扑感知),然后单击右侧的高级配置。 
- 在参数配置页面,修改 - policy字段,然后单击确定。 取值说明如下。更多信息,请参见cGPU服务使用示例。 取值说明如下。更多信息,请参见cGPU服务使用示例。- 取值 - 说明 - 0 - 平均调度。每个容器占用固定的时间片,时间片占比为 - 1/max_inst。- 1 - 抢占调度。每个容器占用尽量多的时间片,时间片占比为 - 1/当前容器数。- 2 - 权重抢占调度。当ALIYUN_COM_GPU_SCHD_WEIGHT的取值大于1时,自动使用权重抢占调度。 - 3 - 固定算力调度。用于固定算力的百分比。 - 4 - 算力弱调度。隔离性弱于抢占调度。 - 5 - 原生调度。即GPU驱动本身的调度方式。 
- 在页面下方,单击部署云原生AI套件。 
已安装共享GPU组件
- 执行以下命令,编辑共享GPU组件中安装cGPU隔离模块的DaemonSet。 - kubectl edit daemonset cgpu-installer -nkube-system
- 修改并保存安装cGPU隔离模块的DaemonSet。 - 通过 - image字段,查看DaemonSet的镜像版本。- 请确保镜像版本为v1.0.6及其以上。 - image字段示例如下:- image: registry-vpc.cn-hongkong.aliyuncs.com/acs/cgpu-installer:<镜像版本>
- 修改 - value值。- 将 - containers.env参数下,- POLICY的- value修改为目标策略值。- # 省略其他字段。 spec: containers: - env: - name: POLICY value: "1" # 省略其他字段。- value的取值说明如下。- 取值 - 说明 - 0 - 平均调度。每个容器占用固定的时间片,时间片占比为 - 1/max_inst。- 1 - 抢占调度。每个容器占用尽量多的时间片,时间片占比为 - 1/当前容器数。- 2 - 权重抢占调度。当ALIYUN_COM_GPU_SCHD_WEIGHT的取值大于1时,自动使用权重抢占调度。 - 3 - 固定算力调度。用于固定算力的百分比。 - 4 - 算力弱调度。隔离性弱于抢占调度。 - 5 - 原生调度。即GPU驱动本身的调度方式。 
 
- 重启共享GPU节点实例。具体操作,请参见重启实例。