尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
PyPTO log10 接口详解:Ascend NPU 上以 10 为底的对数运算编程指南
PyPTO log10 接口详解Ascend NPU 上以 10 为底的对数运算编程指南【免费下载链接】pyptoPyPTO发音: pai p-t-oParallel Tensor/Tile Operation编程范式。项目地址: https://gitcode.com/cann/pyptopypto.log10是 CANN PyPTOParallel Tensor/Tile Operation 编程范式张量 API 中用于对 Tensor 逐元素计算以 10 为底对数out log_10(input)的核心数学算子。本文围绕该接口的产品支持情况、函数原型、参数语义、精度模式选择、TileShape 切分设置与完整调用示例展开并结合仓库源码印证其底层实现python/pypto/op/math.py与枚举定义PrecisionType、LogBaseType帮助开发者在 Atlas 训练/推理系列产品上正确、高效地完成对数运算的 kernel 编写与调优。产品支持情况根据 pypto-log10.md 的官方说明pypto.log10在以下硬件平台上受支持Ascend 950PR / Ascend 950DT支持Atlas A3 训练系列产品 / Atlas A3 推理系列产品支持Atlas A2 训练系列产品 / Atlas A2 推理系列产品支持。需要说明的是该产品支持矩阵来自文档注释npu950、npuA3、npu910b等标记实际可用性请以对应版本配套的芯片与驱动环境为准。功能说明逐元素计算以 10 为底的对数pypto.log10对输入 Tensor 的每个元素执行以 10 为底的对数运算其数学语义为out[i] log_10(input[i])该语义在源码 docstring 中有明确表述This function calculates the formula: out log_10(input).见 math.py。它与同一文件中的log自然对数、log2以 2 为底、log1plog(1 input)共同构成 PyPTO 的对数算子家族底层均汇聚到统一的pypto_impl.Log计算入口通过LogBaseType枚举区分底数return pypto_impl.Log(input, pypto_impl.LogBaseType.LOG_10, precision_type)从 pypto_impl/init.pyi 的桩定义可以看到LogBaseType包含LOG_E、LOG_2、LOG_10三个取值log10对应的正是LOG_10。这意味着对数运算的硬件指令是复用的区别仅在于底数参数从而保证了同一套精度策略在三类对数接口上行为一致。函数原型pypto.log10(input, precision_typepypto.PrecisionType.INTRINSIC) - Tensor函数定义位于 python/pypto/op/math.py并且被op_wrapper装饰属于 PyPTO 算子统一封装层。此外Tensor 对象还提供了等价的方法式调用入口Tensor.log10(self, precision_type: PrecisionType PrecisionType.INTRINSIC) - Tensor见 python/pypto/tensor.py其实现为return pypto.log10(self, precision_type)。因此以下两种写法完全等价y pypto.log10(x) y x.log10()参数说明参数类型说明inputTensor源操作数。支持的类型为 TensorTensor 支持的数据类型为 DT_FP32、DT_FP16、DT_BF16支持的维度为 1~4 维不支持空 TensorShape Size 不大于 2147483647即 INT32_MAX。precision_typePrecisionType可选对数操作的精度模式默认值为PrecisionType.INTRINSIC。INTRINSIC直接使用芯片指令进行计算速度更快。HIGH_PRECISION使用更高精度的计算方式减少精度损失。precision_type 精度模式的源码佐证PrecisionType枚举定义于 pypto_impl/init.pyi包含INTRINSIC与HIGH_PRECISION两个成员与文档参数表完全对应class PrecisionType(enum.Enum): INTRINSIC ... HIGH_PRECISION ...在 math.py 的 docstring 中对其语义进一步说明INTRINSIC直接使用芯片指令进行计算性能优先directly uses chip instructions for faster computationHIGH_PRECISION采用更高精度的计算方式以减少精度损失Use higher precision calculation to reduce precision loss。实际使用时若对数值精度敏感例如科学计算、统计归一化场景可显式切换为HIGH_PRECISION若追求吞吐与延迟则保持默认的INTRINSIC。返回值说明返回输出 Tensor其数据类型与 input 相同Shape 与 input 一致即逐元素运算不改变张量形状。这一点与文档中返回输出TensorTensor的数据类型和input相同Shape为input大小的说明一致也与Log算子逐元素计算的语义吻合。约束说明使用pypto.log10时需要注意以下两条约束输入与输出 Tensor 类型必须相同由于返回值的数据类型与 input 保持一致请勿在传入 FP16 输入时期望得到 FP32 输出如需转换请先使用pypto.cast显式转换数据类型。输入元素必须大于 0否则输出为 NaN这是对数函数的数学定义域要求log_10(x)仅在x 0时有实数值。源码 docstring 同样标注了Must be positive (input 0)的前提见 math.py。因此在实际业务中建议在调用前对输入做合法性校验或过滤避免 NaN 结果污染后续计算链路。TileShape 设置示例在 PyPTO 编程范式中TileShape 用于描述硬件调度时的数据切分粒度。log10作为逐元素vector运算其TileShape 维度应与输出 Tensor 的维度一致。例如输入 input 的 Shape 为[m, n]输出为[m, n]则 TileShape 设置为[m1, n1]其中m1、n1分别用于切分 m 轴与 n 轴pypto.set_vec_tile_shapes(m1, n1)set_vec_tile_shapes是向量Vector计算域的 TileShape 设置接口其实现位于 python/pypto/_controller.py本质上是将各维度切分大小写入当前编译作用域pypto_impl.SetScope({vec_tile_shapes: concrete_shapes})并支持传入SymbolicScalar进行符号化切分。典型用法示例pypto.set_vec_tile_shapes(1, 1, 8, 8) print(pypto.get_vec_tile_shapes()) # [1, 1, 8, 8]对于 1~4 维的log10输入开发者应根据实际 Shape 维数传入等长的 TileShape 列表合理设置 TileShape 有助于提升向量指令的利用率与片上存储的命中率。调用示例接口调用示例FP32x pypto.tensor([3], pypto.DT_FP32) y pypto.log10(x)结果示例如下输入数据x: [1.0 2.0 3.0] 输出数据y: [0.0000 0.3010 0.4771]即log_10(1.0) 0、log_10(2.0) ≈ 0.3010、log_10(3.0) ≈ 0.4771与数学预期一致。高精度模式示例FP16 HIGH_PRECISION当输入为 FP16 且对精度有更高要求时显式传入pypto.PrecisionType.HIGH_PRECISIONx pypto.tensor([3], pypto.DT_FP16) y pypto.log10(x, pypto.PrecisionType.HIGH_PRECISION)指令模式示例FP16 INTRINSIC当追求计算速度、可接受一定精度损失时可显式指定默认的pypto.PrecisionType.INTRINSICx pypto.tensor([3], pypto.DT_FP16) y pypto.log10(x, pypto.PrecisionType.INTRINSIC)该写法与直接省略precision_type参数等价函数默认值即为INTRINSIC显式写出可提升代码可读性。方法式调用与 Tensor 链式编程log10同样可作为Tensor的方法参与链式调用便于在算子组合中保持代码简洁x pypto.tensor([1.0, 10.0, 100.0], pypto.DT_FP32) y x.log10() # 输出 y: [0.0000 1.0000 2.0000]与其它对数接口的对比PyPTO 张量 API 中还提供了pypto.log、pypto.log2、pypto.log1p等对数算子对应文档位于 operation 目录它们与log10的差异仅在于底数与输入定义域接口数学语义输入要求pypto.loglog_e(input)input 0pypto.log2log_2(input)input 0pypto.log10log_10(input)input 0pypto.log1plog(1 input)input -1从源码看math.py、math.pylog、log2与log10共享同一pypto_impl.Log底层入口仅LogBaseType参数不同log1p在数值稳定性上对接近 0 的输入更友好。开发者可根据业务底数需求灵活选用并复用本文所述的精度模式与 TileShape 配置经验。总结pypto.log10是 PyPTO 张量 API 中实现逐元素以 10 为底对数运算的标准接口支持 Ascend 950、Atlas A2/A3 系列产品上的 FP32、FP16、BF16 数据提供INTRINSIC速度优先与HIGH_PRECISION精度优先两种精度模式并可通过pypto.set_vec_tile_shapes配合 TileShape 切分完成向量计算的调度配置。实际使用中请牢记输入须大于 0、输入输出类型一致两条约束并结合函数式pypto.log10(x)与对象方法式x.log10()两种调用风格在 math.py 与 tensor.py 的源码基础上将log10高效集成进自己的 NPU kernel 流水线。【免费下载链接】pyptoPyPTO发音: pai p-t-oParallel Tensor/Tile Operation编程范式。项目地址: https://gitcode.com/cann/pypto创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

