当前位置: 首页 > news >正文

CANN算子数据类型列表配置

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::vector<ge::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),仅供参考

http://www.zskr.cn/news/1341280.html

相关文章:

  • UnattendGenerator进阶教程:如何创建复杂的多阶段安装配置
  • 对比Token Plan与按量计费在长期项目中的成本体感
  • 如何快速部署ESP32无人机识别模块:开源合规解决方案的完整指南
  • 终极Windows 11优化指南:如何用开源工具彻底清理系统冗余
  • 如何快速免费下载无水印抖音视频:一站式批量下载解决方案
  • 状态机——SpringStateMachine嵌套状态流转
  • 终极GTA5游戏助手:YimMenu完整实战指南
  • Postgresql基础实践教程(二)
  • 利用Taotoken审计日志功能追踪与分析团队内部的模型使用情况
  • 单日大涨4.52%!华泰柏瑞中韩半导体ETF(513310.SH)上演“高热度”行情,溢价率风险引关注
  • 2026降AI工具怎么选?4款主流工具实测,轻松把AI率压到20%内
  • 从elm-react-native学习React Native最佳实践:10个关键开发技巧
  • 极物科技 正点原子 RK3588 部署 Qwen2-VL Qwen2-VL-2B-Instruct,提供模型和npu驱动0.9.8的kernel
  • (C语言)指针详解与应用
  • 软工作业4
  • CANN/asc-devkit浮点ilogbf函数文档
  • weather_landscape性能优化技巧:提升图像生成速度和资源利用效率
  • 实习准备(26_05_21)
  • # 2026年西安中考复读学校谁家靠谱?教学、案例与管理模式横向测评 - 科技焦点
  • Kubepug快速入门:5分钟学会Kubernetes集群升级安全检查
  • 蓝晒法AI化转型关键突破,仅限前200名领取:含47个已验证蓝晒LUT预设+光照角度黄金比例表
  • 终极指南:如何彻底解决PHP Intelephense常见问题:索引失败、内存溢出、补全失效
  • mob源码深度解析:Go语言实现高效Git协作工具的架构奥秘
  • 3个真实开发场景:Continue如何让你的JetBrains IDE变成AI编程伙伴
  • 得电
  • 在Linux服务器上装了个国产AI代码助手,怎么让团队其他人也能用上
  • 建筑数据驱动预测控制方法应用【附模型】
  • mob高级用法:自定义分支命名和计时器集成
  • 什么是换根DP及第一步操作说明
  • ROCm rocr-libhsakmt分析系列3: aperture概念