使用共享GPU调度实现cGPU算力分配策略

ACK专有版集群支持共享GPU能力,ACK专有版集群的共享GPU隔离功能由共享技术cGPU实现。关于cGPU的更多信息,请参见什么是GPU容器共享技术cGPU。共享GPU算力隔离提供不同的分配策略,您可以在ACK专有版集群中通过设置共享GPU组件的Policy来选择不同的分配策略。本文介绍如何通过配置共享GPU算力分配策略,实现不同效果的算力分配。

前提条件

已创建ACK专有版GPU集群。具体操作,请参见创建GPU集群

注意事项

  • 如果您的节点已安装cGPU隔离模块,在安装共享GPU组件之后,您需要重启该节点,Policy才能生效。如果您的节点未安装cGPU隔离模块或已卸载cGPU隔离模块,安装共享GPU组件后,Policy立即生效。关于重启节点的具体操作,请参见重启实例

    说明
    • 您可以登录节点,执行命令,查看是否安装cGPU隔离模块。执行命令后显示cGPU的版本号,表明已安装cGPU隔离模块。

    • 仅支持1.0.6及以上版本的cGPU。关于cGPU的升级操作,请参见升级节点cGPU版本

  • 同一个集群中的共享GPU节点只能使用同一种Policy。

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

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

  1. 登录容器服务管理控制台,在左侧导航栏选择集群

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择应用 > Helm

  3. Helm页面的组件列表,查看是否存在cgpu组件。

    若存在cgpu组件,表示您已安装共享GPU组件;若不存在cgpu组件,表示您未安装共享GPU组件。

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

未安装共享GPU组件

  1. 登录容器服务管理控制台,在左侧导航栏选择市场 > 应用市场

  2. 搜索并单击ack-cgpu,在ack-cgpu页面右侧,单击一键部署

  3. 基本信息配置向导页面,选择集群命名空间,输入发布名称。然后单击下一步

  4. 参数配置配置向导页面,选择Chart版本,在参数区域,配置policy字段,然后单击确定

    policy取值说明如下。关于时间片及调度策略的更多信息,请参见cGPU服务算力调度示例

    取值

    说明

    0

    平均调度。每个容器占用固定的时间片,时间片占比为1/max_inst

    1

    抢占调度。每个容器占用尽量多的时间片,时间片占比为1/当前容器数

    2

    权重抢占调度。当ALIYUN_COM_GPU_SCHD_WEIGHT的取值大于1时,自动使用权重抢占调度。

    3

    固定算力调度。用于固定算力的百分比。

    4

    算力弱调度。隔离性弱于抢占调度。

    5

    原生调度。即GPU驱动本身的调度方式。

已安装共享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修改为目标策略值。关于value的取值说明,请参见取值说明

      # 省略其他字段。
      spec:
        containers:
        - env:
          - name: POLICY
            value: "1"
      # 省略其他字段。
  3. 重启共享GPU节点实例。

    关于重启节点的具体操作,请参见重启实例

相关文档