news 2026/5/9 19:00:35

CANN ArgMax 算子 API 描述

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN ArgMax 算子 API 描述

ArgMax 算子 API 描述

【免费下载链接】cann-bench评测AI在处理CANN领域代码任务的能力,涵盖算子生成、算子优化等领域,支撑模型选型、训练效果评估,统一量化评估标准,识别Agent能力短板,构建CANN领域评测平台,推动AI能力在CANN领域的持续演进。项目地址: https://gitcode.com/cann/cann-bench

1. 算子简介

返回张量在指定维度上的最大值的索引。

主要应用场景

  • 分类任务中获取预测类别(取 logits 最大值对应的类别索引)
  • Top-1 准确率计算
  • 贪心解码(Greedy Decoding)中选择概率最大的 token

算子特征

  • 难度等级:L2(SortSelect)
  • 单输入单输出,沿指定维度进行归约操作
  • 输入支持 0-8 维,输出维度比输入少一维(沿指定 dimension 维度归约)

2. 算子定义

数学公式

$$ y = \arg\max_{axis=dimension}(x) $$

即返回输入张量 $x$ 在指定维度dimension上最大值所在的索引位置。

3. 接口规范

算子原型

cann_bench.arg_max(Tensor x, int dimension) -> Tensor y

输入参数说明

参数类型默认值描述
xTensor必选输入张量
dimensionint64必选计算 argmax 的维度

输出

参数Shapedtype描述
y输入 x 去掉 dimension 维后的 shapeint64输出张量,最大值的索引

数据类型

输入 dtype输出 dtype
float16int64
float32int64
bfloat16int64
int32int64
int64int64

规则与约束

  • 输入支持 0-8 维张量
  • dimension支持负数索引(如 -1 表示最后一维)
  • 输出 dtype 固定为 int64
  • 输出 shape 为输入 shape 去掉dimension维度后的结果
  • 当指定维度上存在多个相同的最大值时,返回第一个(最小索引)出现的位置

4. 精度要求

采用生态算子精度标准进行验证。

误差指标

  1. 平均相对误差(MERE):采样点中相对误差平均值

    $$ \text{MERE} = \text{avg}(\frac{\text{abs}(actual - golden)}{\text{abs}(golden)+\text{1e-7}}) $$

  2. 最大相对误差(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 """ ArgMax 算子 Torch Golden 参考实现 返回张量在指定维度上的最大值的索引 公式: y = argmax(x, axis=dimension) """ def arg_max( x: torch.Tensor, dimension: int ) -> torch.Tensor: """ 返回张量在指定维度上的最大值的索引 公式: y = argmax(x, axis=dimension) Args: x: 输入张量 dimension: 计算 argmax 的维度 Returns: 输出张量,最大值的索引(int64) """ y = torch.argmax(x, dim=dimension) return y

6. 额外信息

算子调用示例

import torch import cann_bench x = torch.randn(1024, 1024, dtype=torch.float32, device="npu") y = cann_bench.arg_max(x, dimension=-1) # 沿最后一维取 argmax,输出 shape [1024] x = torch.randn(2, 8, 256, 256, dtype=torch.float16, device="npu") y = cann_bench.arg_max(x, dimension=2) # 沿第 2 维取 argmax,输出 shape [2, 8, 256]

【免费下载链接】cann-bench评测AI在处理CANN领域代码任务的能力,涵盖算子生成、算子优化等领域,支撑模型选型、训练效果评估,统一量化评估标准,识别Agent能力短板,构建CANN领域评测平台,推动AI能力在CANN领域的持续演进。项目地址: https://gitcode.com/cann/cann-bench

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 18:56:44

AI赋能建筑电气工程:从图纸审查到智慧运维的实战指南

1. 项目概述&#xff1a;当AI遇见建筑电气与电子工程如果你在建筑行业&#xff0c;特别是电气与电子工程领域摸爬滚打过几年&#xff0c;一定会对几个场景深有感触&#xff1a;图纸改了又改&#xff0c;现场管线打架&#xff0c;设备清单对不上&#xff0c;调试阶段问题百出&am…

作者头像 李华
网站建设 2026/5/9 18:55:34

CANN/metadef删除算子输入边API

DelInputWithCond 【免费下载链接】metadef Ascend Metadata Definition 项目地址: https://gitcode.com/cann/metadef 函数功能 根据算子属性&#xff0c;删除算子指定输入边。 函数原型 [!NOTE]说明 数据类型为string的接口后续版本会废弃&#xff0c;建议使用数据类…

作者头像 李华
网站建设 2026/5/9 18:55:06

用Prolog构建《权力的游戏》知识图谱与逻辑推理

1. 项目概述&#xff1a;当逻辑编程遇上奇幻剧集去年冬天重刷《权力的游戏》时&#xff0c;我突发奇想&#xff1a;能不能用这部剧的人物关系来学习Prolog&#xff1f;这个诞生于1972年的逻辑编程语言&#xff0c;其核心正是通过事实(Facts)和规则(Rules)描述世界。而维斯特洛大…

作者头像 李华
网站建设 2026/5/9 18:54:23

区块链跨链与Layer 2扩容:原理、选型与Web3应用实战

1. 项目概述&#xff1a;从孤岛到大陆的Web 3.0基建革命 如果你在2020年之前接触过DeFi&#xff0c;大概率体验过这样的场景&#xff1a;想把以太坊上的ETH拿到Polygon上去用&#xff0c;需要经历一个漫长且昂贵的过程——将ETH存入中心化交易所&#xff0c;等待确认&#xff…

作者头像 李华
网站建设 2026/5/9 18:52:31

Python调用大模型API快速处理表格数据匹配任务

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Python调用大模型API快速处理表格数据匹配任务 对于数据分析师和开发者而言&#xff0c;处理表格数据匹配是一项常见但有时颇为繁琐…

作者头像 李华
网站建设 2026/5/9 18:52:29

两个 char 字符串指针,如何复制 字符串内容

两个 char 字符串指针&#xff0c;如何复制 字符串内容char *src "ykc办公室"; char *dst;dst malloc(strlen(src) 1); if (dst ! NULL) {strcpy(dst, src); }// 用完后&#xff0c;必须释放 free(dst);

作者头像 李华