面向社交媒体的假新闻检测方法研究卷积神经网络模型Flask框架LSTM

面向社交媒体的假新闻检测方法研究卷积神经网络模型Flask框架LSTM

面向社交媒体的假新闻检测方法研究旨在利用深度学习技术识别和过滤虚假信息,维护网络环境的健康与可信。通过TensorFlow框架,本研究采用LSTM、CNN和Transformer三种模型构建假新闻检测系统。LSTM模型擅长捕捉文本中的长距离依赖关系,能够有效…

📅 2026/9/19 23:23:55
Apache Spark Protobuf 数据源完全指南:to_protobuf 与 from_protobuf 的使用、类型映射与配置详解

Apache Spark Protobuf 数据源完全指南:to_protobuf 与 from_protobuf 的使用、类型映射与配置详解

Apache Spark Protobuf 数据源完全指南:to_protobuf 与 from_protobuf 的使用、类型映射与配置详解 【免费下载链接】spark Apache Spark - A unified analytics engine for large-scale data processing 项目地址: https://gitcode.com/gh_mirrors/sp/spark …

📅 2026/9/19 23:23:55
Slang 声明驱动(Claim-Driven)测试方法学:把语言文档逐句拆解为可验证的测试套件

Slang 声明驱动(Claim-Driven)测试方法学:把语言文档逐句拆解为可验证的测试套件

