离线异步任务场景

本文介绍什么是GPU离线异步任务场景和如何使用函数计算GPU异步调用、异步有状态调用服务离线AI推理、离线AI训练、离线GPU加速场景,以及如何基于非Web Server模式的Custom Container满足离线GPU应用场景。

场景介绍

在离线异步应用场景中,工作负载具有以下一个或多个特征。

  • 执行时间长

    业务的处理耗时一般在分钟~小时级,Response Time不敏感。

  • 提交后立即返回

    在触发调用后立即得到返回,从而不因长耗时处理阻塞业务主逻辑的执行。

  • 实时感知任务状态

    离线GPU任务需要查看执行中的状态以及中途主动取消执行的能力。

  • 并行处理

    离线GPU任务需要处理大量数据,对GPU资源供给要求高,并行运行加快处理速度。

  • 数据源集成

    离线GPU任务对数据源的需求多种多样,处理过程中需要与多种存储产品(例如对象存储OSS)和多种消息产品(例如消息队列)进行频繁交互。更多信息,请参见触发器简介

函数计算为离线异步应用类工作负载提供以下功能优势。

  • 业务架构简化

    对于长耗时,消耗大量资源,或者容易出错的逻辑,从主流程中剥离出来异步处理,提高系统响应速度、资源利用率和可用性。

  • 异步任务的最短路径

    企业能够以较小的代价,基于函数计算的异步GPU处理能力,建设面向AI业务的异步处理平台。

  • 充足的GPU资源供给

    函数计算平台提供充足的GPU资源供给,当业务遭遇大规模离线任务时,函数计算将以秒级弹性供给海量GPU算力资源,避免因GPU算力供给不足、GPU算力弹性滞后导致的业务受损,适合忙闲流量分明(长时空闲、短时繁忙)、忙闲流量不可预知的离线业务。

  • 数据源集成

    函数计算支持多种数据源触发方式,例如对象存储OSS、消息队列等,帮助业务简化数据源交互处理逻辑。

功能原理

当GPU函数部署完成后,您可以选择通过异步调用或异步任务触发离线GPU任务的提交。函数计算默认通过按量GPU实例为您服务(与之区别的是预留GPU实例,具体信息,请参见预留模式),提供离线异步应用场景所需的基础设施能力。

函数计算平台接收到多个异步提交的离线GPU任务后,将自动弹出多个按量GPU实例并行处理,通过海量GPU算力资源的充分供给保证大量离线GPU任务的并行运行,以最大程度减少排队耗时。当离线GPU任务总数超出单个阿里云账号地域级别的GPU资源处理能力上限后,离线GPU任务将进行排队。对于离线GPU任务的排队数量、处理中数量、处理完成数量可方便的进行观测,对于无须继续运行的离线GPU任务可以任意取消。当离线GPU任务运行完成,根据其执行成功与否,可触发回调不同的下游云产品联动。

image

容器支持

函数计算GPU场景下,当前仅支持以Custom Container(自定义容器运行环境)进行交付。关于Custom Container的使用详情,请参见Custom Container简介

Custom Container同时支持Web Server模式与非Web Server模式,在线推理应用场景普遍选择Web Server模式的容器交付,离线应用场景普遍选择非Web Server模式的容器交付。

非Web Server模式无需在镜像内携带Web Server,为最小侵入性选型。适用于容器不常驻、代码路径单一、通过事件触发的需求。支持参数传入。每次调用即为一个单独的小任务,适用于AI训练、音视频及图像处理等执行完毕即退出的场景。更多信息,请参见非Web Server模式

GPU实例规格

您可以在离线GPU任务应用场景下,根据业务需要,特别是算法模型所需要的CPU算力、GPU算力与显存、内存、磁盘,选择不同的GPU卡型与GPU实例规格。关于GPU实例规格的详细信息,请参见实例规格

部署方式

您可以使用多种方式将您的模型部署在函数计算。

更多部署示例,请参见start-fc-gpu

异步模式

离线应用场景由于执行时间长,须由异步调用方式进行触发,触发后可立即得到请求返回。由于普通的异步调用并不携带执行状态,所以需要将异步触发设置为异步任务。异步任务支持随时查询每个请求的执行状态,并且在必要情况下可以主动取消正在执行的请求。关于异步调用和异步任务的更多信息,请参见异步调用异步任务

并发调用

您的GPU函数在某个地域级别,例如华东1(杭州),支持的最大并发调用数量,取决于GPU函数实例的并发度、以及GPU物理卡的使用上限。

GPU函数实例并发度

默认情况下,GPU函数实例的默认并发度为1,即一个GPU函数实例在同一时刻仅能处理一个请求或离线GPU任务。您可以通过控制台、ServerlessDevs工具调整GPU函数实例的并发度配置。具体操作,请参见设置实例并发度。建议不同的应用场景,选择不同的并发度配置。对于计算密集型的离线GPU任务,建议GPU函数实例的并发度保持默认值1。

GPU物理卡的使用上限

GPU物理卡的使用上限,请参见GPU卡数限制

运行时长

函数计算GPU支持最长86400秒(24小时)的运行时间。搭配异步任务模式,可自由运行或取消正在运行的请求,适合长耗时的AI推理、AI训练、音视频处理和三维重建等场景。