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

CANN/cann-bench MHA算子API描述

MHA 算子 API 描述【免费下载链接】cann-bench评测AI在处理CANN领域代码任务的能力涵盖算子生成、算子优化等领域支撑模型选型、训练效果评估统一量化评估标准识别Agent能力短板构建CANN领域评测平台推动AI能力在CANN领域的持续演进。项目地址: https://gitcode.com/cann/cann-bench1. 算子简介多头注意力 (Multi-Head Attention) 算子对已分头的 Q/K/V 执行缩放点积注意力计算广泛应用于 Transformer 架构。主要应用场景Transformer 编码器和解码器中的自注意力与交叉注意力大语言模型和视觉 Transformer 中的核心注意力模块多模态模型中的跨模态注意力融合算子特征难度等级L4FusedComposite多输入query, key, value单输出执行缩放点积注意力输入为已分头的张量不包含 QKV 投影和输出投影步骤支持可配置的缩放因子支持is_causal因果掩码仅计算 attention 矩阵 [S, S_kv] 中从右下角向左上方延伸 45° 对角线及其下方部分其余位置在 softmax 前置 -inf2. 算子定义数学公式$$ y \text{softmax}\left(Q \times K^T \times \text{scaleValue}\right) \times V $$其中$Q$、$K$、$V$ 为已分头的查询、键、值张量$\text{scaleValue}$ 为缩放因子0 时自动使用 $1/\sqrt{D}$$D$ 为每头维度softmax 沿最后一维计算具体子步骤缩放点积$\text{scores} Q \times K^T \times \text{scaleValue}$因果掩码可选当is_causalTrue时对scores[..., i, j]满足 $j i (S_{kv} - S)$ 的位置置为 $-\infty$即仅保留从右下角向左上方 45° 延伸的对角线及其下方部分$SS_{kv}$ 时退化为标准下三角掩码Softmax 归一化$\text{attn_weights} \text{softmax}(\text{scores}, \text{dim}-1)$加权求和$y \text{attn_weights} \times V$3. 接口规范算子原型cann_bench.mha(Tensor query, Tensor key, Tensor value, float scaleValue-1.0, bool is_causalFalse) - Tensor y输入参数说明参数类型默认值描述queryTensor必选查询张量已分头shape 为 [B, S, N, D]keyTensor必选键张量已分头shape 为 [B, S_kv, N, D]valueTensor必选值张量已分头shape 为 [B, S_kv, N, D]scaleValuefloat-1.0缩放因子0 时自动使用 1/sqrt(D)is_causalboolFalse是否启用因果掩码。False 时全计算True 时仅计算 [S, S_kv] attention 矩阵中从右下角向左上方 45° 延伸的对角线及其下方部分即满足 $j \le i (S_{kv} - S)$ 的位置上方部分在 softmax 前置 -inf输出参数Shapedtype描述y[B, S, N, D]与输入 query 相同多头注意力输出张量数据类型输入 dtype输出 dtypefloat16float16bfloat16bfloat16规则与约束所有输入 Tensorquery, key, value的 dtype 必须一致query的 shape 为 [B, S, N, D]key和value的 shape 为 [B, S_kv, N, D]N 为注意力头数D 为每头维度均从输入 shape 中推断scaleValue通常设置为 $1/\sqrt{D}$当 0 时自动使用该值is_causalTrue时要求 $S \le S_{kv}$否则 mask 会将部分 query 行全部屏蔽导致 softmax 出现 NaN支持范围输入 tensor 各维度与参数的支持范围维度 / 参数范围备注Bbatch1 ~ 128cases.csv 实测 1 ~ 128Squery 序列长度1 ~ 2048cases.csv 实测 1 ~ 1024decode 场景 S1 或 2prefill 场景 S 与 S_kv 同量级S_kvkey/value 序列长度1 ~ 4096cases.csv 实测 128 ~ 2048is_causalTrue时要求 S ≤ S_kvN注意力头数1 ~ 64cases.csv 实测 8 ~ 32D每头维度64 ~ 25664 对齐cases.csv 实测 64 / 128 / 256scaleValue任意 floatcases.csv 实测 -1.0auto 1/sqrt(D)和 0.08838显式 ≈ 1/sqrt(128)0 时回退到 1/sqrt(D)is_causal{False, True}cases.csv 实测两值均覆盖True 走右下角对齐因果掩码False 全计算输入 value range任意有限实数cases.csv 实测 [-1, 1]常态高斯采样和 [0, 0]全零退化输入输入 dtypefloat16, bfloat16Q/K/V 三个 tensor dtype 必须一致约束query.shape [B, S, N, D]key.shape value.shape [B, S_kv, N, D]四个共享维度 B/N/D 必须严格相等is_causalTrue时要求S ≤ S_kv否则部分 query 行会被全部屏蔽导致 softmax 出现 NaN。4. 精度要求采用生态算子精度标准进行验证。误差指标平均相对误差MERE采样点中相对误差平均值$$ \text{MERE} \text{avg}(\frac{\text{abs}(actual - golden)}{\text{abs}(golden)\text{1e-7}}) $$最大相对误差MARE采样点中相对误差最大值$$ \text{MARE} \max(\frac{\text{abs}(actual - golden)}{\text{abs}(golden)\text{1e-7}}) $$通过标准数据类型FLOAT16BFLOAT16FLOAT32HiFLOAT32FLOAT8 E4M3FLOAT8 E5M2通过阈值(Threshold)2^-102^-72^-132^-112^-32^-2当平均相对误差 MERE Threshold最大相对误差 MARE 10 * Threshold 时判定为通过。5. 标准 Golden 代码import torch MHA算子Torch Golden参考实现 多头注意力 (Multi-Head Attention)对已分头的 Q/K/V 执行缩放点积注意力 公式: y softmax(Q K^T * scaleValue) V def mha( query: torch.Tensor, key: torch.Tensor, value: torch.Tensor, scaleValue: float -1.0, is_causal: bool False, ) - torch.Tensor: 多头注意力 (Multi-Head Attention) Args: query: 查询张量 [B, S, N, D]已分头 key: 键张量 [B, S_kv, N, D]已分头 value: 值张量 [B, S_kv, N, D]已分头 scaleValue: 缩放因子0 时自动使用 1/sqrt(D) is_causal: 是否启用因果掩码右下角对齐True 时 scores[..., i, j] 满足 j i (S_kv - S) 的位置置 -inf Returns: 输出张量 [B, S, N, D] B, S, N, D query.shape S_kv key.shape[1] if scaleValue 0: scaleValue 1.0 / (D ** 0.5) # 转置为 [B, N, S, D] q query.transpose(1, 2) k key.transpose(1, 2) v value.transpose(1, 2) # 缩放点积注意力 scores torch.matmul(q, k.transpose(-2, -1)) * scaleValue if is_causal: i torch.arange(S, devicescores.device).unsqueeze(-1) j torch.arange(S_kv, devicescores.device).unsqueeze(0) causal_mask j (i (S_kv - S)) # 右下角对齐上三角置 -inf scores scores.masked_fill(causal_mask, float(-inf)) attn_weights torch.nn.functional.softmax(scores, dim-1) attn_output torch.matmul(attn_weights, v) # 转回 [B, S, N, D] return attn_output.transpose(1, 2)6. 额外信息算子调用示例import torch import cann_bench B, S, S_kv, N, D 2, 128, 128, 8, 64 query torch.randn(B, S, N, D, dtypetorch.float16, devicenpu) key torch.randn(B, S_kv, N, D, dtypetorch.float16, devicenpu) value torch.randn(B, S_kv, N, D, dtypetorch.float16, devicenpu) y cann_bench.mha(query, key, value, scaleValue-1.0, is_causalFalse)【免费下载链接】cann-bench评测AI在处理CANN领域代码任务的能力涵盖算子生成、算子优化等领域支撑模型选型、训练效果评估统一量化评估标准识别Agent能力短板构建CANN领域评测平台推动AI能力在CANN领域的持续演进。项目地址: https://gitcode.com/cann/cann-bench创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关文章:

