Micro Batch
Micro Batch即在批处理过程中,将数据切分为更小粒度的多个batch运行。当前实现中,通过额外创建一条数据流,将一批数据分成两个batch在两条数据流上执行。数据流1在执行计算时,数据流2可进行通信,计算和通信耗时掩盖,使得硬件资源得以充分利用,以提高推理吞吐。
图1 Micro Batch双流示意图


数据流间通过Event机制进行同步,计算和通信任务间都相互不冲突,防止硬件资源抢占。此特性通常应用在Prefill阶段,因为Prefill阶段通信类算子耗时较长,且通信类算子与计算类算子耗时占比更为均衡。在此实现下,计算和通信类算子掩盖率达70%+。
限制与约束
使用样例
下面以Qwen3模型为例,示意如何在服务化场景下,关闭通算融合算子,开启Micro Batch特性。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | "ModelDeployConfig" : { "maxSeqLen" : 2560, "maxInputTokenLen" : 2048, "truncation" : false, "ModelConfig" : [ { "modelInstanceType" : "Standard", "modelName" : "Qwen3-14B", "modelWeightPath" : "/data/weights/Qwen3-14B", "worldSize" : 8, "cpuMemSize" : 5, "npuMemSize" : -1, "backendType" : "atb", "trustRemoteCode" : false, "models": { "qwen3": { "ccl": { "enable_mc2": false, }, "stream_options": { "micro_batch": true, } } } } ] }, |
执行推理
- 配置服务化参数。该特性需配合MindIE Motor使用,按照表1在服务化的config.json文件中添加相应参数,config.json文件路径的详细说明请参考《MindIE安装指南》中的“配置MindIE > 配置MindIE Server > 单机推理”章节中的软件包文件清单。
- 启动服务。启动服务方法具体请参考《MindIE Motor开发指南》中的“快速开始 > 启动服务”章节。
父主题: 特性介绍