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

CANN/asc-devkit DeepNorm API 文档

DeepNorm【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品 / Atlas A3 推理系列产品√Atlas A2 训练系列产品 / Atlas A2 推理系列产品√Atlas 200I/500 A2 推理产品xAtlas 推理系列产品 AI Core√Atlas 推理系列产品 Vector CorexAtlas 训练系列产品x功能说明在深层神经网络训练过程中执行层LayerNorm归一化时可以使用DeepNorm进行替代通过扩大残差连接来提高Transformer的稳定性。本接口实现了对shape大小为[BSH]的输入数据的DeepNorm归一化其计算公式如下DeepNorm(x) LayerNorm(α * X SubLayer(X))SubLayer(X)通常是指在DeepNorm模型中的一个子层sub-layer用于实现自注意力机制self-attention mechanism。本接口中会整体作为一个输入Tensor传入。其中LayerNorm的计算公式请参考LayerNorm。函数原型通过sharedTmpBuffer入参传入临时空间template typename T, bool isReuseSrc false, bool isBasicBlock false __aicore__ inline void DeepNorm(const LocalTensorT dstLocal, const LocalTensorT meanLocal, const LocalTensorT rstdLocal, const LocalTensorT srcLocal, const LocalTensorT gxLocal, const LocalTensorT betaLocal, const LocalTensorT gammaLocal, const LocalTensoruint8_t sharedTmpBuffer, const T alpha, const T epsilon, DeepNormTiling tiling)接口框架申请临时空间template typename T, bool isReuseSrc false, bool isBasicBlock false __aicore__ inline void DeepNorm(const LocalTensorT dstLocal, const LocalTensorT meanLocal, const LocalTensorT rstdLocal, const LocalTensorT srcLocal, const LocalTensorT gxLocal, const LocalTensorT betaLocal, const LocalTensorT gammaLocal, const T alpha, const T epsilon, DeepNormTiling tiling)参数说明表 1模板参数说明参数名描述T操作数的数据类型。支持的数据类型为half、float。isReuseSrc是否允许修改源操作数默认值为false。如果开发者允许源操作数被改写可以使能该参数使能后能够节省部分内存空间。设置为true则本接口内部计算时复用srcLocal的内存空间节省内存空间设置为false则本接口内部计算时不复用srcLocal的内存空间。对于float数据类型输入支持开启该参数half数据类型输入不支持开启该参数。isReuseSrc的使用样例请参考更多样例。isBasicBlocksrcTensor的shape信息满足基本块要求的情况下可以使能该参数用于提升性能默认不使能。基本块要求srcTensor的shape需要满足如下条件尾轴即H的长度为64的倍数但不超过2040非尾轴长度B*S为8的倍数。表 2接口参数说明参数名输入/输出描述dstLocal输出目的操作数。shape为[BSH]。H长度不可超过2040。类型为LocalTensor支持的TPosition为VECIN/VECCALC/VECOUT。meanLocal输出均值目的操作数。shape为[BS]。meanLocal的数据类型需要与dstLocal保持一致。类型为LocalTensor支持的TPosition为VECIN/VECCALC/VECOUT。rstdLocal输出方差目的操作数。shape为[BS]。rstdLocal的数据类型需要与dstLocal保持一致。类型为LocalTensor支持的TPosition为VECIN/VECCALC/VECOUT。srcLocal输入源操作数shape为[BSH]。srcLocal的数据类型需要与目的操作数保持一致尾轴长度需要32B对齐。H长度不可超过2040。类型为LocalTensor支持的TPosition为VECIN/VECCALC/VECOUT。gxLocal输入源操作数shape为[BSH]。gxLocal的数据类型需要与目的操作数保持一致尾轴长度需要32B对齐。H长度不可超过2040。类型为LocalTensor支持的TPosition为VECIN/VECCALC/VECOUT。该参数对应计算公式中的SubLayer(X)的计算结果。betaLocal输入源操作数shape为[H]。betaLocal的数据类型需要与目的操作数保持一致长度需要32B对齐。H长度不可超过2040。类型为LocalTensor支持的TPosition为VECIN/VECCALC/VECOUT。gammaLocal输入源操作数shape为[H]。gammaLocal的数据类型需要与目的操作数保持一致长度需要32B对齐。H长度不可超过2040。类型为LocalTensor支持的TPosition为VECIN/VECCALC/VECOUT。sharedTmpBuffer输入接口内部复杂计算时用于存储中间变量由开发者提供。类型为LocalTensor支持的TPosition为VECIN/VECCALC/VECOUT。临时空间大小BufferSize的获取方式请参考DeepNorm Tiling。alpha输入权重系数。数据类型需要与目的操作数一致。epsilon输入权重系数 用来防止除零错误。数据类型需要与目的操作数一致。tiling输入DeepNorm计算所需Tiling信息Tiling信息的获取请参考DeepNorm Tiling。返回值说明无约束说明操作数地址对齐要求请参见通用地址对齐约束。isReuseSrc模板参数为false时srcLocal和dstLocal的Tensor空间不支持复用。仅支持输入shape为ND格式。输入数据不满足对齐要求时开发者需要进行补齐补齐的数据应设置为0防止出现异常值从而影响网络计算。调用示例// dstLocal: 存放 DeepNorm 计算结果的 Tensor // meanLocal: 输出均值Tensor // rstdLocal: 输出方差Tensor // srcLocal: 输入的主数据 Xshape 为 [B, S, H] // gxLocal: SubLayer(X) 的输出 // betaLocal: LayerNorm 的偏置系数βshape 为 [H] // gammaLocal: LayerNorm 的缩放系数γshape 为 [H] // alpha: 残差连接的缩放系数α // epsilon: 防除零系数ε // tiling: Tiling 信息包含维度、分块等参数 // 使用 DeepNorm 接口实现 DeepNorm(x) LayerNorm(α * X SubLayer(X)) // 若尾轴的长度H不超过2040且为64的倍数同时非尾轴长度B*S为8的倍数可设置isBasicBlock true提升性能 // 若数据类型T为float且允许修改srcLocal可设置isReuseSrc true复用srcLocal内存空间以节省内存 AscendC::DeepNormT, isReuseSrc, isBasicBlock( dstLocal, // 输出归一化后的结果 meanLocal, // 输出均值 mean rstdLocal, // 输出倒数标准差 rstd srcLocal, // 输入原始输入 X gxLocal, // 输入子层输出 SubLayer(X) betaLocal, // 输入LayerNorm 偏置系数β gammaLocal, // 输入LayerNorm 缩放系数γ alpha, // 输入残差路径缩放系数 α epsilon, // 输入防除零系数 ε tiling // 输入Tiling 信息 );示例结果如下输入数据(srcLocal, shape:[4, 2, 8]): [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 ] 输入数据(gxLocal, shape:[4, 2, 8]): [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 ] 输入数据(gammaLocal, shape:[4]): [ 0 1 2 3 4 5 6 7 ] 输入数据(betaLocal, shape:[4]): [ 0 1 2 3 4 5 6 7 ] 输出数据(dstLocal): [ 0. 1.0439204 2.0527046 3.0263522 3.9648638 4.868239 5.7364774 6.56958 0. 1.0439204 2.0527046 3.0263522 3.9648638 4.868239 5.7364774 6.56958 0. 1.0439204 2.0527046 3.0263522 3.9648638 4.868239 5.7364774 6.56958 0. 1.0439204 2.0527046 3.0263522 3.9648638 4.868239 5.7364774 6.56958 0. 1.0439204 2.0527046 3.0263522 3.9648638 4.868239 5.7364774 6.56958 0. 1.0439204 2.0527046 3.0263522 3.9648638 4.868239 5.7364774 6.56958 0. 1.0439204 2.0527046 3.0263522 3.9648638 4.868239 5.7364774 6.56958 0. 1.0439204 2.0527046 3.0263522 3.9648638 4.868239 5.7364774 6.56958 ] 输出数据(meanLocal): [ -15.75 -51.75 -87.75 -123.75 -159.75 -195.75 -231.75 -267.75 ] 输出数据(rstdLocal): [ 106.3125 106.3125 106.3125 106.3125 106.3125 106.3125 106.3125 106.3125 ]【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
http://www.gsyq.cn/news/1328882.html

