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出現Linux Kernel Panic
若您安裝的cGPU組件為1.5.7版本,可能會導致cGPU核心驅動出現死結現象,即並發執行的進程互相牽制,從而導致Linux Kernel Panic問題。推薦您安裝1.5.10及以上版本的cGPU,或將低版本cGPU逐步升級到1.5.10及以上版本,避免新業務出現核心錯誤問題。升級方式,請參見升級節點cGPU版本。
cGPU Pod中執行nvidia-smi
出現報錯Failed to initialize NVML
若您安裝的cGPU組件為1.5.2及以下版本,且驅動版本在2023年07月之後發布(請參見Linux AMD64 Display Driver Archive查看GPU驅動發布時間),可能存在cGPU版本與GPU驅動版本不相容的情況。ACK各叢集版本支援預設GPU驅動版本請參見ACK支援的NVIDIA驅動版本列表。
Pod申請共用GPU調度資源且狀態處於Running後,您可以在Pod中執行nvidia-smi
命令,確認是否有以下預期輸出。
Failed to initialize NVML: GPU access blocked by operating system
您需將AI套件升級至最新版本解決此問題,請參見升級共用GPU調度組件。
建立cGPU Pod的容器失敗或逾時退出
若您安裝的cGPU組件為1.0.10之前的版本,且NVIDIA Toolkit為1.11以上版本時,會出現Container建立失敗或建立逾時報錯的問題。
您需將AI套件升級至最新版本解決此問題,請參見升級共用GPU調度組件。