ACK Pro版集群支持共享GPU能力,提供共享GPU实例的显存隔离和算力隔离功能,本文介绍通过配置共享GPU算力分配策略,实现不同效果的算力分配。

前提条件

背景信息

ACK Pro版集群的共享GPU功能基于cGPU实现。共享GPU算力隔离提供不同的分配策略,您可以在ACK Pro版集群中通过设置共享GPU组件的Policy来选择不同的分配策略。关于cGPU的更多信息,请参见什么是GPU容器共享技术cGPU

注意事项

  • 如果您的节点已存在cGPU隔离模块,在安装共享GPU组件之后,您需要重启该节点,Policy才能生效。关于重启节点的具体操作,请参见重启实例
    说明 您可以登录节点,执行cat /proc/cgpu_km/version命令,查看是否安装cGPU隔离模块。执行命令后显示cGPU的版本号,说明已安装cGPU隔离模块。
  • 如果您的节点是干净的环境(未安装cGPU隔离模块或已卸载cGPU隔离模块),安装共享GPU组件后,Policy立即生效。
  • 同一个集群中的共享GPU节点只能使用同一种Policy。

步骤一:查看是否已安装共享GPU组件

配置共享GPU算力分配策略时,未安装共享GPU组件和已安装共享GPU组件的操作方式不同,因此需要您确认集群是否已安装共享GPU组件。

  1. 登录容器服务管理控制台
  2. 在控制台左侧导航栏中,单击集群
  3. 集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情
  4. 在集群管理页左侧导航栏中,选择应用 > Helm
  5. 在Helm页面,查看是否存在ack-ai-installer组件。
    若存在ack-ai-installer组件,表示您已安装共享GPU组件;若不存在ack-ai-installer组件,表示您未安装共享GPU组件。

步骤二:配置共享GPU算力分配策略

未安装共享GPU组件和已安装共享GPU组件,配置共享GPU算力分配策略的具体操作步骤如下:

未安装共享GPU组件

  1. 登录容器服务管理控制台
  2. 在控制台左侧导航栏中,单击集群
  3. 集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情
  4. 在集群管理页左侧导航栏中,选择应用 > 云原生AI套件(公测)
  5. 云原生AI套件页面,单击一键部署
  6. 在调度区域,选中调度组件(批量任务调度、GPU共享、GPU拓扑感知、NPU调度),然后单击右侧的高级配置调度
  7. 在弹出的参数配置窗口,修改policy字段,然后单击确定ack-ai-installer
    policy取值说明如下。关于时间片及调度策略的更多信息,请参见cGPU服务算力调度示例
    • 0:平均调度。每个容器占用固定的时间片,时间片占比为1/max_instmax_inst表示容器的最大数量,取值范围为1~16。
    • 1:抢占调度。每个容器占用尽量多的时间片,时间片占比为1/当前容器数
    • 2:权重抢占调度。当ALIYUN_COM_GPU_SCHD_WEIGHT的取值大于1时,自动使用权重抢占调度。ALIYUN_COM_GPU_SCHD_WEIGHT表示容器的算力权重,取值范围为1~16。
  8. 在页面下方,单击部署云原生AI套件

已安装共享GPU组件

  1. 执行以下命令,编辑共享GPU组件中安装cGPU隔离模块的Daemonset。
    kubectl edit daemonset cgpu-installer -nkube-system
  2. 修改并保存安装cGPU隔离模块的Daemonset。
    1. image字段,查看Daemonset的镜像版本。
      请确保镜像版本为v1.0.6及其以上。若不符合,请将镜像版本修改为目标版本。image字段示例如下:
       image: registry-vpc.cn-hongkong.aliyuncs.com/acs/cgpu-installer:<镜像版本>
    2. 修改value值。
      containers.env参数下,POLICYvalue修改为目标策略值。
      #省略其他字段。
      spec:
        containers:
        - env:
          - name: POLICY
            value: "1"
      #省略其他字段。
      value的取值请参见取值说明
  3. 重启共享GPU节点实例。
    关于重启节点的具体操作,请参见重启实例