EMR Serverless 队列支持 mGPU,实现单张 GPU卡 的资源共享,灵活分配算力核心与显存资源并严格隔离。本文为您介绍 mGPU 资源的开通方式和使用方式。
说明
mGPU 详细说明请参考:mGPU 概述。
在 EMR Serverless 创建队列界面,选择 GPU 资源配置后,您可以选择开启mGPU,创建后队列则使用 mGPU 资源。
说明
mGPU 相关参数见下表,详细 GPU 参数请参见 EMR Serverless GPU 参数说明。
作业类型 | 参数key | 参数含义 | 参数示例 |
|---|---|---|---|
CustomJob | emr.serverless.mgpu.core | 设置单 Pod 使用的算力。 注意 当设置大于等于100后,代表使用整张 GPU卡 算力,只能设置100的整数倍,例如 200,代表挂载2张完整的 GPU卡 算力 | 30 |
emr.serverless.mgpu.memory | 设置单 Pod 使用的显存,单位为 MiB,例如4096表示 GPU 显存为4 GiB。 注意 当Mgpu Core 设置大于等于100时,默认使用整卡资源。设置后不允许再设置mgpu memory参数 | 4096 | |
serverless.custom.job.task.gpus | CustomJob 单Task GPU卡数量,在 mGPU 场景下,数量会自动转换为使用整张 GPU卡 ,例如2表示使用2整张 GPU卡 。 注意 emr.serverless.mgpu.core 优先级高于 serverless.custom.job.task.gpus。 | 1 | |
Ray | serverless.ray.head.mgpu.core | Ray Head专用配置,单独设置ray head所用的mgpu core,用法与 | 30 |
serverless.ray.head.mgpu.memory | Ray Head专用配置,设置ray head所用的mgpu memory,用法与emr.serverless.mgpu.memory 对齐。 | 4096 | |
serverless.ray.worker.mgpu.core | Ray Worker专用配置,单独设置ray worker所用的mgpu core,用法与 | 30 | |
serverless.ray.worker.mgpu.memory | Ray Worker专用配置,设置ray worker所用的mgpu memory,用法与 | 4096 | |
serverless.ray.worker.gpu.amount | Ray 单Worker GPU卡数量,在mgpu场景下,数量会自动转换为使用整张 GPU卡 ,例如2表示使用2整张 GPU卡 。 注意 serverless.ray.worker.mgpu.core 优先级高于serverless.ray.worker.gpu.amount。 | 1 |
注意
对于引擎来说,引擎感知的 GPU 还是一整张 GPU卡 ,只是这张“卡”的显存和算力受到了限制。因此,上层引擎业务代码还是可以按照一张卡进行使用。
在 default 计算组,可以额外设置如下参数:
-- 设置mgu相关参数 emr.serverless.mgpu.core=30; emr.serverless.mgpu.memory=1000; -- 设置历史的GPU参数,在开启mgpu队列的情况默认使用整卡 -- 等同于 emr.serverless.mgpu.core=100 serverless.custom.job.task.gpus=1;
设置后,每个 CustomJob 的 Task 会挂载一张 GPU卡 ,并仅使用其30%的算力和1000 MiB 的显存。
在 default 计算组,可以额外设置如下参数:
-- mgpu相关参数 serverless.ray.worker.mgpu.core=30; serverless.ray.worker.mgpu.memory=4096; -- 设置历史的GPU参数,在开启mgpu队列的情况默认使用整卡 -- 等同于 serverless.ray.worker.mgpu.core; serverless.ray.worker.gpu.amount=1;
设置后,每个Ray Worker都会挂载一张 GPU卡 ,但每个 Worker 只使用30%的 GPU卡 算力和 4096 MiB 的显存。同时能在 Ray dashborad 里看到 Worker 有1张 GPU卡 资源:
在 Ray Cluster/ Ray Serve 中,可以通过界面设置 Worker / Head 所需的mGPU core 和 memory。
当设置大于等于100后,代表使用整张卡算力,只能设置100的整数倍,例如 200,代表挂载2张完整的 GPU卡 算力。
在 EMR控制台>队列详情>队列监控>GPU资源 处,可以看到当前队列的 mGPU Core 和 Memory 使用情况。
若设置 mGPU 参数后,作业无法启动,请检查 mGPU core和 mGPU memory数值是否符合要求: