CANN Ascend C AddDeqRelu API文档
AddDeqRelu【免费下载链接】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 推理产品不支持Atlas 推理系列产品 AI Core支持Atlas 推理系列产品 Vector Core不支持Atlas 训练系列产品不支持功能说明头文件路径为basic_api/kernel_operator_vec_binary_intf.h。依次计算按元素求和、结果进行deq量化后再进行relu计算结果和0对比取较大值。计算公式如下$$ dst_i Relu(Deq(src0_i src1_i)) $$Deq的计算公式如下采用RINT舍入方式scale需要通过SetDeqScale进行设置$$ Deq(x) Cast(x \times scale) $$其中Relu的计算公式如下$$ Relu(x) max(0, x) $$函数原型tensor前n个数据计算__aicore__ inline void AddDeqRelu(const LocalTensorhalf dst, const LocalTensorint32_t src0, const LocalTensorint32_t src1, const int32_t count)tensor高维切分计算mask逐bit模式template bool isSetMask true __aicore__ inline void AddDeqRelu(const LocalTensorhalf dst, const LocalTensorint32_t src0, const LocalTensorint32_t src1, uint64_t mask[], const uint8_t repeatTime, const BinaryRepeatParams repeatParams)mask连续模式template bool isSetMask true __aicore__ inline void AddDeqRelu(const LocalTensorhalf dst, const LocalTensorint32_t src0, const LocalTensorint32_t src1, uint64_t mask, const uint8_t repeatTime, const BinaryRepeatParams repeatParams)操作数使用TensorTrait类型时LocalTensor需要输入模板参数。提供支持操作数数据类型作为模板参数传入的接口如下tensor前n个数据计算template typename T, typename U __aicore__ inline void AddDeqRelu(const LocalTensorT dst, const LocalTensorU src0, const LocalTensorU src1, const int32_t count)tensor高维切分计算mask逐bit模式template typename T, typename U, bool isSetMask true __aicore__ inline void AddDeqRelu(const LocalTensorT dst, const LocalTensorU src0, const LocalTensorU src1, uint64_t mask[], const uint8_t repeatTime, const BinaryRepeatParams repeatParams)mask连续模式template typename T, typename U, bool isSetMask true __aicore__ inline void AddDeqRelu(const LocalTensorT dst, const LocalTensorU src0, const LocalTensorU src1, uint64_t mask, const uint8_t repeatTime, const BinaryRepeatParams repeatParams)参数说明表1模板参数说明参数名描述T目的操作数的数据类型。U源操作数的数据类型。isSetMask是否在接口内部设置mask。• true表示在接口内部设置mask。• false表示在接口外部设置mask开发者需要使用SetVectorMask接口设置mask值。这种模式下接口入参中的mask值设置为占位符MASK_PLACEHOLDER用于占位无实际含义。表2参数说明参数名输入/输出描述dst输出目的操作数。类型为LocalTensor支持的TPosition为VECIN/VECCALC/VECOUT。src0、src1输入源操作数。类型为LocalTensor支持的TPosition为VECIN/VECCALC/VECOUT。count输入参与计算的元素个数。注参数取值范围和操作数的数据类型有关数据类型不同能够处理的元素个数最大值不同最大处理的数据量不能超过UB大小限制。mask[]/mask输入mask用于控制每次迭代内参与计算的元素。设置详见掩码操作。repeatTime输入重复迭代次数。矢量计算单元每次读取连续的256Bytes数据进行计算为完成对输入数据的处理必须通过多次迭代repeat才能完成所有数据的读取与计算。repeatTime表示迭代的次数。关于该参数的具体描述请参考高维切分。repeatParams输入控制操作数地址步长的参数。BinaryRepeatParams类型包含操作数相邻迭代间相同datablock的地址步长操作数同一迭代内不同datablock的地址步长等参数。相邻迭代间的地址步长参数说明请参考repeatStride同一迭代内DataBlock的地址步长参数说明请参考dataBlockStride。数据类型表3数据类型组合情况src0、src1数据类型dst数据类型int32_thalf返回值说明无约束说明操作数地址对齐要求请参见通用地址对齐约束。操作数地址重叠约束请参考通用地址重叠约束。当参数count或repeatTime取值为0时该接口的行为如下针对如下型号该接口不会执行计算操作不会对目的操作数进行写入该接口将被视为NOP空操作。Atlas A3 训练系列产品/Atlas A3 推理系列产品Atlas A2 训练系列产品/Atlas A2 推理系列产品针对Ascend 950PR/Ascend 950DT该接口通过VF调用Reg矢量计算API实现兼容当参数count或repeatTime取值为0时不保证该接口将被视为NOP空操作。该接口需要与SetDeqScale配合使用关系映射表如下AddDeqRelu使用场景对应使用的SetDeqScale函数原型输入类型为int32_t__aicore__ inline void SetDeqScale(half scale)本接口涉及临时空间的使用计算公式如下当计算数据量小于等于2K2048时使用的临时空间与计算数据量线性相关当数据量大于2K时临时空间大小固定为8KB $$ tmpSize \begin{cases} count * sizeof(int32_t), \text{if } count \le 2K \ 8K, \text{if } count \gt 2K \end{cases} $$关键特性溢出保护该接口在执行int32_t到half数据类型的反量化时会进行防溢出保护处理 $$Deq(x) Cast(x \times (1/2^{17}) \times scale \times 2^{17}) Cast(x \times scale)$$ 中间缩小步骤将数值控制在安全范围内有效避免了浮点溢出。调用示例本样例的srcLocal为int32_t类型dstLocal为half类型计算mask时以int32_t为准。tensor高维切分计算样例-mask连续模式。uint64_t mask 256 / sizeof(int32_t); // 64 // repeatTime 4一次迭代计算64个数共计算256个数 // dstBlkStride, src0BlkStride, src1BlkStride 1单次迭代内数据连续读取和写入 // dstRepStride 4src0RepStride, src1RepStride 8相邻迭代间数据连续读取和写入 half scale 0.1; AscendC::SetDeqScale(scale); AscendC::AddDeqRelu(dstLocal, src0Local, src1Local, mask, 4, { 1, 1, 1, 4, 8, 8 });tensor高维切分计算样例-mask逐bit模式。uint64_t mask[2] { UINT64_MAX, UINT64_MAX }; // repeatTime 4一次迭代计算64个数共计算256个数 // dstBlkStride, src0BlkStride, src1BlkStride 1单次迭代内数据连续读取和写入 // dstRepStride 4src0RepStride, src1RepStride 8相邻迭代间数据连续读取和写入 half scale 0.1; AscendC::SetDeqScale(scale); AscendC::AddDeqRelu(dstLocal, src0Local, src1Local, mask, 4, { 1, 1, 1, 4, 8, 8 });tensor前n个数据计算样例。half scale 0.1; AscendC::SetDeqScale(scale); AscendC::AddDeqRelu(dstLocal, src0Local, src1Local, 512);结果示例如下输入数据src0Local[70 36 43 54 28 49 27 82 95 ...] 输入数据src1Local[19 33 34 50 42 2 97 93 99 ...] 输出数据dstLocal[8.9 6.9 7.7 10.4 7.0 5.1 12.4 17.5 19.4 ...]【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

