news 2026/5/9 12:26:38

CANN/ops-math矩阵对角线生成算子

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/ops-math矩阵对角线生成算子

MatrixDiagV3

【免费下载链接】ops-math本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-math

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品
Atlas 200I/500 A2 推理产品×
Atlas 推理系列产品
Atlas 训练系列产品

功能说明

  • 算子功能:根据输入的单条或多条对角线值生成矩阵,对角线带之外的位置使用$\mathrm{padding_value}$填充。
  • 设输出张量最后两维大小分别为$\mathrm{num_rows}$和$\mathrm{num_cols}$,$k=[k_l, k_u]$表示待写入的对角线范围,单对角线场景下$k_l = k_u$。令$d = j - i$表示位置$(i, j)$所在的对角线编号,则最大对角线长度为:

$$ \mathrm{max_diag_len} = \min(\mathrm{num_rows} + \min(k_u, 0),\ \mathrm{num_cols} - \max(k_l, 0)) $$

输出元素满足:

$$ y_{..., i, j} = \begin{cases} x_{..., k_u - d,\ p(i, j)} & k_l \le d \le k_u \ \text{padding_value} & \text{otherwise} \end{cases} $$

其中,$p(i, j)$表示对角线元素在输入$x$最后一维中的位置,具体由属性align控制左右对齐方式。当$k$为单个整数或$k_l = k_u$时,$x$表示单条对角线;当$k_l < k_u$时,$x$表示对角线带。

参数说明

参数名输入/输出/属性描述数据类型数据格式
x输入公式中的`x`。当`k`表示单条对角线时,`x`的最后一维保存该对角线的数据;当`k`表示对角线带时,`x`的倒数第二维保存对角线条数,最后一维保存各对角线按`align`补齐后的数据。DOUBLE、FLOAT、FLOAT16、INT8、INT16、INT32、INT64、UINT8、UINT16、UINT32、UINT64、COMPLEX64、COMPLEX128、BOOLND
k输入公式中的kl和ku。可以是标量,表示单条对角线;也可以是长度为2的向量,表示对角线带的下界和上界。INT32ND
num_rows输入输出矩阵的行数,即公式中的`num_rows`。取值为`-1`时表示由`k`和`x`自动推导。INT32ND
num_cols输入输出矩阵的列数,即公式中的`num_cols`。取值为`-1`时表示由`k`和`x`自动推导。INT32ND
padding_value输入公式中的`padding_value`。用于填充不在指定对角线带内的位置,数据类型与`x`一致。DOUBLE、FLOAT、FLOAT16、INT8、INT16、INT32、INT64、UINT8、UINT16、UINT32、UINT64、COMPLEX64、COMPLEX128、BOOLND
align可选属性指定超对角线和次对角线的对齐方式。支持`RIGHT_LEFT`、`LEFT_RIGHT`、`LEFT_LEFT`、`RIGHT_RIGHT`,默认值为`RIGHT_LEFT`。STRING-
y输出公式中的`y`,表示生成后的矩阵张量,数据类型与`x`一致。当`k`为单个元素或`k[0] == k[1]`时,`y`的秩为`x`的秩加1;否则`y`的秩与`x`一致。DOUBLE、FLOAT、FLOAT16、INT8、INT16、INT32、INT64、UINT8、UINT16、UINT32、UINT64、COMPLEX64、COMPLEX128、BOOLND

约束说明

  • x的秩至少为1。
  • k的元素个数只能为1或2;当k为2个元素时,必须满足k[0] <= k[1]
  • k表示对角线带时,x的倒数第二维长度必须等于$k_u - k_l + 1$,最后一维长度必须等于$\mathrm{max_diag_len}$。

调用说明

调用方式调用样例说明
图模式调用test_geir_matrix_diag_v3通过算子IR构图方式调用MatrixDiagV3算子。

【免费下载链接】ops-math本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-math

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

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

从热图到文本:多模态可解释AI的技术原理与实践路径

1. 项目概述&#xff1a;为什么我们需要“看得懂”的AI决策&#xff1f;在人工智能&#xff0c;特别是深度学习模型日益渗透到医疗诊断、自动驾驶、金融风控等关键领域的今天&#xff0c;一个核心的信任危机也随之浮现&#xff1a;我们如何相信一个“黑箱”做出的决定&#xff…

作者头像 李华
网站建设 2026/5/9 12:21:33

CANN/shmem安全声明

安全声明 【免费下载链接】shmem CANN SHMEM 是面向昇腾平台的多机多卡内存通信库&#xff0c;基于OpenSHMEM 标准协议&#xff0c;实现跨设备的高效内存访问与数据同步。 项目地址: https://gitcode.com/cann/shmem 安全加固 加固须知 本文中列出的安全加固措施为基本…

作者头像 李华
网站建设 2026/5/9 12:20:27

CANN/runtime TDT队列基础示例

0_simple_queue 【免费下载链接】runtime 本项目提供CANN运行时组件和维测功能组件。 项目地址: https://gitcode.com/cann/runtime 概述 本样例演示 TDT Queue 的基础队列能力&#xff0c;覆盖 QueueAttr 配置、属性读取&#xff0c;以及 Queue 创建和销毁流程。 产品…

作者头像 李华
网站建设 2026/5/9 12:20:21

CANN/ops-cv最近邻上采样反向API

aclnnUpsampleNearest1dBackward 【免费下载链接】ops-cv 本项目是CANN提供的图像处理、目标检测相关的算子库&#xff0c;实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-cv &#x1f4c4; 查看源码 产品支持情况 产品是否支持 Ascend 950PR/Asc…

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

CANN元数据定义库

CompileInfo 【免费下载链接】metadef Ascend Metadata Definition 项目地址: https://gitcode.com/cann/metadef 函数功能 设置算子的CompileInfo指针。 函数原型 OpTilingContextBuilder &CompileInfo(const void *compile_info)参数说明 参数 输入/输出 说明 …

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

CANN高性能线性代数算子库

ops-blas 【免费下载链接】ops-blas 本项目是CANN提供的高性能线性代数计算以及轻量化GEMM调用算子库。 项目地址: https://gitcode.com/cann/ops-blas &#x1f525;Latest News [2026/03] ops-blas项目上线&#xff0c;提供BLAS计算的API以及现代灵活接口aclBLASLt。…

作者头像 李华