当前位置: 首页 > article >正文

CANN/asc-tools NPU检查工具

npu_check【免费下载链接】asc-toolsAscend C Tools仓是CANN基于Ascend C编程语言推出的配套调试工具仓。项目地址: https://gitcode.com/cann/asc-tools概述Ascend C Tools提供的孪生调试分为debug功能和npu check功能debug功能包含诸如是否合法使用接口参数校验等在此之上npu check提供了内存检查、内存生命周期管理、内存地址依赖管理、同步事件管理等功能。需要注意的是只有当debug阶段正常退出及未有ASSERT校验npu check才会输出完整的校验日志及分析。环境准备请参考快速入门完成环境准备使用方法基于Ascend C编程语言开发的算子通过cpu_debug在CPU域执行时npu check工具会同步对算子实现进行的检查算子的执行过程和检索到的Error以*_npuchk.log文件的形式保存在CPU域算子可执行文件执行路径下npuchk文件夹内。通过执行以下命令一键式生成检查结果。# 未指定log文件自动在当前路径下搜索log文件其中git_clone_path为本代码仓克隆路径 python3 ${git_clone_path}/asc-tools/npuchk/ascendc_npuchk_report.py # 指定log文件 python3 ${git_clone_path}/asc-tools/npuchk/ascendc_npuchk_report.py npuchk/xxx_npuchk.log检测到Error命令行执行完毕后失败结果打屏。例如错误码ErrorRead3及相关失败信息如下[V] [ErrorRead3] on read 0x7f328c11b010 0x800B Rule读取越界长度超出经Ascend C框架的alloc_buf申请实际有效的数据开始/结尾 ### vadd((__ubuf__ half*)7f328c11b810, (__ubuf__ half*)0xf328c11b010, (__ubuf__*)0x7f328c11b410, (uint8_t)1, (uint8_t)1, (uint8_t)1, (uint8_t)1, (uint8_t)8, (uint8_t)8, (uint8_t)8); ---------------------- ERROR STATISTICS ---------------------- 1 ErrorRead3读取越界长度超出经Ascend C框架的alloc_buf申请实际有效的数据开始/结尾未检测到Error命令执行完毕无打屏。若检测到Error可在log中查看详细的执行过程。根据日志信息划分为以下几个功能点。异常检测npu check对内存读写、指令同步、Tensor操作的合法性进行检测常见的失败类型及对应字段如下ErrorRead1:非法内存读取数据整段内存未经过Ascend C框架的AllocTensor申请或已被FreeTensor。ErrorRead2:[可疑问题]读取无效数据读取的内存部分/全部从未被写过读取的数据可能是无效数据。ErrorRead3:读取越界长度超出Ascend C框架的AllocTensor申请实际有效的数据开始/结尾。ErrorRead4:读取地址非32字节对齐。ErrorWrite1:非法内存写入数据未经过Ascend C框架的AllocTensor申请或已被FreeTensor。ErrorWrite2:写入越界长度超出经Ascend C框架的AllocTensor申请实际有效的数据开始/结尾。ErrorWrite3:[可疑问题]重复写入前一次写入的内存没有被取走重复写入。ErrorWrite4:写入地址非32字节对齐。ErrorSync1:写入存在同步问题pipe内缺少pipe barrier或pipe间缺少set/wait。ErrorSync2:读取存在同步问题pipe内缺少pipe barrier或pipe间缺少set/wait。ErrorSync3:set/wait使用不配对缺少set或者wait。ErrorSync4:出现set/wait的eventID重复比如mte2:set0/set0vector:set0/wait0。ErrorLeak:内存泄漏存在申请内存未释放问题。ErrorFree:内存重复释放调用free_buf释放过再次调用free_buf。ErrorBuffer0:tensor内存未使用Ascend C框架的InitBuffer进行初始化。ErrorBuffer1:tensor的que类型与初始化时不一致。ErrorBuffer2:VECIN/VECOUT/VECCALC的操作不合规。ErrorBuffer3:tensor的操作内存不合法可能原因内存未分配/内存越界。ErrorBuffer4:TBufPool资源池未使用Ascend C框架的InitBufPool接口初始化。EnQue/DeQue错误场景检查对于VECIN/VECOUT/VECCALC类型的Tensor判断Tensor出现在搬运/计算指令时是否处于正确的状态以保证同步的正确性对于异常的状态会在日志中记录。GM内存多核踩踏检查基于GM全局内存的管理机制记录每个核操作的GM地址范围发现多核写入地址范围有重叠的情况记录错误支持Atomic add场景下对于重叠地址不记录错误。使用示例下面以add为示例介绍在调用CPU调测API并使用gdb/printf对算子核函数进行调试之后开发者可以基于生成的log文件使用npu check工具检查Kernel源码的实现逻辑。步骤1:构造错误用例在add_custom代码的CopyIn函数中加入如下FreeTensor操作。AscendC::LocalTensorhalf xLocal inQueueX.AllocTensorhalf(); AscendC::LocalTensorhalf yLocal inQueueY.AllocTensorhalf(); // 此处增加以下一行代码来构造错误示例 inQueueX.FreeTensor(xLocal); // 剩余代码保持不变 AscendC::DataCopy(xLocal, xGm[progress * TILE_LENGTH], TILE_LENGTH); AscendC::DataCopy(yLocal, yGm[progress * TILE_LENGTH], TILE_LENGTH); inQueueX.EnQue(xLocal); inQueueY.EnQue(yLocal);在这里进行FreeTensor会导致非法内存写入数据。步骤2:使用cpu debug生成log文件参考cpu_debug执行以下命令编译生成CPU域的算子可执行文件add_custom_x_x_npuchk.log文件保存在执行路径中新建的build文件夹下npuchk文件夹中。mkdir -p build cd build; cmake .. -DSOC_VERSION${SOC_VERSION}; make -j python3 ../scripts/gen_data.py ./add python3 ../scripts/verify_result.py output_z.bin golden.bin步骤3:找到对应的log文件进行检查由于用例为多核用例每个核都会生成一个相应的log文件以0核为例生成log文件为add_custom_0_0_vec_npuchk.log执行如下命令进行检查。python3 ${git_clone_path}/asc-tools/npuchk/ascendc_npuchk_report.py npuchk/add_custom_0_0_vec_npuchk.log若不指定xxx_npuchk.log脚本将会自动检索路径下的以“_npuchk.log”为后缀的文件进行检查。此时查看log文件可以看到执行时npu check日志记录的堆栈信息。步骤4:根据打屏信息判断错误类型示例用例出现错误会出现如下信息。----------------------ERROR STATISTICS---------------------- 1ErrorBuffer2VECIN/VECOUT/VECCALC的操作不合规 1ErrorWrite1非法内存写入数据未经过Ascend C框架的alloc_buf申请或已经free此时可根据上方异常检测部分判断错误类型。【免费下载链接】asc-toolsAscend C Tools仓是CANN基于Ascend C编程语言推出的配套调试工具仓。项目地址: https://gitcode.com/cann/asc-tools创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关文章:

