当前位置: 首页 > 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.jsqmd.com/news/860980/

相关文章:

  • CANN/asc-devkit atanf函数文档
  • curtains.js实战案例:AJAX导航与平面移除的高级应用
  • 终极GTA5游戏助手:YimMenu完整实战指南
  • 中文Kodi媒体中心终极指南:4大本土化插件解决方案
  • SeekStorm入门指南:5分钟构建你的第一个高性能搜索引擎
  • ROCm rocr-libhsakmt分析系列3: aperture概念
  • 终极指南:如何彻底解决PHP Intelephense常见问题:索引失败、内存溢出、补全失效
  • 3小时重构视觉可信度:Midjourney拟物化风格紧急修复指南——含光照角度校准、微纹理叠加、物理反射模拟速查表
  • 5分钟掌握:跨平台获取官方macOS安装包的终极指南
  • FFXVIFix终极优化指南:5分钟解锁《最终幻想16》完美游戏体验
  • CMake基础:常用内部变量和环境变量的引用
  • Enumerize扩展模块:如何创建可重用的枚举定义
  • Octree-GS终极指南:如何用LOD结构化3D高斯实现实时大规模场景渲染
  • 10分钟掌握XGBoost:机器学习竞赛的终极梯度提升库
  • Midjourney纹理生成终极瓶颈曝光:GPU显存≠关键,真正卡点是CLIP文本嵌入层的纹理语义坍缩(附3种绕过方案)
  • 从elm-react-native学习React Native最佳实践:10个关键开发技巧
  • 不锈钢防火玻璃门——工程场景下安全与通透的平衡方案
  • Cookies.js 与其他Cookie库对比:终极优势分析与适用场景指南
  • OpenELB安全配置:RBAC、网络策略与证书管理最佳实践
  • 什么是换根DP及第一步操作说明
  • CANN/asc-devkit获取向量寄存器长度API
  • 案例11_2:液晶应用实例LCD1602(2)
  • SPlisHSPlasH部署与构建指南:Windows与Linux环境完整配置流程
  • Cookies.js 错误处理机制终极指南:编码异常与浏览器兼容性问题解决方案
  • Linux操作系统-逻辑卷管理(LVM)
  • No!! MeiryoUI终极指南:3步恢复Windows界面字体自定义功能
  • CANN/asc-devkit:获取核心内存带宽API
  • 深度防御架构:unblob的多层安全防护与权限隔离实践
  • 蓝晒法AI化转型关键突破,仅限前200名领取:含47个已验证蓝晒LUT预设+光照角度黄金比例表
  • 终极GTA5安全增强菜单:YimMenu完整使用指南与防护策略