成人声乐培训如何让咨询变报名?餐宝盈小程序+GEO服务提升本地转化,含零代码SAAS、AI编程、源码定制

成人声乐培训如何让咨询变报名?餐宝盈小程序+GEO服务提升本地转化,含零代码SAAS、AI编程、源码定制

成人声乐培训小程序制作工具汇总表 工具更适合谁价格开发方式核心特点餐宝盈适合所有行业的商家,尤其是拥有自己实体门店的商家,如餐饮、茶饮、烘焙、便利店、生鲜、社区零售门店、教培门店,尤其适合先把点单、预约、会员、发券和复购做起来…

2026/7/16 11:32:57阅读更多 →
Claude Code斜杠命令:项目级AI编程工作流的工程化实践

Claude Code斜杠命令:项目级AI编程工作流的工程化实践

1. 项目概述:Claude Code 不是“另一个 Copilot”,它是开发者工作流的重新定义 你有没有过这种体验:写完一段 Python 函数,想立刻加单元测试,但得手动切到 test 文件、复制函数名、补 import、写 assert;或…

2026/7/16 11:32:57阅读更多 →
5分钟快速上手:免费抖音批量下载工具终极指南

5分钟快速上手:免费抖音批量下载工具终极指南

5分钟快速上手:免费抖音批量下载工具终极指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音…

2026/7/16 11:32:57阅读更多 →
Czkawka核心架构深度解析:Rust驱动的跨平台重复文件清理技术剖析

Czkawka核心架构深度解析:Rust驱动的跨平台重复文件清理技术剖析