CANN/asc-tools NPU检查工具

npu_check 【免费下载链接】asc-tools Ascend C Tools仓是CANN基于Ascend C编程语言推出的配套调试工具仓。 项目地址: https://gitcode.com/cann/asc-tools 概述 Ascend C Tools提供的孪生调试分为debug功能和npu check功能,debug功能包含诸如是否合法使用…...

CANN/PTO-ISA安全说明

安全说明 【免费下载链接】pto-isa Parallel Tile Operation (PTO) is a virtual instruction set architecture designed by Ascend CANN, focusing on tile-level operations. This repository offers high-performance, cross-platform tile operations across Ascend platf…...

全域矩阵运营系统分布式任务调度架构设计与工程化落地

摘要随着全域矩阵运营系统的规模化落地,系统需要承载数十万账号的定时内容发布、跨平台数据同步、账号健康巡检、合规风险扫描、运营 SOP 执行等海量、异构、强业务关联的任务场景。通用分布式任务调度框架仅能实现基础的定时任务触发,无法适配矩阵系统多…...

基于改进YOLOv8斑点叉尾鮰鱼损伤检测系统的研究与实现

摘要:斑点叉尾鮰是我国重要的淡水养殖经济鱼类,在高密度集约化养殖过程中,鱼体损伤问题频发,直接影响商品鱼品质和养殖经济效益。传统的鱼体损伤检测主要依赖人工目视判别,存在效率低、主观性强、难以实现批量化检测等…...