相关文章:

  • 如何3分钟搞定专业级虚拟背景:obs-backgroundremoval快速上手指南
  • Perplexity环境新闻检索失效真相(2024最新API响应延迟根因分析)
  • 工业视觉系统选型实战:CCD相机与镜头参数计算全解析
  • Sora之后的真相:2026年真正落地的8款工业级AI视频引擎,含API吞吐量、帧间PSNR均值与商用SLA承诺明细
  • Qt QSettings管理Windows环境变量:原理、实现与实战优化
  • 5分钟彻底净化Windows 11:Win11Debloat终极优化指南
  • 5分钟快速上手Vue3思维导图:打造专业级数据可视化应用
  • 2026招聘网站平台排行榜 易直聘好用排第一求职招聘优选 - 博客万
  • 猫抓浏览器扩展:基于网络请求拦截的智能资源嗅探技术实现
  • 告别DDPG训练不稳定!用SAC(软性演员-评论家)算法搞定复杂环境强化学习
  • 3天掌握Dify工作流开发:从零构建企业级AI应用的完整指南
  • 空洞骑士模组管理器Scarab:2024年最完整的安装与使用指南
  • 收藏!2026年AI大厂抢人才!大模型工程师成香饽饽,高薪高发展路径揭秘
  • 抖音无水印下载终极指南:从技术原理到实战应用完整解析
  • 东莞市CPPM和SCMP总授权报名机构公示及联系方式 - 众智商学院课程中心
  • Vant Calendar组件实战:手把手教你打造一个可折叠的月度学习计划表(Vue3 + TypeScript)
  • 2026年医用微动力系统全国采购指南:从无刷电机到手术钻的深度横评与官方对接 - 企业名录优选推荐
  • 终极指南:如何用MangaOCR实现日语漫画文本识别的革命性突破
  • 收藏!小白程序员6个月免费学通AI智能体,保姆级路线图助你毕业
  • 终极指南:5分钟在Windows上安装安卓APK文件,无需模拟器
  • GC9A01驱动踩坑记:从供应商代码到自研优化,软件SPI这些细节别忽略
  • 163MusicLyrics:一站式跨平台歌词管理解决方案
  • 为claude code配置taotoken后端解决访问不稳定问题
  • 熬夜肌抗皱抗糖面霜推荐:长效抗氧抗糖配方,减少熬夜自由基损伤延缓肌肤老化进程 - 博客万
  • Java开发者收藏必备:AI大模型转型指南,小白程序员必备技能提升攻略!
  • OpCore Simplify:告别繁琐配置,轻松构建黑苹果OpenCore EFI的智能工具
  • 深入理解 ASP.NET Core 中的 IActionResult
  • DeepLearnToolbox深度解析:Matlab/Octave深度学习工具箱架构设计与实战应用
  • 3分钟快速上手:m4s-converter拯救你的B站缓存视频
  • 减肥代餐新手怎么选?减肥代餐甄选榜:左旋肉碱 + 柑橘多酚 维持体态紧致 - 博客万