
DataTypeList【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit功能说明定义算子参数数据类型。如果某个输入/输出支持的数据类型支持和其他所有输入/输出支持的数据类型、数据格式组合使用可以使用该接口定义数据类型。使用DataType配置数据类型时算子参数的数据类型和格式必须通过显式组合配置每个组合包含完整的输入/输出数据类型与数据格式的对应关系。如下的示例中表示当输入x和y数据类型为DT_FLOAT16时对应的输出z数据类型也为DT_FLOAT16支持的数据格式要求为FORMAT_ND。class AddCustom : public OpDef { public: AddCustom(const char* name) : OpDef(name) { this-Input(x) .ParamType(REQUIRED) .DataType({ge::DT_FLOAT16, ge::DT_FLOAT, ge::DT_INT32}) .Format({ge::FORMAT_ND, ge::FORMAT_ND, ge::FORMAT_ND}); this-Input(y) .ParamType(REQUIRED) .DataType({ge::DT_FLOAT16, ge::DT_FLOAT, ge::DT_INT32}) .Format({ge::FORMAT_ND, ge::FORMAT_ND, ge::FORMAT_ND}); this-Output(z) .ParamType(REQUIRED) .DataType({ge::DT_FLOAT16, ge::DT_FLOAT, ge::DT_INT32}) .Format({ge::FORMAT_ND, ge::FORMAT_ND, ge::FORMAT_ND}); ... } };如果某个输入/输出支持的数据类型支持和其他所有输入/输出支持的数据类型、数据格式组合使用使用DataType接口需要写成如下的格式表示当输入x为DT_FLOAT16时支持输入y和输入z的所有数据类型、数据格式组合。class XxxCustom : public OpDef { public: XxxCustom(const char* name) : OpDef(name) { this-Input(x) .ParamType(REQUIRED) .DataType({ge::DT_FLOAT16, ge::DT_FLOAT16, ge::DT_FLOAT16}) .Format({ge::FORMAT_ND, ge::FORMAT_ND, ge::FORMAT_ND}); this-Input(y) .ParamType(REQUIRED) .DataType({ge::DT_FLOAT16, ge::DT_FLOAT, ge::DT_INT32}) .Format({ge::FORMAT_ND, ge::FORMAT_ND, ge::FORMAT_ND}); this-Output(z) .ParamType(REQUIRED) .DataType({ge::DT_FLOAT16, ge::DT_FLOAT, ge::DT_INT32}) .Format({ge::FORMAT_ND, ge::FORMAT_ND, ge::FORMAT_ND}); ... } };此时可以通过DataTypeList指定数据类型无需重复列出例如class XxxCustom : public OpDef { public: XxxCustom(const char* name) : OpDef(name) { this-Input(x) .ParamType(REQUIRED) .DataTypeList({ge::DT_FLOAT16}) .Format({ge::FORMAT_ND, ge::FORMAT_ND, ge::FORMAT_ND}); this-Input(y) .ParamType(REQUIRED) .DataType({ge::DT_FLOAT16, ge::DT_FLOAT, ge::DT_INT32}) .Format({ge::FORMAT_ND, ge::FORMAT_ND, ge::FORMAT_ND}); this-Output(z) .ParamType(REQUIRED) .DataType({ge::DT_FLOAT16, ge::DT_FLOAT, ge::DT_INT32}) .Format({ge::FORMAT_ND, ge::FORMAT_ND, ge::FORMAT_ND}); ... } };函数原型OpParamDef DataTypeList(std::vectorge::DataType types)参数说明参数输入/输出说明types输入算子参数数据类型。返回值说明OpParamDef算子定义OpParamDef请参考OpParamDef。约束说明同一输入/输出不能同时设置DataType和DataTypeList。本接口不支持和UnknownShapeFormat同时使用。调用示例class AddCustom : public OpDef { public: AddCustom(const char* name) : OpDef(name) { this-Input(x) .ParamType(REQUIRED) .DataTypeList({ge::DT_FLOAT}) .Format({ge::FORMAT_ND, ge::FORMAT_NCHW}); this-Input(x1) ...... } };【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考