昇腾CANN/GE Concat No Task特性分析

Concat No Task 特性分析 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、T…...

通过curl命令快速测试Taotoken各大模型接口响应与功能

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过curl命令快速测试Taotoken各大模型接口响应与功能 对于需要在无SDK环境或进行底层接口调试的开发者而言,直接使用c…...

2025最权威的十大降AI率平台推荐榜单

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 维普AIGC检测系统的主要目的乃精确辨认学术文本里那帮通过人工智能给弄出来的内容。在用户使…...

WorkshopDL:革命性跨平台Steam创意工坊下载技术指南

WorkshopDL:革命性跨平台Steam创意工坊下载技术指南 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 1. 问题洞察 你是否曾经在GOG平台购买了《巫师3》,…...

键盘上的麦克风按钮:笔记本静音/开启的终极指南

键盘上的麦克风按钮:笔记本静音/开启的终极指南 在视频会议、直播或录制视频时,你是否曾因为找不到麦克风开关而手忙脚乱?其实,很多笔记本电脑都在键盘上藏了一个“物理静音键”,只要按对键,就能瞬间掌控声音的“话语权”。 今天这篇博文,我们就来详细扒一扒不同品牌笔…...

核心概念扫盲:Pawn、PlayerController 和 GameMode

📌 核心概念扫盲:Pawn、PlayerController 和 GameMode 在写避坑指南前,先用最通俗的大白话把这三个“铁三角”搞清楚,否则后面配置起来会非常迷糊: Pawn(棋子/角色):游戏世界里的“身体”。它可以是一个行走的战士(Character 是 Pawn 的子类,专门做人形角色),也可…...

如何让你的Atom编辑器说中文:三步实现完整中文汉化体验

如何让你的Atom编辑器说中文:三步实现完整中文汉化体验 【免费下载链接】atom-simplified-chinese-menu Atom 的简体中文汉化扩展,目前最全的汉化包。包含菜单汉化、右键菜单汉化以及设置汉化 项目地址: https://gitcode.com/gh_mirrors/at/atom-simplified-chine…...

CANN/sip复数矩阵逐点乘

ComplexMatDot 【免费下载链接】sip 本项目是CANN提供的一款高效、可靠的高性能信号处理算子加速库,基于华为Ascend AI处理器,专门为信号处理领域而设计。 项目地址: https://gitcode.com/cann/sip 产品支持情况 产品是否支持 Atlas 200I/500 A2…...

如何用Python自动化工具轻松完成智慧树课程学习:Autovisor终极指南

如何用Python自动化工具轻松完成智慧树课程学习:Autovisor终极指南 【免费下载链接】Autovisor 2025智慧树刷课脚本 基于Python Playwright的自动化程序 [有免安装版] 项目地址: https://gitcode.com/gh_mirrors/au/Autovisor 还在为智慧树平台繁琐的手动学习…...

CANN/ops-cv仿真工具使用指南

简介 【免费下载链接】ops-cv 本项目是CANN提供的图像处理、目标检测相关的算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-cv CANN Simulator是一款面向算子开发场景的SoC级芯片仿真工具,用于分析运行在AI仿真器上的…...

Atom编辑器终极中文汉化指南:告别英文困扰,轻松打造专属编程环境

Atom编辑器终极中文汉化指南:告别英文困扰,轻松打造专属编程环境 【免费下载链接】atom-simplified-chinese-menu Atom 的简体中文汉化扩展,目前最全的汉化包。包含菜单汉化、右键菜单汉化以及设置汉化 项目地址: https://gitcode.com/gh_mirrors/at/a…...

Video DownloadHelper CoApp终极指南:轻松下载网络视频的完整教程

Video DownloadHelper CoApp终极指南:轻松下载网络视频的完整教程 【免费下载链接】vdhcoapp Companion application for Video DownloadHelper browser add-on 项目地址: https://gitcode.com/gh_mirrors/vd/vdhcoapp Video DownloadHelper CoApp是一款功能…...

【Pocket Flow】源码剖析(二):批量与异步——BatchNode、AsyncNode 与并行执行

【Pocket Flow】源码剖析(二):批量与异步——BatchNode、AsyncNode 与并行执行 写在前面:第一篇我们拆解了 Pocket Flow 的三大核心抽象——Node、Flow 和 Shared Store,理解了 100 行代码的骨架。今天,我们…...

