新闻详情

新闻详情

首页 / 资讯中心 / 详情

PyPTO Tensor.exp 指数运算 API 详解:逐元素 e 的指数计算与精度模式选择

发布时间:2026/9/19 22:38:00来源:尧图网络
PyPTO Tensor.exp 指数运算 API 详解:逐元素 e 的指数计算与精度模式选择
PyPTO Tensor.exp 指数运算 API 详解逐元素 e 的指数计算与精度模式选择【免费下载链接】pyptoPyPTO发音: pai p-t-oParallel Tensor/Tile Operation编程范式。项目地址: https://gitcode.com/cann/pypto导读pypto.Tensor.exp是 CANN PyPTO 张量编程框架提供的逐元素指数运算接口用于计算输入 Tensor 每个元素的 e 的指数out e ** input返回与输入形状相同的新 Tensor。该接口同时以pypto.Tensor.exp()方法与pypto.exp()函数两种形式暴露支持通过precision_type参数在「芯片指令直算INTRINSIC」与「高精度计算HIGH_PRECISION」两种精度模式之间切换。阅读本文后你将掌握exp接口的函数原型、参数语义、数据类型与格式约束、TileShape 设置要求以及基于仓库源码与测试用例的底层实现原理。产品支持情况exp指数运算接口在当前仓库中声明支持以下芯片与产品形态见 pypto-Tensor-exp.md 与 pypto-exp.md 中的产品支持说明芯片/产品系列支持情况Ascend 950PR / Ascend 950DT支持Atlas A3 训练系列产品 / Atlas A3 推理系列产品支持Atlas A2 训练系列产品 / Atlas A2 推理系列产品支持函数原型与参数说明函数原型exp指数运算存在两种等价调用形式Tensor 成员方法本文档主体exp(self, precision_type: PrecisionType PrecisionType.INTRINSIC) - Tensor模块级函数详细语义定义所在pypto.exp(input, precision_typepypto.PrecisionType.INTRINSIC) - Tensor从源码可以确认两种形式实为同一实现Tensor.exp成员方法内部直接委托给模块级pypto.exp见 tensor.py而pypto.exp最终将调用下沉到 C 层的pypto_impl.Exp见 math.py。参数说明参数名输入/输出类型说明precision_type输入PrecisionType可选指数运算的精度模式。默认值为PrecisionType.INTRINSIC。INTRINSIC直接使用芯片指令进行计算速度更快。HIGH_PRECISION使用更高精度的计算方式减少精度损失。inputpypto.exp形式输入Tensor源操作数。支持的数据类型为DT_FP16、DT_BF16、DT_FP32。不支持空 Tensor支持 1~4 维Shape Size 不大于2147483647即INT32_MAX。PrecisionType是框架内置的枚举类型定义于 pypto_impl/init.pyi仅包含INTRINSIC与HIGH_PRECISION两个取值与文档描述一致。详细功能说明运算语义exp执行逐元素element-wise指数运算对于输入 Tensor 中的每一个元素x计算e ** x输出 Tensor 的数据类型与输入相同、Shape 与输入相同见 pypto-exp.md 的功能说明与返回值说明。约束说明使用exp前需注意以下约束Tensor 类型输入不支持TileOpFormat.TILEOP_NZ格式。这一约束在 C 实现层有明确校验Exp接口通过CheckTensorFormat显式检查输入存储格式见 exponential.cpp非法格式会在编译/运行期被拦截。输入数据类型仅支持DT_FP16、DT_BF16、DT_FP32同样由 C 层的CheckTensorDataType在接口入口处统一校验见 exponential.cpp。不支持空 Tensor支持 1~4 维输入Shape Size 不超过INT32_MAX。调用前的 TileShape 设置调用exp接口前应通过pypto.set_vec_tile_shapes设置 TileShape分块形状且TileShape 的维度应与输出一致。例如输入 shape 为[m, n]、输出为[m, n]时设置[m1, n1]的 TileShape则m1、n1分别用于切分m、n轴pypto.set_vec_tile_shapes(4, 16)这一要求在系统测试中也有体现exp的 ST 用例在核函数入口处先调用pypto.set_vec_tile_shapes(*config.tile_shape)再通过pypto.loop与pypto.view构造分块视图并逐块执行pypto.exp见 test_exp.py验证了「先设 TileShape、再逐块运算、最后 assemble 回写」的典型使用范式。调用示例接口调用示例默认 INTRINSIC 模式import pypto x pypto.tensor([3], pypto.DT_FP32) y pypto.exp(x)结果示例如下输入数据x: [0.0 1.0 2.0] 输出数据y: [1.0000 2.7183 7.3891]高精度模式示例HIGH_PRECISION当输入为 FP16 等低精度类型、对数值精度有更高要求时可显式指定HIGH_PRECISION模式以减少精度损失x pypto.tensor([3], pypto.DT_FP16) y pypto.exp(x, pypto.PrecisionType.HIGH_PRECISION)指令模式示例INTRINSICINTRINSIC为默认模式直接使用芯片指令计算速度更快可显式写出以表达意图x pypto.tensor([3], pypto.DT_FP16) y pypto.exp(x, pypto.PrecisionType.INTRINSIC)成员方法形式示例exp同样可以 Tensor 成员方法形式调用x pypto.tensor([3], pypto.DT_FP32) y x.exp() # 等价于 pypto.exp(x) y_high x.exp(pypto.PrecisionType.HIGH_PRECISION)源码级实现原理Python 前端调用链pypto.Tensor.exp成员方法定义于 tensor.py内部委托给模块级函数pypto.exp(self, precision_type)模块级pypto.exp定义于 math.py其 docstring 明确记录了运算公式out e ** input最终返回pypto_impl.Exp(input, precision_type)即 C 侧实现的算子对象仓库同时提供了同族的exp22 的指数与expm1e 的指数减 1接口见 math.py三者共同构成指数运算族便于读者对比理解。C 后端实现C 侧的Exp实现在 exponential.cpp核心流程为通过CheckTensorFormat校验存储格式不支持TILEOP_NZ通过CheckTensorDataType校验数据类型仅支持{DT_FP16, DT_BF16, DT_FP32}调用TensorUnaryOperationWithOpUnaryOpType::EXP构建一元运算算子将precision_type以属性OpAttributeKey::precisionType形式写入算子供后续分块执行阶段读取在ExpOperationTileFunc分块执行函数中读取该属性并调用TiledUnaryOperationUnaryOpType::EXP完成实际的分块tile运算缺省时回退为PrecisionType::INTRINSIC。可以看出precision_type参数不仅影响 Python 层的调用形态更会以算子属性的方式贯穿至底层分块执行阶段直接决定最终在 Vector 单元上使用的指令路径。测试用例佐证exp的系统测试位于 test_exp.py其验证思路具有代表性以 PyTorch 的torch.exp结果作为 golden 参考expected [torch.exp(inputs_cpu[0])]对比 PyPTO 在 NPU 上的实际输出见 test_exp.py用例覆盖 2 维与 3 维两种执行视图execution_view_shape并通过pytest.mark.parametrize批量驱动EXP_TESTS用例集配合pypto.options(pass_options{enable_slice: True})开启 slice 优化路径测试用例配置含 TileShape、输入 Shape、循环范围等由ExpConfig承载可查阅 vector_testcase 目录下的用例定义。此外仓库其他 Vector 运算测试如 test_vector_tensor.py也通过tile_a.exp()成员方法形式对exp进行了覆盖验证进一步印证了成员方法与模块级函数两种调用形式等价可用。总结pypto.Tensor.exp是 PyPTO 中用于逐元素计算e的指数的标准接口具有「方法/函数双形态、精度模式可切换、分块执行友好」三个特点调用前需通过set_vec_tile_shapes配置与输出同维度的 TileShapeprecision_type决定使用芯片指令直算INTRINSIC更快还是高精度计算HIGH_PRECISION精度损失更小输入仅支持DT_FP16/DT_BF16/DT_FP32且不支持TILEOP_NZ格式。从 math.py 到 exponential.cpp 再到 test_exp.py完整调用链与测试覆盖清晰可查读者可据此在自己的核函数中安全地组合使用该算子。【免费下载链接】pyptoPyPTO发音: pai p-t-oParallel Tensor/Tile Operation编程范式。项目地址: https://gitcode.com/cann/pypto创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

