本页面介绍了可用于根据 AI/机器学习工作负载的要求获取计算加速器(例如 GPU 或 TPU)的可用技术。在 GKE 中,这些技术称为加速器使用选项。了解不同的使用选项有助于您优化资源利用率以避免未充分利用资源、提高获取资源的可能性并平衡成本和性能。
本页面适用于与机器学习 (ML) 工程师协调以获取成功部署 AI/机器学习工作负载所需资源的平台管理员和运维人员。
如需详细了解我们在 Google Cloud 内容中提及的常见角色和示例任务,请参阅常见的 GKE 用户角色和任务。
了解使用选项
您可以选择以下某个选项以在 GKE 上使用加速器:
- 按需:您可以在 GKE 上使用 TPU 或 GPU,而无需提前安排容量。在请求资源之前,您必须拥有足够的按需配额,以用于特定类型和数量的加速器。按需是最灵活的使用选项;不过,我们无法保证有足够的按需资源可用于满足您的请求。
- 预留:您可在一段设定的时间内预留资源。预留可以是以下任何一项:
- 未来预留:您在通常较长的时间内预留资源,以在未来特定时间使用。在该时间段内,您对预留的资源拥有独占访问权限。进行未来预留需要接洽技术支持客户经理 (TAM)。如需了解详情,请参阅 TPU 和 GPU 指南。
- 最长 90 天的未来预留(日历模式):您可以在指定的时间段内请求容量,系统会通过日历顾问建议可用的日期。最长 90 天的未来预留(日历模式)可提供较高的灵活性以用于较短的时长,并可实现自助式容量搜索。如需了解详情,请参阅日历模式下的未来预留请求。
- 按需预留:您可以请求在容量可用时立即预配按需预留,这与按需选项类似。在预留处于有效状态期间,无论您是否使用这些资源,都需要为其付费。
- 灵活启动:您可为短时工作负载确保密集分配的资源,而无需使用预留。您可请求特定数量的 GPU 或 TPU,Compute Engine 会在容量可用时进行预配。GPU 或 TPU 最长可不间断地运行 7 天。如需了解详情,请参阅灵活启动预配。
- Spot:您可预配 Spot 虚拟机,这使您可以享受大幅折扣,但 Spot 虚拟机随时可能被抢占(会提前 30 秒发出警告)。如需了解详情,请参阅 Spot 虚拟机。
为了在计算资源受限的情况下优化预配成功率,您可以使用 ComputeClasses 来编排这些选项。
了解 GKE 中的加速器配额
配额和系统限制会限制您对 Google Cloud 资源的使用,以确保所有 Google Cloud 用户都能使用资源。配额具有默认值,但您通常可以申请调整。系统限制是无法更改的固定值。默认情况下,项目通常不附带大量加速器配额。您必须针对特定加速器类型和区域请求配额并获得批准。
在管理工作负载所需的配额时,请考虑以下特征:
您必须为每个使用选项请求所需的配额。如需确定每个使用选项所需的配额,请参阅选择使用选项表中列出的相应“配额”参数。如果配额不足,尝试创建集群、节点池或部署需要加速器的工作负载会失败,并显示
Quota exceeded错误。在 Autopilot 中使用 自定义 ComputeClass 时,您必须请求配额。为满足 ComputeClass 要求而预配的节点仍会使用项目在指定加速器方面的配额。
Google Cloud 免费试用账号在申请增加 GPU 和 TPU 等高价值资源的配额方面存在限制。如需使用加速器配额,请升级为付费账号。
如需查看和请求配额,请前往 Google Cloud 控制台中的“配额”页面。您可以过滤加速器配额并申请增加配额。
确定使用选项
请考虑以下注意事项,为您的 AI/机器学习工作负载选择最佳使用选项:
- 工作负载类型:考虑您要实现的工作负载类型。GKE 要求会因您是运行训练工作负载还是推理工作负载而有所不同:
- 训练:需要具有大量内存的高性能资源。训练工作负载通常具有明确定义的有效期。这些工作负载通常更容易规划,因为它们不太容易出现资源消耗量突然激增的情况。
- 推理:通常需要针对可扩缩性和更低成本进行优化的加速器。推理工作负载在资源消耗量突然激增期间可能需要大量加速器内存。
- 基于实施阶段的有效期:如果您在执行概念验证 (POC)、平台评估、应用开发或测试、投产或优化,请考虑您的业务目标。
- 预配时间:确定工作负载是否需要立即执行,或者是否可以在未来运行。如果可以在未来执行,请确定开始时间可以有多灵活。
- 成本与性能之间的平衡:评估工作负载性能要求和预算限制,以选择最具成本效益的加速器。请考虑加速器的成本与其性能特征之间的权衡。请注意,新加速器可能会带来更高的性价比。
选择使用选项
请使用下表选择使用选项:
| 使用选项 | 预配参数 | 支持的加速器 | 详细信息 | 示例工作负载 |
|---|---|---|---|---|
| 按需预留 |
|
|
|
|
| 未来预留 |
|
|
|
|
| 最长 90 天的未来预留(日历模式) |
|
|
|
|
| 灵活启动预配模式 |
|
|
|
|
| Spot 虚拟机 |
|
|
|
|
| 按需(GPU 或 TPU) |
|
|
|
使用 ComputeClass 优化费用和工作负载预配
您可以使用 ComputeClasses 通过定义基于优先级的回退配置列表来动态管理 和自动执行加速器使用策略。在扩容操作期间,GKE 会尝试根据您设置的优先级层次结构预配节点。
以下列表介绍了 ComputeClass 提供的使用选项以及如何配置这些选项。如需查看完整的 YAML 清单,请参阅 ComputeClass 的使用选项示例。
- 预留:您可以在 ComputeClass 的
reservations字段中定义预留名称。这可确保 GKE 首先尝试使用预留容量,然后再回退。 - 灵活启动预配模式:使用 ComputeClass 中的
flexStart字段启用灵活队列,并使用nodeRecycling字段配置回退节点替换时长。 - Spot 虚拟机:通过将
spot字段设置为true,指示 GKE 在为该优先级规则 预配节点时使用 Spot 虚拟机。 - 按需容量与多可用区位置政策相结合:
在优先级列表中声明标准机器配置,并
使用
location字段配置回退位置策略。
ComputeClass 不支持 未来预留 或 最长 90 天的未来预留(日历模式)。
ComputeClass 的使用选项示例
以下部分提供了这些策略的配置示例。
具有回退配置的预留
此配置最适合可以容忍中断的 工作负载,而不是依赖于持久性数据或需要运行完成的 工作负载。
此配置通过以下步骤建立弹性回退策略:
- 先使用预留 :GKE 尝试使用您预先购买的特定容量预留来预配节点。
- 回退到灵活启动 :如果预留容量已完全用完,GKE 会回退到短时、折扣灵活启动资源。
- 回退到按需 :作为最终回退,GKE 会预配标准按需资源。
迁移回预留 :启用主动迁移后,GKE 会指示系统在容量可用时自动将工作负载整合并迁移回优先级较高的预留节点。 此迁移可能会中断服务。
apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: ha-gpu-fallback spec: activeMigration: optimizeRulePriority: true # Migrate workloads back to reservation when capacity releases priorities: # Priority 1: Consume specific corporate reservation first - gpu: type: nvidia-l4 count: 1 reservations: affinity: Specific specific: - name: reserved-l4-pool project: my-project zones: [us-central1-a] # Priority 2: Fallback to Flex Start (short-duration allocation) - gpu: type: nvidia-l4 count: 1 flexStart: enabled: true # Priority 3: Fallback to On-demand resources - gpu: type: nvidia-l4 count: 1
具有节点回收配置的灵活启动预配模式
此配置通过以下步骤管理短时、折扣容量并保持持续正常运行时间:
- 请求灵活启动虚拟机 :GKE 从灵活启动队列请求虚拟机实例(这些实例最多可不间断地运行 7 天)。
- 监控租约到期 :GKE 跟踪有效灵活启动节点的剩余时长。
- 触发节点回收 :在虚拟机租约到期前 20 分钟(1200 秒),GKE 会自动预配替换节点。
重新安排工作负载 :工作负载会迁移到新节点,并在不中断服务的情况下恢复执行。
apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: flex-node-recycling spec: priorities: - gpu: type: nvidia-l4 count: 1 flexStart: enabled: true nodeRecycling: leadTimeSeconds: 1200 # Automatically launch replacement node before VM lease expires
多可用区分配政策配置
此配置通过以下步骤绕过单可用区供应限制:
- 定义目标可用区 :您可以在优先级规则中列出多个备份可用区(例如
us-central1-a、us-central1-b和us-central1-c)。 - 扩大目标参数:您将位置政策设置为
ANY。此设置指示集群自动扩缩器在所有指定可用区中搜索请求的容量。 - 分析可用区可用性 :在扩容事件期间,GKE 会扫描指定可用区。
在可用可用区中预配 :GKE 会立即在具有匹配容量的任何目标可用区中预配请求的工作负载节点。此策略可防止分配队列中出现阻塞。
apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: broad-zonal-serving spec: priorities: - gpu: type: nvidia-l4 count: 1 location: zones: [us-central1-a, us-central1-b, us-central1-c] locationPolicy: ANY # Provision accelerator in any target zone with supply
后续步骤
- 详细了解 GKE 中的 GPU。
- 详细了解 GKE 中的 TPU。
- 详细了解 GKE 上的 AI/机器学习推理。