ACK集群Pro版的共享GPU功能基于cGPU實現。共享GPU算力隔離提供不同的分配策略,您可以在ACK Pro版集群中通過設置共享GPU組件的Policy來選擇不同的分配策略。本文介紹通過配置共享GPU算力分配策略,實現不同效果的算力分配。
關于cGPU的更多信息,請參見什么是GPU容器共享技術cGPU。
前提條件
已創建ACK Pro版集群,且集群的Kubernetes版本≥1.18.8。關于Kubernetes的升級操作,請參見升級ACK集群。
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組件和已安裝共享GPU組件的操作方式不同,因此需要您確認集群是否已安裝共享GPU組件。
登錄容器服務管理控制臺,在左側導航欄選擇集群。
在集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇 。
在Helm頁面的組件列表,查看是否存在ack-ai-installer組件。
若存在ack-ai-installer組件,表示您已安裝共享GPU組件;若不存在ack-ai-installer組件,表示您未安裝共享GPU組件。
步驟二:配置共享GPU算力分配策略
下文將根據兩種情況(未安裝共享GPU組件和已安裝共享GPU組件)分別介紹如何配置共享GPU算力分配策略,具體操作步驟如下。
未安裝共享GPU組件
登錄容器服務管理控制臺,在左側導航欄選擇集群。
在集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇 。
在云原生AI套件頁面,單擊一鍵部署。
在調度區域,選中調度組件(批量任務調度、GPU共享、GPU拓撲感知、NPU調度),然后單擊右側的高級配置。
在參數配置頁面,修改
policy
字段,然后單擊確定。policy
取值說明如下。關于時間片及調度策略的更多信息,請參見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節點實例。
關于重啟節點的具體操作,請參見重啟實例。