Slang 声明驱动(Claim-Driven)测试方法学:把语言文档逐句拆解为可验证的测试套件 【免费下载链接】slang Making it easier to work with shaders 项目地址: https://gitcode.com/GitHub_Trending/sl/slang 本篇技术指南完整讲解 Slan…

📅 2026/9/19 23:23:55
MORE NEWS

更多资讯

📰

ICESat-2 ATLAS高程控制点提取:从ATL03/ATL08光子数据到生产级应用

简介:这是一份关于ICESat-2/ATLAS全球高程控制点提取与分析的完整技术文档,旨在服务全球测图与高精度控制点库建设,适合遥感测绘、地理信息等领域的研究人员和工程技术人员学习参考。文档介绍了星载激光测高技术替代传统高程控制点测量的背景…

📰

PyPTO 算子开发执行约束速查:从框架级约束到动态轴实现模式(PyPTO-Gym 实战指南)

人工智能大模型算子库AI 技能/插件 【免费下载链接】pypto-gym PyPTO-Gym 是基于 PyPTO 编程框架构建的算子与模型样例仓库 项目地址: https://gitcode.com/cann/pypto-gym 点击查看 免费下载 导读 本文基于 CANN PyPTO-Gym 仓库中 cannbot-skills/ops/pypto-op-d…

📰

领域无关对比表示下的标签比例学习:SelfCLR-LLP 在 Criteo 与 MovieLens-1M 上的完整实战指南

领域无关对比表示下的标签比例学习:SelfCLR-LLP 在 Criteo 与 MovieLens-1M 上的完整实战指南 【免费下载链接】google-research Google Research 项目地址: https://gitcode.com/gh_mirrors/go/google-research 本文以 Domain_Agnostic_Contrastive_Represe…

📰

PyPTO 同步控制(SIMD-API synchronization)完全指南:核内流水同步、互斥与跨核屏障

人工智能编译器模型编译高性能计算深度学习CANN 【免费下载链接】pypto PyPTO(发音: pai p-t-o):Parallel Tensor/Tile Operation编程范式。 项目地址: https://gitcode.com/cann/pypto 点击查看 免费下载 导读 本文以 PyPTO 项…

📰

StarRocks DROP ROLE 语句详解:删除角色与权限回收机制

StarRocks DROP ROLE 语句详解:删除角色与权限回收机制 【免费下载链接】starrocks The worlds fastest open query engine for sub-second analytics both on and off the data lakehouse. With the flexibility to support nearly any scenario, StarRocks provid…

📰

前端导出Excel保留样式:从HTML模板到Blob下载的完整实践

简介:针对前端开发中常见的“表格导出Excel后样式丢失”问题,这份PDF文档提供了一套基于JavaScript的完整解决方案。文档以谷歌浏览器为运行环境,重点讲解两种保留表格样式的方法:一是在table行内直接编写style属性,二…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