Google 为他们的客户引入了 Preemptible GPU

  • Steef-Jan Wiggers
  • 张卫滨

2018 年 2 月 21 日

话题:语言 & 开发架构

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

Google 宣布在他们的云平台上,释放为 Preemptible 虚拟机(Virtual Machine)附加图像处理器(Graphical Processing Unit,GPU)的 beta 发布版本。Google 云平台(Google Cloud Platform)的客户现在能够将 NVIDIA K80 和 NVIDIA P100 GPU 附加到 Preemptible VM 上,每个 GPU 每小时的价格分别是 0.22 和 0.73 美分,这要比 on-demand 实例上 GPU 的价格便宜 50%。这个发布版本能够让 Google 的客户在计算密集型的任务上有了更多的选择,这样他们能够在更细的粒度上进行高吞吐的批处理计算、机器学习以及科学和技术工作负载。

GCP 用户能够创建和运行Preemptible VM 实例,它要比标准的 on-demand 实例成本低得多。但是,Google Compute Engine 会在 30 秒的警告之后,终止(preempt)这些实例。这些实例最多能使用 24 小时。GCP 用户如果具有容错的工作负载并且不需要专门的实例,就成本而言,Preemptible 实例是很合适的选择。另外,关联到 Preemptible VM 上的 GPU 默认都是 preemptible 的,因此成本会更低。

Alex Hickey 是 CIO Dive 站点的编辑,在最新的简报中,他提供了一些利用 Google Preemptiple GPU 的观点:

对于一般的公司来说,构建或运行 AI 系统并不便宜。专家们的薪水已经达到了六位数甚至更高,AI 的预算也变得很难分配。计算处理的硬件资源一般都是外包的,以便于节省成本。GPU 比专门的硬件在速度和处理时间上表现更好,而专门的硬件往往很快就会积累可观的前期和维护成本。可用工具,包括用于处理的硬件,是 AI 和 ML 实现普及的重要因素。据统计,40% 的公司具有 AI 实验室或实验性地应用,但是只有大约 20% 的企业实现了 AI 的规模化部署或核心业务功能的部署。不过,凭借更加可负担的 GPU,更多的公司能够在预算和策略方面找到空间,实现 POC 和测试用例的落地。

典型的 Preemptible VM 可以通过在 gcloud 命令行的实例创建命令上附加--preemptible参数或者在使用REST API时,将scheduling.preemptible属性设置为true进行创建。另外,用户还可以在 Google Cloud Platform Console 上将 Preemptibility 设置为“On”,然后像往常一样为其关联 GPU。

图片来源:https://cloudplatform.googleblog.com/2018/01/introducing-preemptible-gpus-50-off.html

除此之外,用户如果需要更强的可扩展性,还可以通过创建由 preemptible 实例所组成的托管实例组实现 GPU 动态池的功能。需要注意的是,在创建组之前,要指定实例模板的 preemptible 选项。这种方法所能带来的好处是如果 preemptible 实例有足够的处理能力的话,在重新 preempt 的时候,它们能够自动重建。当前,preemptible GPU 的特性只能在 US-central1 region 中使用。Preemptible VM 的完整文档可以通过 Compute Engine 文档进行访问。

Google、Amazon 和 Microsoft 都提供了这样低价的计算资源,形式包括 Preemptible VM、spot 或 reserved VM 实例。它们的差异在于实例使用的灵活性。Amazon EC2 Spot 实例兼容 Preemptible VM。但是,客户不能为它们添加 GPU。AWS 和 Azure 所提供的 reserved 实例成本优势不明显,不过它们有一年或三年的期限。根据用例和所需的可用性不同,用户可以选择存活时间更短的 Preemptible VM 或 AWS spot 实例,也可以选择生命周期更可扩展的 Azure 或 AWS Reserved 实例。它们在成本上都比云平台的 on-demand 实例更廉价。

查看英文原文Google Introduces Low-Priced Preemptible GPUs for Their Customers

语言 & 开发架构