Google更新其Kubernetes服务GKE,提供多执行实例可共享单一Nvidia GPU的功能,通过在功能强大的GPU上,划分出多个执行实例,让用户依照容器需求取用适当的计算资源,可有效提高资源利用率,让用户更好地控制成本支出。
由于GKE自动缩放和简单管理的灵活性,GKE被许多资料科学家用来执行机器学习、可视化和渲染等高性能计算,而现在Google再次强化GKE的功能,提供多执行实例GPU支持,进而使得GPU资源可以发挥的淋漓尽致。Google解释,即便容器只需要一小部分的GPU资源,开源Kubernetes还是会为每个容器分配1个完整的GPU,而在功能强大的GPU上,可能会有资源浪费的情况发生。
GPU计算资源浪费的情况容易在推理工作负载上发生,比起模型训练工作,动辄需要处理数百万个样本的运算负担,推理工作仅需要即时处理少量样本,因此对于推理和其他轻量级GPU工作负载来说,GPU共享对于提高利用率和降低成本来说至关重要。
现在Google在GKE新推出的多执行实例GPU功能,让用户可以将Nvidia A100 GPU划分成7个执行实例,每个执行实例都有独立的高带宽内存、缓存和运算核心,每个执行实例可以分配给1个容器,每个A100 GPU最多可以分配7个容器,另外,多执行实例GPU间由于采用硬件隔离,也就增加了安全性,也替所有GPU上执行的容器提供一致且可预测的QoS。
而Google云计算中最大的GPU Compute Engine执行实例A2虚拟机,每个执行实例最多可支持高达16个A100 GPU,也就是说,每个节点可调度的GPU执行实例可达112个,每个执行实例可以执行1个独立的工作负载,而GKE本身提供的自动缩放和配置功能,就可自动放大或缩小多执行实例GPU,以较低的成本提供良好的运算性能。
对CUDA应用程序来说,多执行实例GPU提供很高的透明度,每个GPU执行实例都会被视为常规的GPU资源,程序代码开发模型保持不变,Google提到,这个特点让多执行实例GPU更容易使用。