CANN/cann-bench MHA算子API描述

MHA 算子 API 描述 【免费下载链接】cann-bench 评测AI在处理CANN领域代码任务的能力,涵盖算子生成、算子优化等领域,支撑模型选型、训练效果评估,统一量化评估标准,识别Agent能力短板,构建CANN领域评测平台&#xff0…...

终极Windows和Office激活指南:KMS智能激活工具三步永久激活方案

终极Windows和Office激活指南:KMS智能激活工具三步永久激活方案 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统频繁弹出激活提示而烦恼吗?Office突然变…...

CANN ops-fft未来规划:51+接口路线图与社区发展蓝图

CANN ops-fft未来规划:51接口路线图与社区发展蓝图 【免费下载链接】ops-fft ops-fft 是 CANN (Compute Architecture for Neural Networks)算子库中提供 FFT 类计算的基础算子库,采用模块化设计,支持灵活的算子开发和…...

IPv6网络规划必看:华为设备上DHCPv6与SLAAC(无状态地址分配)到底怎么选?

IPv6网络规划实战:华为设备地址分配方案深度解析 在IPv6网络部署的浪潮中,地址分配策略的选择往往成为困扰网络架构师的首要难题。当传统IPv4的DHCP方式遇上IPv6全新的SLAAC(无状态地址自动配置)机制,技术决策的复杂性…...

