AI 驱动的创新和转型正处于令人激动的时代。我们发布了 AI Hypercomputer,这是一种突破性的架构,是采用 AI 优化的硬件、软件和消费模型的集成系统。借助 AI Hypercomputer,世界各地的企业都可以在与谷歌内部 AI/ML 研究、开发、训练和服务相同的尖端基础设施之上运行。
然而,对 TPU 和 NVIDIA GPU 的巨大需求使得有效的资源管理比以往任何时候都更加重要。
为了解决这个问题,我们很高兴地推出 Dynamic Workload Scheduler,这是一种新的、简单且强大的方法来访问 GPU 和 TPU。该博客供技术受众深入了解它是什么、它如何工作以及如何使用它。
什么是动态工作负载调度程序?
Dynamic Workload Scheduler 是专为 AI Hypercomputer 设计的资源管理和作业调度平台。Dynamic Workload Scheduler 可改善您对 AI/ML 资源的访问,帮助您优化支出,并通过同时调度所需的所有加速器来改善训练和微调作业等工作负载的体验。Dynamic Workload Scheduler 支持 TPU 和 NVIDIA GPU,并将 Google ML 队列的调度进步带给 Google Cloud 客户。Dynamic Workload Scheduler 还集成在您喜欢的许多 Google Cloud AI/ML 服务中,例如:Compute Engine 托管实例组、Google Kubernetes Engine、Vertex AI、Batch 等,还有更多正在计划中。
两种模式:Flex Start 和日历
Dynamic Workload Scheduler 引入了两种模式:用于增强可用性和优化经济性的 Flex Start 模式,以及用于确保作业开始时间高度可预测性的日历模式。
1.Flex Start 模式:高效的 GPU 和 TPU 访问,经济性更好
Flex Start 模式专为微调模型、实验、较短的训练作业、蒸馏、离线推理和批处理作业而设计。使用 Flex Start 模式,您可以在作业准备好运行时请求 GPU 和 TPU 容量。
在 Flex Start 模式下使用 Dynamic Workload Scheduler,您可以通过指明需要的数量、持续时间和首选区域来提交 AI/ML 作业的 GPU 容量请求。Dynamic Workload Scheduler 会智能地保留请求;一旦容量可用,它会自动配置您的虚拟机,使您的工作负载能够在整个容量分配期间持续运行。Dynamic Workload Scheduler 支持长达 7 天的容量请求,没有最短持续时间要求。您可以请求短至几分钟或几小时的容量;通常,调度程序可以比较长的请求更快地满足较短的请求。
如果您的训练作业提早完成,您可以简单地终止虚拟机以释放资源,并且只需为实际消耗的工作负载付费。您不再需要保留闲置资源只是为了以后使用它们。
如果您将 GKE 节点池用于 AI/ML 工作负载,则使用 Dynamic Workload Scheduler 的一种简单方法是通过 Kueue 等编排器。流行的 ML 框架,如 Ray、Kubeflow、Flux、PyTorch 和其他训练运算符都是开箱即用的。以下是启用此功能的步骤:
步骤 1:创建一个启用“enable-queued-provisioning”选项的节点池。
gcloud beta container node-pools create NODEPOOL_NAME --cluster=CLUSTER_NAME --region=CLUSTER_REGION --enable-queued-provisioning --accelerator type=GPU_TYPE,count=AMOUNT,gpu-driver-version=DRIVER_VERSION --enable-autoscaling --num-nodes=0 --total-max-nodes=NODES_MAX --reservation-affinity=none --no-enable-autorepair --impersonate-service-account SERVICE_ACCOUNT |
步骤 2:创建 GKE 作业时,为其添加标签以指示 Kueue 和 Dynamic Workload Scheduler 应运行它。Kueue 会完成剩下的工作:它将自动执行容量请求并处理作业启动编排。
apiVersion: batch/v1 kind: Job metadata: name: sample-job namespace: default labels: kueue.x-k8s.io/queue-name: dws-local-queue spec: parallelism: 1 completions: 1 suspend: true template: . . . . . |
2.日历模式:为您的 AI 工作负载预留开始时间 [预览 Q1' 24]
日历模式适用于需要精确开始时间和固定持续时间的训练和实验工作负载。该模式扩展了 9 月份宣布的未来预订功能。
使用日历模式,您将能够以固定持续时间的容量块请求 GPU 容量。它最初将支持未来 7 或 14 天的预订,并且最多可以提前 8 周购买。您的预订将根据可用性得到确认,并且容量将在您要求的开始日期交付到您的项目中。您的虚拟机将能够定位到该预订并消耗该容量块。在定义的持续时间结束时,虚拟机将被终止,并且预订将被删除。
第 1 步:创建日历模式未来预订。
gcloud alpha compute future-reservations create my-calendarblock \\ --zone=us-central1-a --machine-type=a3-highgpu-8g --vm_count=VM_COUNT --start-time=START_TIME --end-time=END_TIME --auto-delete-auto-created-reservations \\ --require-specific-reservation |
步骤 2:运行具有特定预订关联性的虚拟机,并指定通过 Compute Engine、托管实例组或目前可用的 GKE API 在所需开始日期交付的预订。
客户对 Dynamic Workload Scheduler 的评价
Dynamic Workload Scheduler 基于 Google Borg 技术构建,负责实时调度 Google ML 队列上的数百万个作业,其中包括全球最大的分布式 LLM 训练作业之一(截至 2023 年 11 月)。借助 Flex Start 和 Calendar 模式,Dynamic Workload Scheduler 可以为您提供更大的灵活性、改进对 GPU 和 TPU 的访问、更好的资源利用率和更低的成本。客户和合作伙伴已经看到了 Dynamic Workload Scheduler 的优势。
以下是文生视频生成式 AI 公司 Linum AI 的说法:
“新的 Dynamic Workload Scheduler 调度功能彻底改变了游戏规则,为我们的训练运行获取足够的 GPU 容量。我们不必担心在刷新页面时浪费钱在空闲 GPU 上,我们有足够的计算资源可用。”
- Sahil Chopra,Linum AI 联合创始人兼首席执行官
sudoAI 是一家 3D 生成式 AI 公司,使用 Dynamic Workload Scheduler 支持的 API 训练其最新的生成式模型。
“我们真的很喜欢每次需要时都能方便地找到容量,无需为此感到担心。它使我们能够测试新想法、迭代并进行更长时间的训练。我们能够使用新的 Dynamic Workload Scheduler 来全面训练我们最新的 3D Gen AI 模型,并按时发布。”
- Robin Han,sudoAI 联合创始人兼首席执行官
今天开始
立即开始使用支持 Dynamic Workload Scheduler 的 API。了解如何使用 Google Kubernetes Engine ProvisioningRequest API 和 Kueue 部署 GPU 。对于 TPU,您可以使用 Kubernetes Engine 或直接通过 Queued Resources。
文章信息
相关推荐
