全部產品
Search
文件中心

Container Service for Kubernetes:更改共用GPU調度顯存最小分配單位

更新時間:Apr 17, 2025

共用GPU調度預設按1 GiB為單位申請顯存,申請更細粒度的顯存需要更改顯存最小分配單位。本文介紹如何將共用GPU調度顯存最小分配單位更改為128 MiB,以申請更細粒度的顯存。

前提條件

已建立ACK託管叢集Pro版且版本為1.18.8及以上。請參見建立ACK託管叢集升級叢集

注意事項

  • 如果叢集中已存在共用GPU應用(申請了aliyun.com/gpu-mem的Pod),需要刪除這些任務才能進行顯存單元切換工作,否則調度器賬本會發生混亂。

  • 該功能僅支援節點開啟只共用不隔離的情景(即節點標籤為ack.node.gpu.schedule=share)。對於既共用又隔離的情景(即節點標籤為ack.node.gpu.schedule=cgpu),由於隔離模組限制,即使每個Pod申請的顯存為128 MiB,每塊GPU卡只能建立16個Pod。

  • 當節點按128 MiB為單位上報顯存資源時,不支援節點Auto Scaling,例如某個Pod申請aliyun.com/gpu-mem資源數為32,此時叢集中節點沒有足夠的顯存滿足該Pod需求,該Pod處於Pending狀態,即使配置了節點Auto Scaling,也不會彈出放置該Pod的節點。

  • 若叢集建立時間早於2021年10月20日,需提交工單讓售後同學重啟調度器,配置才會生效。

更改顯存單位

未安裝ack-ai-installer

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇應用 > 雲原生AI套件

  3. 單擊頁面下方的一鍵部署,選中調度策略擴充(批量任務調度、GPU共用、GPU拓撲感知)並單擊進階配置

  4. 單擊進階配置,在如下位置添加代碼gpuMemoryUnit: 128MiB,然後單擊確定

    image

  5. 配置完成後單擊部署雲原生AI套件

    組件ack-ai-installer的狀態部署中變為已部署,表明組件已部署完成。

已安裝ack-ai-installer

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇應用 > 雲原生AI套件

  3. 單擊組件ack-ai-installer所在行的卸載,單擊確定

  4. 卸載完成後,單擊組件ack-ai-installer所在行的部署,增加如下代碼gpuMemoryUnit: 128MiBimage

  5. 單擊確定

    組件ack-ai-installer的狀態部署中變為已部署,表明組件ack-ai-installer已部署完成。

申請顯存樣本

下面是一個樣本Pod,該Pod通過aliyun.com/gpu-mem申請16個單位為128 MiB的顯存,總共申請2 GiB。

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: binpack
  labels:
    app: binpack
spec:
  replicas: 1
  serviceName: "binpack-1"
  podManagementPolicy: "Parallel"
  selector: # define how the deployment finds the pods it manages
    matchLabels:
      app: binpack-1
  template:                # 定義Pods規範。
    metadata:
      labels:
        app: binpack-1
    spec:
      containers:
      - name: binpack-1
        image: registry.cn-beijing.aliyuncs.com/ai-samples/gpushare-sample:tensorflow-1.5
        command:
        - bash
        - gpushare/run.sh
        resources:
          limits:
            # 128 MiB
            aliyun.com/gpu-mem: 16   # 16 * 128 MiB = 2 GiB