关于K8s集群GPU调度问题?

关于gpu的使用
目前Kubernetes对于GPU这类扩展资源的定义仅仅支持整数粒度的加加减减,无法支持复杂资源的分配
通过使用阿里开源的GPU Share Scheduler Extender,可以实现基于显存粒度的gpu调度 aliyun.com/gpu-mem,
但是通过测试发现,如果没有指定使用的GPU,默认使用第一个Gpu,切无法切换至第二个GPU使用
即使启动多个POD  相关显存资源也均从第一个gpu中获取,如果显存不够用则POD启动报错 out of mem.
目前这个问题暂时无法解决,请问社区大佬有相关的解决方式吗?
我尝试着配置环境变量CUDA_VISIBLE_DEVICES=0,1   NVIDIA_VISIBLE_DEVICES=0,1 均无法调度到第二个GPU

1回答

flyaweiflyawei  容器云运维工程师 , 晶奇科技
今天又看了一遍相关资料,找到问题所在了,需要应用同步修改,K8S在调度POD的过程中 会给POD加以下几个  Annotations:ALIYUN_COM_GPU_MEM_ASSIGNEDALIYUN_COM_GPU_MEM_ASSUME_TIMEALIYUN_COM_GPU_MEM_DEVALIYUN_COM_GPU_MEM_IDXALIYUN_COM_GPU_MEM_POD GPU的选择就是通过 AL...显示全部

今天又看了一遍相关资料,找到问题所在了,需要应用同步修改,K8S在调度POD的过程中 会给POD加以下几个  Annotations:
ALIYUN_COM_GPU_MEM_ASSIGNED
ALIYUN_COM_GPU_MEM_ASSUME_TIME
ALIYUN_COM_GPU_MEM_DEV
ALIYUN_COM_GPU_MEM_IDX
ALIYUN_COM_GPU_MEM_POD

GPU的选择就是通过 ALIYUN_COM_GPU_MEM_IDX  此参数控制的,应用层在选择GPU的时候使用此变量即可解决以上问题。

收起
 2020-09-16
浏览463

提问者

flyawei容器云运维工程师, 晶奇科技

容器云管理平台选型优先顺序调查

发表您的选型观点,参与即得50金币。

问题状态

  • 发布时间:2020-09-15
  • 关注会员:1 人
  • 问题浏览:869
  • 最近回答:2020-09-16