CANN/ge CountBatch批处理功能

📅 2026/7/4 21:26:25 👁️ 阅读次数 📝 编程学习
CANN/ge CountBatch批处理功能

CountBatch

【免费下载链接】geGE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力,并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge

产品支持情况

产品是否支持
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能介绍

CountBatch功能是指基于UDF为计算处理点将多个数据按batch_size组成batch。

该功能应用于DataFlow异步场景,具体如下。

  • 长时间没有数据输入时,可以通过CountBatch功能设置超时时间,如果没有设置padding,超时后取当前已有数据送计算处理点处理。
  • 设置超时时间后,如果数据不满batch_size时,可以通过CountBatch功能设置padding属性,计算点根据padding设置对数据进行填充到batch_size后输出。

使用方法

用户在DataFlow构图时通过给FlowNode的输入设置属性来添加CountBatch功能。示例如下。

CountBatch count_batch = {}; // 按需求设置count_batch中各属性的值 count_batch.timeout = 10; count_batch.batch_size = 300; count_batch.padding = true; count_batch.slide_stride = 5; DataFlowInputAttr flow_attr = {DataFlowAttrType::COUNT_BATCH, &count_batch}; std::vector<DataFlowInputAttr> flow_attrs = {flow_attr}; // 通过FlowNode的MapInput设置 FlowNode::MapInput(xx, xx, xx, flow_attrs);
属性名称数据类型取值说明
batch_sizeint64_t组batch大小。
timeoutint64_t只有设置了batch_size时,该参数才生效。
组batch等待时间,单位(ms),取值范围[0,4294967295),默认值是0,表示一直等待直到满batch。
paddingbool只有设置了batch_size和timeout时,该参数才生效。
不足batch时,是否padding。默认值false,表示不padding。
slide_strideint64_t只有设置了batch_size时,该参数才生效。
滑窗步长,取值范围[0,batch_size]。

- >0且<batch_size时表示启用滑窗方式组batch。
- 不设置,等于0。
- 等于batch_size时按照未设置滑窗步长方式组batch。
- >batch_size报错。
batch_dimint64_t未使能。
flagint32_t未使能。
drop_remainderbool未使能。

使用注意事项

当前Batch特性无法做负荷分担,因此如果使用2P环境,需要在ge初始化时添加{"ge.exec.logicalDeviceClusterDeployMode", "SINGLE"}, {"ge.exec.logicalDeviceId", "[0:0]"}。

【免费下载链接】geGE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力,并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考