别再死记硬背了!手把手教你玩转COMSOL Desktop的窗口布局与自定义(附效率翻倍技巧)

别再死记硬背了!手把手教你玩转COMSOL Desktop的窗口布局与自定义(附效率翻倍技巧) 作为一名经常与多物理场仿真打交道的工程师,你是否曾因频繁切换窗口而打断思路?或是花费大量时间在菜单栏中寻找某个隐藏功能&#…...

【紧急预警】Perplexity即将下线v1历史索引接口(倒计时≤45天):迁移至Time-Aware Search API的6步合规过渡方案

更多请点击: https://kaifayun.com 第一章:Perplexity历史资料搜索 Perplexity 是一款以实时网络检索与引用驱动为特色的 AI 搜索工具,自 2022 年由 Aravind Srinivas、Denis Yarats、Johnny Ho 和 Andy Konwinski 共同创立以来,…...

别只盯着波特率!深入理解英飞凌MCMCAN的报文过滤与优先级处理机制

别只盯着波特率!深入理解英飞凌MCMCAN的报文过滤与优先级处理机制 在嵌入式系统开发中,CAN总线通信的稳定性和效率往往决定了整个系统的性能表现。许多工程师在配置CAN模块时,常常将注意力集中在波特率设置等基础参数上,却忽略了报…...

CANN/hccl参数面建链阶段故障诊断

参数面建链阶段 【免费下载链接】hccl 集合通信库(Huawei Collective Communication Library,简称HCCL)是基于昇腾AI处理器的高性能集合通信库,为计算集群提供高性能、高可靠的通信方案 项目地址: https://gitcode.com/cann/hcc…...

用emWin定时器给你的STM32 GUI界面“注入灵魂”:实现动态数据刷新与简易动画(基于WM_TIMER消息)

用emWin定时器为STM32 GUI注入动态交互的灵魂 在嵌入式设备的人机交互设计中,静态界面往往给人呆板的印象。想象一下工业仪表盘上凝固的数字,或是医疗设备上永不变化的指示灯——这种缺乏生命力的呈现方式不仅降低用户体验,还可能掩盖关键数据…...

dialoqbase入门指南:如何在5分钟内创建你的第一个AI聊天机器人

dialoqbase入门指南:如何在5分钟内创建你的第一个AI聊天机器人 【免费下载链接】dialoqbase Create chatbots with ease 项目地址: https://gitcode.com/gh_mirrors/di/dialoqbase dialoqbase是一款强大的开源工具,让你能够轻松创建AI聊天机器人。…...

Python开发者三步完成Taotoken接入并调用多模型

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Python开发者三步完成Taotoken接入并调用多模型 对于希望便捷使用多种大语言模型的Python开发者而言,通过一个统一的AP…...

Linux串口编程进阶:深入termios2结构体,搞定CH340/FTDI各种转接器的非标准波特率

Linux串口编程实战:破解CH340/FTDI非标准波特率适配难题 当你在工业物联网项目中尝试将某个9600bps的设备升级到115200bps时,可能会发现某些USB转串口适配器死活不配合——明明代码正确,波特率却始终无法生效。这不是你的错,而是…...

百度网盘Mac版终极破解指南:免费解锁SVIP高速下载体验

百度网盘Mac版终极破解指南:免费解锁SVIP高速下载体验 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘Mac版的下载速度限制而…...

setup-java企业级实践:大型项目的依赖缓存和版本矩阵测试

setup-java企业级实践:大型项目的依赖缓存和版本矩阵测试 【免费下载链接】setup-java Set up your GitHub Actions workflow with a specific version of Java 项目地址: https://gitcode.com/gh_mirrors/se/setup-java 在现代软件开发中,Java环…...

如何用ComfyUI-Impact-Pack实现专业级AI图像增强:解决细节缺失的终极方案

如何用ComfyUI-Impact-Pack实现专业级AI图像增强:解决细节缺失的终极方案 【免费下载链接】ComfyUI-Impact-Pack Custom nodes pack for ComfyUI This custom node helps to conveniently enhance images through Detector, Detailer, Upscaler, Pipe, and more. …...

反向Shell隐藏技术深度解析:从进程伪装到网络隐匿的攻防实践

1. 项目概述:从“隐藏”到“隐匿”的攻防博弈在网络安全领域,反向Shell是一种经典且常见的远程控制手段。简单来说,它让被控端主动连接控制端,从而绕过防火墙等入站限制。然而,一个明晃晃的、持续存在的网络连接或进程…...

