CANN/asc-devkit SIMD-API Log函数文档

发布时间:2026/9/15 9:07:49

CANN/asc-devkit SIMD-API Log函数文档 Log【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit产品支持情况Ascend 950PR/Ascend 950DT支持Atlas A3 训练系列产品/Atlas A3 推理系列产品不支持Atlas A2 训练系列产品/Atlas A2 推理系列产品不支持Atlas 200I/500 A2 推理产品不支持Atlas 推理系列产品AI Core不支持Atlas 推理系列产品Vector Core不支持Atlas 训练系列产品不支持功能说明头文件路径basic_api/reg_compute/kernel_reg_compute_vec_unary_intf.h。该接口根据mask逐元素对源操作数求自然对数将结果写入目的操作数。计算公式如下$$dstReg_i \log(srcReg_i)$$函数原型template typename T DefaultType, auto mode MaskMergeMode::ZEROING, typename U __simd_callee__ inline void Log(U dstReg, U srcReg, MaskReg mask)参数说明表 1模板参数说明参数名描述T操作数数据类型。支持的数据类型请参考数据类型。mode可配置为MaskMergeMode枚举类型或LogSpecificMode的结构体指针。• 配置MaskMergeMode选择MERGING模式或ZEROING模式。• ZEROING模式下mask未筛选的元素在dstReg中置零。• MERGING模式当前不支持。• 配置LogSpecificMode定义如下enum class LogAlgo {INTRINSIC 0,PRECISION_1ULP_FTZ_TRUE,PRECISION_1ULP_FTZ_FALSE,};struct LogSpecificMode {MaskMergeMode mrgMode MaskMergeMode::ZEROING,LogAlgo algo LogAlgo::INTRINSIC;};• mrgMode选择MERGING模式或ZEROING模式。• algo用于配置Subnormal模式。• LogAlgo::INTRINSIC、LogAlgo::PRECISION_1ULP_FTZ_TRUE使用单指令计算得出结果最大精度误差为1ulp。目前该算法支持half、float数据类型。• LogAlgo::PRECISION_1ULP_FTZ_FALSE支持Subnormal数据计算最大精度误差为1ulp。目前该算法支持half、float数据类型。U源操作数和目的操作数的RegTensor类型例如RegTensorhalf由编译器自动推导用户不需要填写。表2参数说明参数名输入/输出描述dstReg输出目的操作数。类型为RegTensor。srcReg输入源操作数。类型为RegTensor。mask输入源操作数元素操作的有效指示详细说明请参考MaskReg。数据类型目的操作数与源操作数的数据类型需要保持一致。支持的数据类型为half、float。返回值说明无约束说明无关键特性说明最大精度误差LogAlgo::INTRINSIC、LogAlgo::PRECISION_1ULP_FTZ_TRUE最大精度误差为1ulp。LogAlgo::PRECISION_1ULP_FTZ_FALSE最大精度误差为1ulp。配置Subnormal模式FTZFlush To Zero一种浮点运算模式当结果为Subnormal时将其直接清零近似为0而非保留其精确的微小数值。只有将algo设置为LogAlgo::PRECISION_1ULP_FTZ_FALSE时Log接口才会保留并正确输出Subnormal结果其他模式下Subnormal均被FTZ。一般场景推荐使用性能更好的LogAlgo::INTRINSIC、LogAlgo::PRECISION_1ULP_FTZ_TRUE需要精确Subnormal输出的场景如特定数据精度要求的算法、避免除零错误使用LogAlgo::PRECISION_1ULP_FTZ_FALSE。调用示例templatetypename T __simd_vf__ inline void LogVF(__ubuf__ T* dstAddr, __ubuf__ T* srcAddr, uint32_t count, uint16_t oneRepeatSize, uint16_t repeatTimes) { AscendC::Reg::RegTensorT srcReg; AscendC::Reg::RegTensorT dstReg; AscendC::Reg::MaskReg mask; // Subnormal模式 // static constexpr AscendC::Reg::LogSpecificMode mode {MaskMergeMode::ZEROING, LogAlgo::PRECISION_1ULP_FTZ_FALSE}; for (uint16_t i 0; i repeatTimes; i) { mask AscendC::Reg::UpdateMaskT(count); AscendC::Reg::LoadAlign(srcReg, srcAddr i * oneRepeatSize); AscendC::Reg::Log(dstReg, srcReg, mask); // Subnormal模式 // AscendC::Reg::LogDTYPE, mode(dstReg, srcReg, mask); AscendC::Reg::StoreAlign(dstAddr i * oneRepeatSize, dstReg, mask); } }【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/14 8:14:39

开关电源变压器啸叫原因与解决方案

1. 开关电源变压器啸叫现象初探第一次听到开关电源变压器发出尖锐响声时,我正蹲在实验室调试一块新设计的电路板。那种高频的"吱吱"声像指甲刮过黑板,让人头皮发麻。作为从业十余年的电源工程师,我立刻意识到这是典型的变压器啸叫现…

2026/9/10 10:57:34

SAP QM高阶之检验点(Inspection Point)在复杂生产场景下的实战应用

1. 检验点(Inspection Point)的核心价值与应用场景在现代化制造企业中,质量管理早已不是简单的"合格/不合格"二元判断。当生产线同时处理多个批次、实验室需要跨班次协作、同一物料要经历不同检测设备时,传统检验模式就会暴露出数据割裂、追溯…

2026/9/13 3:30:55

NAS一键部署AFFiNE:打造私有Notion+白板知识库

1. 项目概述:为什么需要“自己的Notion白板”?你有没有过这样的体验:在Notion里写完一篇产品需求文档,想随手画个流程图,却得切到Miro或Excalidraw;画完白板又想把关键节点转成数据库条目,结果发…

2026/9/15 9:06:58

BLM战略规划培训与实战案例【附全文阅读】

本 PPT 是战略咨询、企业战略规划、SP/BP 编制项目标杆培训素材,适配集团战略研讨、高管赋能、战略落地类投标与内训。完整拆解 IBM BLM 业务领先模型,打通从差距识别、战略规划到战略执行的全闭环。文档详解业绩差距、机会差距两类起点,覆盖…

2026/9/15 9:06:58

WeKnora:面向企业级RAG的DeepSeek Harness知识调度中枢

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/15 9:06:58

Android车机CAN开发全链路:SocketCAN、DBC、ISO-TP与UDS实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/15 9:06:58

LeetCode 1317无零整数拆分:暴力枚举与边界处理的经典入门题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/15 9:01:57

本地部署大模型+WorkBuddy办公提效实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/15 4:54:30

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/15 0:01:16

AI英语单词APP开发:自适应学习算法与移动端优化实践

1. 项目概述 作为一名在移动应用开发领域摸爬滚打多年的老手,我最近完成了一个AI英语单词APP的开发项目。这个项目将传统单词记忆方法与现代AI技术相结合,打造了一款能够智能适应不同用户学习习惯的英语学习工具。 市面上大多数单词APP都存在一个通病&a…

2026/9/15 0:01:16

Flutter与OpenHarmony结合开发手语学习APP实战

1. 项目背景与核心价值作为一名同时接触过Flutter和OpenHarmony的开发者,最近我完成了一个基于Flutter for OpenHarmony的手语学习APP实战项目。这个项目最大的特点在于实现了跨平台框架与国产操作系统深度结合的创新实践——用Flutter开发的应用能完美运行在OpenHa…

2026/9/15 0:01:16

六个月成为机器人工程师:从ROS2到SLAM的实战路径

1. 六个月的紧迫感从哪来:先搞清楚你要成为哪种机器人工程师说实话,六个月的期限并不是一个宽松的时间线。市面上任何一本正经的机器人学教材都超过五百页,ROS2的官方文档可以翻到你怀疑人生,再加上ABB、KUKA这些工业机器人厂家动…

2026/9/14 11:59:31

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/14 13:53:59

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/14 11:22:57

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码