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

Ascend C Conv3D Tiling使用说明

Conv3D Tiling使用说明

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

Ascend C提供一组Conv3D Tiling API,方便用户获取Conv3D正向算子Kernel计算时所需的Tiling参数。用户只需要传入Input/Weight/Bias/Output的Position位置、Format格式和DType数据类型及相关参数等信息,调用API接口,即可获取Init中TConv3DApiTiling结构体中的相关参数。

Conv3D Tiling API提供Conv3D单核Tiling接口,用于Conv3D单核计算场景,获取Tiling参数的流程如下:

  1. 创建一个单核Tiling对象。
  2. 设置Input、Weight、Bias、Output的参数类型信息以及Shape信息,如果存在Padding、Stride、Dilation参数,通过SetPadding、SetStride、SetDilation接口进行相关设置。
  3. 调用GetTiling接口,获取Tiling信息。

使用Conv3D Tiling接口获取Tiling参数的样例如下:

// 实例化Conv3D Api auto ascendcPlatform = platform_ascendc::PlatformAscendC(context->GetPlatformInfo()); Conv3dTilingApi::Conv3dTiling conv3dApiTiling(ascendcPlatform); // 设置输入输出原始规格、单核规格、参数等 conv3dApiTiling.SetGroups(groups); conv3dApiTiling.SetOrgWeightShape(cout, kd, kh, kw); conv3dApiTiling.SetOrgInputShape(cin, di, hi, wi); conv3dApiTiling.SetPadding(padh, padt, padu, padd, padl, padr); conv3dApiTiling.SetDilation(dilationH, dilationW, dilationD); conv3dApiTiling.SetStride(strideH, strideW, strideD); conv3dApiTiling.SetSingleWeightShape(cin, kd, kh, kw); conv3dApiTiling.SetSingleOutputShape(singleCoreCo, singleCoreDo, singleCoreMo); // 设置输入输出type conv3dApiTiling.SetInputType(TPosition::GM, inputFormat, inputDtype); conv3dApiTiling.SetWeightType(TPosition::GM, weightFormat, weightDtype); conv3dApiTiling.SetOutputType(TPosition::CO1, outputFormat, outputDtype); if (biasFlag) { conv3dApiTiling.SetBiasType(TPosition::GM, biasFormat, biasDtype); } // 调用GetTiling接口获取核内切分策略,如果返回-1代表获取tiling失败 if (conv3dApiTiling.GetTiling(tilingData.conv3dApiTilingData) == -1) { return false; }

需要包含的头文件

#include "lib/conv/conv3d/conv3d_tiling.h"

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

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

http://www.cnnetsun.cn/news/3462459.html

相关文章:

  • Android逆向实战:Frida动态Hook非标准加密算法的完整指南
  • 数据采集终端(DTU)是什么?有什么功能?
  • 如何快速使用Python处理CMUdict:make_ps_dict.py脚本的完整指南与扩展教程
  • WSL2环境搭建与深度学习开发环境配置指南
  • WSL2核心命令与配置实战指南
  • KV260视觉套件实战:Smart-Camera例程部署与RTSP流媒体开发
  • Linux内核编码风格规范与实践指南
  • 快速学习Python基础知识详细图文教程10--类和对象1
  • ts-extras快速上手:5分钟掌握提升TypeScript项目质量的实用技巧
  • AI在商业决策中的应用与核心技术解析
  • AI自迭代技术:从元学习到动态架构的进化之路
  • Cursor暗黑模式切换的隐藏开关:92%开发者不知道的settings.json底层参数(含自动同步Mac/Win/Linux三端方案)
  • 为什么92%的团队卡在飞书「自定义机器人」与Coze「Webhook Action」联调?一文讲透OAuth2.1授权断点与重试机制
  • C++图书管理系统实战:从面向对象设计到文件I/O的完整项目指南
  • Chanlun-pro高级功能:多市场行情监控与实时买卖点提醒系统
  • Bril社区贡献指南:如何参与编译器教育项目开发
  • Windows Server 2022网卡驱动配置与优化指南
  • Bitfocus Companion终极指南:如何将Elgato Stream Deck打造为专业流媒体控制面板
  • Nemotron-3-Embed-8B-BF16的微调指南:如何针对特定领域优化嵌入模型
  • SI设计公司怎么选?从东莞视维看品牌终端落地的门道
  • 3.5寸TFT彩屏SPI驱动方案在环境检测仪中的应用实践
  • Chatterbox-TTS-Server核心功能全解析:从文本到语音的完美转换
  • 【小程序计算机毕业设计案例】宠物寄养护理信息管理小程序的设计与实现 基于 SpringBoot + 微信小程序的宠物资讯与服务管理系统(程序+文档+讲解+定制)
  • 【小程序计算机毕业设计案例】戏曲文化学习与鉴赏服务平台(SpringBoot + 小程序) 基于 SpringBoot 的传统戏曲资源展示推广系统(程序+文档+讲解+定制)
  • YOLOv11目标检测架构革新与性能优化实践
  • AI助手技术边界与内容创作指南
  • Colibri框架:25GB内存纯CPU运行千亿级GLM-5.2 MoE大模型
  • Windows 10系统安装与优化全攻略
  • OpenChem快速开始:5分钟搭建你的第一个分子属性预测模型 [特殊字符]
  • 影刀RPA 数据对比分析:两表差异查找