Transpose 算子 API 描述【免费下载链接】cann-bench评测AI在处理CANN领域代码任务的能力涵盖算子生成、算子优化等领域支撑模型选型、训练效果评估统一量化评估标准识别Agent能力短板构建CANN领域评测平台推动AI能力在CANN领域的持续演进。项目地址: https://gitcode.com/cann/cann-bench1. 算子简介对 tensor 的任意维度进行调换。主要应用场景深度学习中数据格式转换如 NCHW 与 NHWC 之间的转换注意力机制中对 Q、K、V 矩阵进行维度交换矩阵运算前的维度调整如矩阵转置算子特征难度等级L3LayoutTransform单输入单输出支持不超过 8 维的输入通过 perm 参数指定维度置换顺序2. 算子定义数学公式$$ y[i_0, ..., i_{n-1}] x[i_{\text{perm}[0]}, ..., i_{\text{perm}[n-1]}] $$其中 perm 为维度置换顺序数组指定输出张量各维度对应输入张量的哪个维度。3. 接口规范算子原型cann_bench.transpose(Tensor x, int[] perm) - Tensor y输入参数说明参数类型默认值描述xTensor必选输入张量维度不超过 8 维permint[]必选维度置换顺序输出参数Shapedtype描述y输入 shape 按 perm 重排后的 shape与输入 x 相同输出张量转置后的结果数据类型输入 dtype输出 dtypefloat16float16float32float32bfloat16bfloat16int8int8int16int16int32int32int64int64规则与约束输入维度不超过 8 维perm 数组长度必须等于输入维度数且为 [0, ndim) 的一个排列输出 shape 为输入 shape 按 perm 重排的结果即 output_shape[i] input_shape[perm[i]]输出 dtype 与输入 dtype 一致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 Transpose算子Torch Golden参考实现 对tensor的任意维度进行调换 公式: y[i0,...,in-1] x[i_perm[0],...,i_perm[n-1]] def transpose( x: torch.Tensor, perm: list ) - torch.Tensor: 对tensor的任意维度进行调换 公式: y[i0,...,in-1] x[i_perm[0],...,i_perm[n-1]] Args: x: 输入张量 perm: 维度置换顺序 Returns: 输出张量转置后的结果 y torch.permute(x, perm) return y6. 额外信息算子调用示例import torch import cann_bench # 2D 矩阵转置 x torch.randn(1024, 1024, dtypetorch.float16, devicenpu) y cann_bench.transpose(x, [1, 0]) # 4D NCHW 转 NHWC x torch.randn(2, 8, 256, 256, dtypetorch.float32, devicenpu) y cann_bench.transpose(x, [0, 2, 3, 1])【免费下载链接】cann-bench评测AI在处理CANN领域代码任务的能力涵盖算子生成、算子优化等领域支撑模型选型、训练效果评估统一量化评估标准识别Agent能力短板构建CANN领域评测平台推动AI能力在CANN领域的持续演进。项目地址: https://gitcode.com/cann/cann-bench创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
CANN/cann-bench转置算子评测
Transpose 算子 API 描述【免费下载链接】cann-bench评测AI在处理CANN领域代码任务的能力涵盖算子生成、算子优化等领域支撑模型选型、训练效果评估统一量化评估标准识别Agent能力短板构建CANN领域评测平台推动AI能力在CANN领域的持续演进。项目地址: https://gitcode.com/cann/cann-bench1. 算子简介对 tensor 的任意维度进行调换。主要应用场景深度学习中数据格式转换如 NCHW 与 NHWC 之间的转换注意力机制中对 Q、K、V 矩阵进行维度交换矩阵运算前的维度调整如矩阵转置算子特征难度等级L3LayoutTransform单输入单输出支持不超过 8 维的输入通过 perm 参数指定维度置换顺序2. 算子定义数学公式$$ y[i_0, ..., i_{n-1}] x[i_{\text{perm}[0]}, ..., i_{\text{perm}[n-1]}] $$其中 perm 为维度置换顺序数组指定输出张量各维度对应输入张量的哪个维度。3. 接口规范算子原型cann_bench.transpose(Tensor x, int[] perm) - Tensor y输入参数说明参数类型默认值描述xTensor必选输入张量维度不超过 8 维permint[]必选维度置换顺序输出参数Shapedtype描述y输入 shape 按 perm 重排后的 shape与输入 x 相同输出张量转置后的结果数据类型输入 dtype输出 dtypefloat16float16float32float32bfloat16bfloat16int8int8int16int16int32int32int64int64规则与约束输入维度不超过 8 维perm 数组长度必须等于输入维度数且为 [0, ndim) 的一个排列输出 shape 为输入 shape 按 perm 重排的结果即 output_shape[i] input_shape[perm[i]]输出 dtype 与输入 dtype 一致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 Transpose算子Torch Golden参考实现 对tensor的任意维度进行调换 公式: y[i0,...,in-1] x[i_perm[0],...,i_perm[n-1]] def transpose( x: torch.Tensor, perm: list ) - torch.Tensor: 对tensor的任意维度进行调换 公式: y[i0,...,in-1] x[i_perm[0],...,i_perm[n-1]] Args: x: 输入张量 perm: 维度置换顺序 Returns: 输出张量转置后的结果 y torch.permute(x, perm) return y6. 额外信息算子调用示例import torch import cann_bench # 2D 矩阵转置 x torch.randn(1024, 1024, dtypetorch.float16, devicenpu) y cann_bench.transpose(x, [1, 0]) # 4D NCHW 转 NHWC x torch.randn(2, 8, 256, 256, dtypetorch.float32, devicenpu) y cann_bench.transpose(x, [0, 2, 3, 1])【免费下载链接】cann-bench评测AI在处理CANN领域代码任务的能力涵盖算子生成、算子优化等领域支撑模型选型、训练效果评估统一量化评估标准识别Agent能力短板构建CANN领域评测平台推动AI能力在CANN领域的持续演进。项目地址: https://gitcode.com/cann/cann-bench创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考