FormatForBinQuery

函数功能

设置Input/Output用于运行时算子二进制查找的数据格式,和Format/FormatList的数量一致,且一一对应。

算子编译过程中,会根据数据格式生成多个.o,并通过这些数据格式在运行时索引算子二进制。某些算子支持多种数据格式,且对数据格式不敏感,这时可以使用该接口,将多种数据格式映射到同一个算子二进制,多个数据格式可以复用一个.o,从而减少二进制文件的生成。

例如,如果一个算子的输入支持多种数据格式(ge::FORMAT_NC和ge::FORMAT_ND),并且使用ge::FORMAT_NC输入时可以复用ge::FORMAT_ND的二进制文件而不影响最终结果,那么可以采用如下配置:

1
2
3
4
5
this->Input("x")
            .ParamType(REQUIRED)
            .DataType({ge::DT_INT16, ge::DT_INT16})
            .Format({ge::FORMAT_NC, ge::FORMAT_ND})
            .FormatForBinQuery({ge::FORMAT_ND,ge::FORMAT_ND});

这样,只需生成一个目标文件(.o),就能实现对多种数据格式的支持。

函数原型

1
OpParamDef &FormatForBinQuery(std::vector<ge::Format> formats)

参数说明

参数

输入/输出

说明

formats

输入

算子参数数据格式,ge::Format请参考Format

返回值说明

OpParamDef算子定义,OpParamDef请参考OpParamDef

约束说明

调用示例