cGPU是阿里雲自研的GPU顯存和算力隔離模組,使用cGPU服務可以隔離GPU資源,在多個容器共用一張GPU卡時容器之間的顯存和計算資源使用互不影響。本文介紹cGPU使用中的已知問題及注意事項。
閱讀前提示
若您叢集中GPU節點已存在標籤
ack.node.gpu.schedule=cgpu、ack.node.gpu.schedule=core_mem或cgpu=true,則表明節點已開啟cGPU隔離能力。您需要查看ack-ai-installer組件發布記錄,瞭解ack-ai-installer組件版本與cGPU組件版本的對應關係。
若您想瞭解更多關於cGPU的資訊,請參見NVIDIA官方文檔。
cGPU版本相容性
NVIDIA驅動相容性
cGPU版本 | 相容的 NVIDIA 驅動 |
1.5.20 1.5.19 1.5.18 1.5.17 1.5.16 1.5.15 1.5.13 1.5.12 1.5.11 1.5.10 1.5.9 1.5.8 1.5.7 1.5.6 1.5.5 1.5.3 | 支援:
|
1.5.2 1.0.10 1.0.9 1.0.8 1.0.7 1.0.6 1.0.5 | 支援:
不支援:
|
1.0.3 0.8.17 0.8.13 | 支援:
不支援:
|
執行個體規格類型系列相容性
cGPU版本 | 相容的執行個體規格類型系列 |
1.5.20 1.5.19 | 支援:
|
1.5.18 1.5.17 1.5.16 1.5.15 1.5.13 1.5.12 1.5.11 1.5.10 1.5.9 | 支援:
不支援:
|
1.5.8 1.5.7 | 支援:
不支援:
|
1.5.6 1.5.5 | 支援:
不支援:
|
1.5.3 1.5.2 1.0.10 1.0.9 1.0.8 1.0.7 1.0.6 1.0.5 1.0.3 | 支援:
不支援:
|
0.8.17 0.8.13 | 支援:
不支援:
|
nvidia-container-toolkit相容性
cGPU版本 | 相容的 nvidia-container-toolkit |
1.5.20 1.5.19 1.5.18 1.5.17 1.5.16 1.5.15 1.5.13 1.5.12 1.5.11 1.5.10 1.5.9 1.5.8 1.5.7 1.5.6 1.5.5 1.5.3 1.5.2 1.0.10 | 支援:
|
1.0.9 1.0.8 1.0.7 1.0.6 1.0.5 1.0.3 0.8.17 0.8.13 | 支援:
不支援:
|
kernel 版本相容性
cGPU版本 | 相容的 kernel 版本 |
1.5.20 1.5.19 1.5.18 1.5.17 1.5.16 1.5.15 1.5.13 1.5.12 1.5.11 1.5.10 1.5.9 | 支援:
|
1.5.8 1.5.7 1.5.6 1.5.5 1.5.3 | 支援:
|
1.5.2 1.0.10 1.0.9 1.0.8 1.0.7 1.0.6 1.0.5 1.0.3 | 支援:
|
0.8.17 | 支援:
|
0.8.13 0.8.12 0.8.10 | 支援:
不支援:
|
常見問題
使用cGPU出現Linux Kernel Panic。
背景:使用cGPU組件時,出現cGPU核心驅動死結現象(即並發執行的進程互相牽制),導致Linux Kernel Panic問題。
原因:您安裝的
cGPU≤1.5.7版本,組件版本過低導致。解決方案:推薦您安裝
cGPU≥1.5.10版本,或將低版本cGPU逐步升級到1.5.10及以上版本,避免新業務出現核心錯誤問題。升級方式,請參見升級節點cGPU版本。
使用cGPU部分情境出現cGPU Pod啟動失敗。
背景:使用阿里雲容器最佳化版本作業系統鏡像時,部分情境下cGPU節點上cGPU Pod啟動失敗。錯誤描述如下:
"Error: failed to create containerd task: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running prestart hook #0: exit status 2, stdout: , stderr: Auto-detected mode as 'legacy': unknown"原因:當
cgpu≤1.5.18版本時,會導致部分情境下cGPU節點上首個cGPU Pod啟動失敗。解決方案:升級
ack-ai-installer≥1.12.6版本,具體升級操作請參見升級共用GPU調度組件。
建立cGPU Pod出現modprobe: ERROR。
背景:建立cGPU Pod出現
modprobe: ERROR: could not insert 'cgpu_procfs': Operation not permitted或modprobe: ERROR: could not insert 'km': Operation not permitted報錯。原因:以上兩者報錯資訊如下所示:
Error: failed to create containerd task: failed to create shim: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #0: error running hook: exit status 2, stdout: , stderr: modprobe: ERROR: could not insert 'cgpu_procfs': Operation not permitted modprobe: ERROR: could not insert 'cgpu_procfs': Operation not permitted Auto-detected mode as 'legacy': unknownmodprobe: ERROR: could not insert 'km': Operation not permitted
解決方案:通常表明作業系統版本與cGPU不相容,請參見升級共用GPU調度組件,將組件升級為最新版本。
建立cGPU Pod的容器失敗或逾時退出。
背景:建立cGPU Pod的容器失敗或逾時退出報錯問題。
原因:您安裝的組件
cGPU≤1.0.10版本,且NVIDIA Toolkit≥1.11版本,組件間版本不相容導致。解決方案:通常表明NVIDIA Toolkit版本與cGPU不相容,請參見升級共用GPU調度組件,將組件升級為最新版本。
建立cGPU Pod出現報錯Error occurs when creating cGPU instance: unknown。
背景:為考慮效能因素,在使用cGPU的情況下,單張GPU卡最多建立20個Pod。
原因:當已建立Pod數超過此限制時,後續調度到該卡上的Pod將無法運行,將出現錯誤資訊
Error occurs when creating cGPU instance: unknown。解決方案:使用cGPU時,控制單張GPU卡建立Pod數≤20。
cGPU Pod執行nvidia-smi出現報錯Failed to initialize NVML。
背景:Pod申請共用GPU調度資源且狀態處於Running後,您可以在Pod中執行
nvidia-smi命令,輸出以下內容。Failed to initialize NVML: GPU access blocked by operating system原因:您安裝的組件
cGPU≤1.5.2版本,且GPU驅動是在2023年07月後版本,導致cGPU版本與GPU驅動版本不相容,GPU版本驅動請參見查看GPU驅動發布時間。匹配ACK各叢集版本支援預設GPU驅動版本,請參見ACK支援的NVIDIA驅動版本列表。解決方案:為解決此問題,請參見升級共用GPU調度組件將組件升級為最新版本。