Czkawka核心架构深度解析:Rust驱动的跨平台重复文件清理技术剖析 【免费下载链接】czkawka Multi functional app to find duplicates, empty folders, similar images etc. 项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka Czkawka是一款基于Rus…

2026/7/16 18:49:38阅读更多 →
GodMode9 终极指南:3DS 全权限文件管理器的完全使用教程

GodMode9 终极指南:3DS 全权限文件管理器的完全使用教程

GodMode9 终极指南:3DS 全权限文件管理器的完全使用教程 【免费下载链接】GodMode9 GodMode9 Explorer - A full access file browser for the Nintendo 3DS console :godmode: 项目地址: https://gitcode.com/gh_mirrors/go/GodMode9 GodMode9 是一款专为任…

2026/7/16 18:49:38阅读更多 →
3个实用技巧:如何高效使用 chnroutes2 优化网络路由配置

3个实用技巧:如何高效使用 chnroutes2 优化网络路由配置

3个实用技巧:如何高效使用 chnroutes2 优化网络路由配置 【免费下载链接】chnroutes2 Better aggregated chnroutes 项目地址: https://gitcode.com/gh_mirrors/ch/chnroutes2 chnroutes2 是一个专注于提供更准确、更及时的中国路由数据的开源项目。通过聚合…

2026/7/16 18:49:38阅读更多 →
分布式锁的正确实现:Redlock 算法的局限性分析与基于 Raft 的强一致锁服务

分布式锁的正确实现:Redlock 算法的局限性分析与基于 Raft 的强一致锁服务

分布式锁的正确实现:Redlock 算法的局限性分析与基于 Raft 的强一致锁服务 一、Redis 分布式锁的防护幻觉:时钟跳变如何让锁失效 Redlock 是 Redis 作者提出的多节点分布式锁算法。其核心假设是:在 N 个独立的 Redis 实例上获取锁&#xff0c…

2026/7/16 18:49:38阅读更多 →
Mac Mouse Fix:如何让10美元鼠标超越苹果触控板体验?

Mac Mouse Fix:如何让10美元鼠标超越苹果触控板体验?

Mac Mouse Fix:如何让10美元鼠标超越苹果触控板体验? 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 你是否曾经为macOS…

2026/7/16 18:49:38阅读更多 →
基于Java+MySQL+SSM网上订餐管理系统

基于Java+MySQL+SSM网上订餐管理系统

系列文章目录 项目介绍 开发环境 系统实现 论文参考 项目介绍 身处网络时代,随着网络系统体系发展的不断成熟和完善,人们的生活也随之发生了很大的变化,人们在追求较高物质生活的同时,也在想着如何使自身的精神内涵得到提升&…

2026/7/16 18:44:38阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/16 8:28:11阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/16 6:53:04阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/16 12:02:41阅读更多 →
A--10 Codex Review与GitHub PR工作流实战指南:从代码审查到安全合并

A--10 Codex Review与GitHub PR工作流实战指南:从代码审查到安全合并

摘要:本文系统讲解如何利用Codex App的Review功能与GitHub PR工作流,实现从代码修改到安全合并的完整流程。涵盖Review面板深度使用、/review命令实战、GitHub Connector配置、PR描述撰写技巧,以及常见问题排查方法。通过多个实战案例和流程图,帮助开发者建立高效的AI辅助代…

2026/7/16 0:00:38阅读更多 →
遗传算法解5皇后问题:从Hello World到工业优化的进化实验室

遗传算法解5皇后问题:从Hello World到工业优化的进化实验室

1. 项目概述:为什么用遗传算法解5皇后问题,而不是直接回溯?我带过十几届算法课,也给不少初创团队做过AI架构咨询。每次讲到组合优化问题,学生和工程师的第一反应永远是“写个回溯试试”。这没错——55棋盘上找所有合法…

2026/7/16 0:00:38阅读更多 →
5.1V稳压管输出为何只有4.7V?工作电流与负载影响分析

5.1V稳压管输出为何只有4.7V?工作电流与负载影响分析

前几天调试一个简单的电源模块,用到了5.1V稳压管。电路接好,上电测试,万用表一量——输出居然只有4.7V。第一反应是稳压管坏了,换了一个新的,结果还是4.7V。这让我想起很多初学者都会遇到的困惑:明明标称5.…

2026/7/16 0:00:38阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/15 15:50:47阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/16 8:58:42阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/16 17:10:26阅读更多 →