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调度组件。