You need to enable JavaScript to run this app.
文档中心
E-MapReduce

E-MapReduce

复制全文
下载 pdf
mGPU 作业
EMR Serverless 使用 mGPU 资源
复制全文
下载 pdf
EMR Serverless 使用 mGPU 资源

EMR Serverless 队列支持 mGPU,实现单张 GPU卡 的资源共享,灵活分配算力核心与显存资源并严格隔离。本文为您介绍 mGPU 资源的开通方式和使用方式。

使用限制
  • 只能在创建队列时选择是否开启 mGPU,开启后,计算引擎使用 mGPU 资源;若不开启,计算引擎使用整个 GPU 实例资源。
  • 一张 GPU卡 上最多可创建 16 个 mGPU Executor/Worker。 计算性能会随 mGPU 的创建数量衰减,建议按照业务要求规划引擎 Executor/Worker 数量。
  • mGPU 设置的最小显存为:256 MiB,最小core为:5

背景信息
  • mGPU 是火山引擎基于内核虚拟化隔离 GPU 并结合自研调度框架提供的容器共享 GPU 方案,通过内核虚拟化技术,实现单张 GPU卡 的资源共享,灵活分配算力核心与现存资源并严格隔离。
  • 开启 mGPU 后,队列中的作业可直接指定调用单张 GPU卡 的部分核心与显存,在小模型场景下,能显著降低使用成本,提升资源利用率。
  • 在 EMR Serverless GPU 队列上,支持 Ray/CustomJob 两种引擎使用mGPU,您可以在不改动引擎业务代码的情况下直接使用 mGPU 在多个 作业/Pod 间共享 GPU 资源。

说明

mGPU 详细说明请参考:mGPU 概述

操作步骤

开通 mGPU

在 EMR Serverless 创建队列界面,选择 GPU 资源配置后,您可以选择开启mGPU,创建后队列则使用 mGPU 资源。

说明

  • mGPU 与 GPU 互斥,单个队列只能使用 GPU 或 mGPU。
  • mGPU 虚拟化本身会占用小部分显存,实际可用显存略低于整卡原生显存。

Image

引擎使用 mGPU 资源

相关参数

mGPU 相关参数见下表,详细 GPU 参数请参见 EMR Serverless GPU 参数说明

作业类型

参数key

参数含义

参数示例

CustomJob

emr.serverless.mgpu.core

设置单 Pod 使用的算力。
当设置不超过单张 GPU卡 算力时:范围为5~100,最小 GPU 算力为5%且步长为5,例如设置30,代表使用30%的算力。设置为99则代表用整张 GPU卡 99%的算力。

注意

当设置大于等于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,用法与emr.serverless.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,用法与emr.serverless.mgpu.core 对齐。

30

serverless.ray.worker.mgpu.memory

Ray Worker专用配置,设置ray worker所用的mgpu memory,用法与emr.serverless.mgpu.memery对齐。

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卡 ,只是这张“卡”的显存和算力受到了限制。因此,上层引擎业务代码还是可以按照一张卡进行使用。

CustomJob

在 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 的显存。

RayJob

在 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卡 资源:
Image

RayCluster / RayServe

在 Ray Cluster/ Ray Serve 中,可以通过界面设置 Worker / Head 所需的mGPU core 和 memory。
Image
当设置大于等于100后,代表使用整张卡算力,只能设置100的整数倍,例如 200,代表挂载2张完整的 GPU卡 算力。
Image

资源监控

EMR控制台>队列详情>队列监控>GPU资源 处,可以看到当前队列的 mGPU Core 和 Memory 使用情况。
Image

常见问题

若设置 mGPU 参数后,作业无法启动,请检查 mGPU core和 mGPU memory数值是否符合要求:

  • 当设置 mGPU core 不超过单张 GPU卡 算力时:范围为5~100。
  • 当 mGPU core 设置大于等于100后,只能设置100的整数倍。
  • mGPU core 设置大于等于100后,不允许设置 mGPU memory。
最近更新时间:2026.06.30 19:59:51
这个页面对您有帮助吗?
有用
有用
无用
无用