换电站土建设计:决定换电效率与十年运维成本的关键 2026/9/19 23:23:07

换电站土建设计:决定换电效率与十年运维成本的关键

简介:本资源是一份面向新能源汽车基础设施建设从业者、电力设计院工程师及高校交通与能源交叉领域研究者的专业技术参考文献,聚焦电动汽车换电站土建设计的核心难点与工程优化路径。全文系统阐述总平面紧凑布局(含环形道路分流设计&#xff0…

阅读更多 →
Fairseq 命令行工具全解析:从数据预处理到模型训练、生成与评估的完整实战指南 2026/9/19 23:23:07

Fairseq 命令行工具全解析:从数据预处理到模型训练、生成与评估的完整实战指南

Fairseq 命令行工具全解析:从数据预处理到模型训练、生成与评估的完整实战指南 【免费下载链接】fairseq Facebook AI Research Sequence-to-Sequence Toolkit written in Python. 项目地址: https://gitcode.com/gh_mirrors/fa/fairseq 导读 fairseq 是 Fa…

阅读更多 →
Windows下配置Claude Code与Playwright MCP:三个坑与完整排查实录 2026/9/19 23:23:07

Windows下配置Claude Code与Playwright MCP:三个坑与完整排查实录

如果你跟我一样,是在 Windows 上折腾 Claude Code 的开发者,那你大概率会在某天遇到 Playwright MCP 这个词。简单说,这个组合就是让 Claude Code 获得真实浏览器操作能力:打开网页、点击按钮、填写表单、截图保存、抓取页面数据&…

阅读更多 →
一份七年前的无人机电池标准,如何指导今天的锂电池测试? 2026/9/19 23:23:07

一份七年前的无人机电池标准,如何指导今天的锂电池测试?

简介:《无人机电池标准(DB44)》是一份面向无人机锂电池研发、生产与测试人员的规范性文档。内容依据广东省质量技术监督局发布的《无人飞行器用锂离子电池与电池组技术要求(工作组讨论稿)》整理,系统覆盖术语和定义、试验环境与设…

阅读更多 →
VS Code+Ace Data Cloud MCP:构建AI工作站实战指南 2026/9/19 23:23:07

VS Code+Ace Data Cloud MCP:构建AI工作站实战指南

1. 整体思路:VS Code 为什么能成为 AI 工作站的底座1.1 从"代码编辑器"到"AI 开发中枢"的转变我这两年最大的感受是:VS Code 早就不是单纯的代码编辑器了。以前大家装它,是为了写 TypeScript、调 Python、改配置方便&…

阅读更多 →
BrewUI:为Homebrew套上图形界面,让macOS包管理更直观 2026/9/19 23:20:07

BrewUI:为Homebrew套上图形界面,让macOS包管理更直观

提到 macOS 上的开发环境,Homebrew 是绕不开的一个词。装了它,装 Node、装 Redis、装各种命令行工具,基本就是一行 brew install 的事。但问题也出在这"一行命令"上——用久了你会发现,自己的终端里积累了一大堆不知道干…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