企业级应用如何利用Taotoken实现稳定高效的多模型调度

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 企业级应用如何利用Taotoken实现稳定高效的多模型调度 在构建基于大模型的企业级应用时,开发团队常常面临几个核心挑战…...

华测RTK静态数据解算保姆级教程:从CHC Geomatics Office 2安装到平差报告导出

华测RTK静态数据解算全流程实战指南:从软件配置到精度优化 第一次接触华测RTK静态解算时,面对满屏的专业术语和复杂参数,不少同行都有过这样的困惑:为什么同样的数据,别人处理出来的结果总能一次性通过验收&#xff0…...

如何在Windows电脑上轻松安装安卓应用:APK-Installer终极指南

如何在Windows电脑上轻松安装安卓应用:APK-Installer终极指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经想在Windows电脑上直接运行安卓应用…...

保姆级教程:在ENVI5.3里搞定高分二号多光谱数据(辐射定标+大气校正+正射)

高分二号多光谱数据预处理全流程实战指南 第一次接触遥感影像处理的研究者,面对国产高分卫星数据时往往既兴奋又忐忑。高分二号(GF-2)作为我国自主研制的高分辨率对地观测系统重要组成部分,其多光谱数据在农业监测、环境评估等领域…...

除了高精度定位,CORS基准站网还能为你提供哪些意想不到的数据服务?

解锁CORS基准站网的隐藏价值:从厘米级定位到时空大数据平台 当大多数人提起CORS基准站网时,第一反应往往是"高精度定位"。确实,这套由数百个地面站点组成的网络系统,能够为各类GNSS设备提供实时厘米级甚至毫米级的定位修…...

深入RPMsg-Lite virtqueue:拆解异构多核芯片共享内存通信的‘黑盒子’

深入RPMsg-Lite virtqueue:拆解异构多核芯片共享内存通信的‘黑盒子’ 在现代异构多核芯片设计中,核间通信(IPC)的效率直接决定了系统整体性能。当你在调试一个基于NXP i.MX RT1170的双核系统时,是否曾好奇过&#xff…...

Abiotic Factor多人生存建筑游戏《非生物因素》 专用服务器搭建教程

Abiotic Factor多人生存建筑游戏《非生物因素》 专用服务器搭建教程 Abiotic Factor 是由 Deep Field Games 开发、2024 年登陆 Steam 的科幻题材多人生存游戏。玩家扮演被困在地下高科技研究设施 GATE Cascade Research Facility 中的科学家,面对异生物入侵、次元裂…...

三极管Ube到底变不变?从静态分析到动态放大,一张图帮你彻底搞懂

三极管Ube到底变不变?从静态分析到动态放大,一张图帮你彻底搞懂 刚接触三极管放大电路时,很多初学者都会被一个看似矛盾的现象困扰:教科书告诉我们三极管的Ube电压恒定为0.7V,但在分析动态放大过程时,又说U…...

探索Harepacker复活版:打造你的MapleStory创意工坊

探索Harepacker复活版:打造你的MapleStory创意工坊 【免费下载链接】Harepacker-resurrected All in one .wz file/map editor for MapleStory game files 项目地址: https://gitcode.com/gh_mirrors/ha/Harepacker-resurrected 你是否曾经梦想过亲手改造Map…...

3步掌握TransNet V2:从零开始实现智能视频镜头检测

3步掌握TransNet V2:从零开始实现智能视频镜头检测 【免费下载链接】TransNetV2 TransNet V2: Shot Boundary Detection Neural Network 项目地址: https://gitcode.com/gh_mirrors/tr/TransNetV2 想要快速分析视频内容结构,自动识别镜头切换点吗…...

CANN Ascend C数据转换临时空间API

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

3分钟搞定OFD转PDF:免费工具让格式难题迎刃而解

3分钟搞定OFD转PDF:免费工具让格式难题迎刃而解 【免费下载链接】Ofd2Pdf Convert OFD files to PDF files. 项目地址: https://gitcode.com/gh_mirrors/ofd/Ofd2Pdf 你是否曾经面对OFD文件束手无策?当同事发来一份OFD格式的电子发票,…...

CANN/asc-devkit DeepNorm API 文档

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

Perplexity环境新闻检索失效真相(2024最新API响应延迟根因分析)

更多请点击: https://kaifayun.com 第一章:Perplexity环境新闻搜索 Perplexity 是一款基于大语言模型的实时信息检索工具,其核心优势在于融合权威信源与上下文感知能力,特别适用于需要高时效性与高可信度的新闻类查询场景。在该环…...