CANN ops-nn ELU梯度算子

EluGrad 【免费下载链接】ops-nn 本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-nn 📄 查看源码 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/A…...

从接入到观测Taotoken为开发者提供了完整的使用体验

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 从接入到观测:Taotoken为开发者提供了完整的使用体验 对于开发者而言,选择一个模型服务平台,其…...

多中心COVID-19 CT分类的异构集成方法解析

1. 项目概述:多中心COVID-19 CT分类的异构集成方法在医疗影像分析领域,COVID-19的快速准确诊断一直是临床实践中的关键挑战。传统的RT-PCR检测虽然作为金标准,但其较长的周转时间(通常需要48-72小时)和高达30%的假阴性…...

差分编码在40Gbps光通信中的实现与优化

1. 差分编码的核心原理与工程价值差分编码作为数字通信系统的基石技术,其数学本质是模2加法运算的链式反应。给定输入比特序列d_k,输出编码序列c_k满足递归关系:c_k c_{k-1} ⊕ d_k。这个看似简单的公式却解决了通信工程中的关键难题——相位…...

pi0机器人VLA大模型昇腾推理优化

pi0机器人VLA大模型推理昇腾迁移-性能优化说明 【免费下载链接】cann-recipes-embodied-intelligence 本项目针对具身智能业务中的典型模型、加速算法,提供基于CANN平台的优化样例 项目地址: https://gitcode.com/cann/cann-recipes-embodied-intelligence pi…...

如何用FastbootEnhance轻松管理Android设备:Windows终极图形化工具箱指南

如何用FastbootEnhance轻松管理Android设备:Windows终极图形化工具箱指南 【免费下载链接】FastbootEnhance A user-friendly Fastboot ToolBox & Payload Dumper for Windows 项目地址: https://gitcode.com/gh_mirrors/fa/FastbootEnhance 还在为复杂的…...

3步掌握鼠标键盘自动化神器,彻底告别重复劳动

3步掌握鼠标键盘自动化神器,彻底告别重复劳动 【免费下载链接】KeymouseGo 类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input 项目地址: https://gitcode.com/gh_mirrors/ke/KeymouseGo 你是否厌倦了每天…...

AI 术语通俗词典:导数

导数是微积分、机器学习、深度学习和人工智能中非常基础的一个术语。它用来描述:当一个输入变量发生微小变化时,函数输出会怎样变化。 换句话说,导数是在回答:如果把输入稍微往前推一点,结果会变大、变小,还…...

深度解析 MCP 协议:如何通过 Model Context Protocol 实现 AI Agent 的工具调用标准化

深度解析 MCP 协议:如何通过 Model Context 协议实现 AI Agent 的工具调用标准化 摘要: 随着大语言模型(LLM)能力的飞速提升,如何让 AI 能够更安全、更高效地访问外部工具和数据成为了 AI Agent 领域的核心挑战。Model…...

开源AI智能眼镜开发实战:OpenVision项目架构与集成指南

1. 项目概述:当智能眼镜遇见开源AI大脑如果你和我一样,对Meta Ray-Ban智能眼镜的硬件设计爱不释手,却又对Meta AI的封闭生态和功能限制感到束手束脚,那么OpenVision这个项目,可能就是你在寻找的“终极解药”。简单来说…...

市场热门的台式离子风机公司

开篇:定下基调随着半导体、电子制造、生物医药等行业对生产环境静电控制要求日益严苛,台式离子风机作为桌面工位、小型生产线核心的静电消除设备,其性能直接影响产品良品率与生产效率。为帮助消费者精准选择适合的产品,我们针对市…...

5分钟快速上手:Windows离线实时字幕工具TMSpeech完全指南

5分钟快速上手:Windows离线实时字幕工具TMSpeech完全指南 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 还在为会议记录而烦恼吗?是否经常因为网络不稳定而无法使用云语音识别服务&#xff…...

Hermes Agent工具接入Taotoken聚合平台的具体配置步骤详解

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Hermes Agent工具接入Taotoken聚合平台的具体配置步骤详解 本教程将逐步演示如何将 Hermes Agent 工具的后端切换至 Taotoken 平台…...