昇腾Profiling性能分析工具使用问题案例

昇腾Profiling性能分析工具用于采集和分析运行在昇腾硬件上的AI任务各个运行阶段的关键性能指标, 用户可根据输出的性能数据,快速定位软、硬件性能瓶颈,提升AI任务性能分析的效率。具体使用方法请参考:

 

本期分享几个关于Profiling性能分析工具使用过程中的常见问题案例,并给出原因分析及解决方法。

1 执行msprof命令未采集到AI Core Metrics数据

故障现象

执行msprof命令后,屏幕显示性能解析数据,但无AI Core Metrics数据。查看$HOME/ascend/log/plog路径下Host侧日志信息,有如图1-1所示内容。其中,$HOME表示Host侧用户根目录。

图1.1 aclInit函数初始化日志信息

故障原因

通过日志分析,可能原因为代码实现时,调用aclInit函数在aclrtSetDevice函数后面,造成Runtime无法下发AI Core性能数据采集开关任务,造成无法采集AI Core数据。

故障处理

针对上述分析情况,请调整代码,确保aclInit函数最先调用,然后重新编译代码、执行Profiling。

2 磁盘满导致性能数据采集任务无法下发

故障现象

训练场景下发性能数据采集过程中,出现如图2-1所示错误提示。

图2.1 错误提示:No usable temporary directory

故障原因

出现“No usable temporary directory”错误提示,可能原因是系统盘空间已满。

故障处理

请参考以下流程处理该问题:

  1. 清理系统盘目录下无用文件。

执行df -h命令查询磁盘是否有剩余空间。

----结束

3  性能数据老化导致无法正常解析数据

故障现象

性能数据解析失败。

故障原因

当性能数据超过storage_limit参数限定的最大值或剩余磁盘空间较小时,最早的性能数据开始自动老化删除。

默认情况下,解析从--iteration-id=1开始,而老化同样从--iteration-id=1开始,故当第1轮迭代或前面几轮迭代的数据被老化后,未指定--iteration-id或指定前面几轮迭代进行解析时,解析将会失败。

故障处理

  1. 执行./msprof --query=on --output=<dir>命令查看最大迭代轮数(Iteration Number)。

  2. 解析迭代ID最大的性能数据。

4  Ascend PyTorch Profiler采集过程中提示:Incorrect schedule

故障现象

使用Ascend PyTorch Profiler接口采集PyTorch性能数据过程中,打印“Incorrect schedule”提示信息,如下图所示:

添加图片注释,不超过 140 字(可选)

profiler.py: Incorrect schedule: Stop profiler while current state is WARMUP which will result in enpty parsed data.

添加图片注释,不超过 140 字(可选)

profiler.py: Incorrect schedule: Stop profiler while current state is RECORD which may result in incomplete parsed data.

添加图片注释,不超过 140 字(可选)

profiler.py: Stop profiler while current state is RECORD_AND_SAVE, perhaps the scheduling sycle has not yet completed.

故障原因

设置的schedule参数不合理,导致Profiler尚未完成设置的schedule周期就提前退出。如下面的案例所示:

实际模型训练step为1,但是设置schedule中skip_first=1, active=2,此时Profiler在刚好处于RECORD状态(准备好采集),但是训练进程已经退出,所以导致性能数据缺失或者为空的情况。

故障处理

检查设置的schedule是否正确,确保Profiler完成schedule后还有足够的step用于性能数据采集。

5 更多介绍

[1]昇腾文档中心:昇腾社区-官网丨昇腾万里 让智能无所不及

[2]昇腾社区在线课程:开发者主页-昇腾社区

[3]昇腾论坛:https://www.hiascend.com/forum

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/251633.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

知识付费小程序开发:构建个性化学习平台的技术实践

随着在线学习和知识付费的兴起&#xff0c;开发一款知识付费小程序成为了创新的热点之一。本文将通过使用Node.js、Express和MongoDB为例&#xff0c;演示如何构建一个基础的知识付费小程序后端&#xff0c;并实现用户认证和知识内容管理。 1. 初始化项目 首先&#xff0c;确…

【C语言】——认识指针变量和地址,以及指针变量类型的意义

&#x1f3a5; 岁月失语唯石能言的个人主页 &#x1f525;个人栏专&#xff1a;秒懂C语言 ⭐若在许我少年时&#xff0c;一两黄金一两风 目录 前言 一、指针变量和地址 1.1 取地址操作符&#xff08;&&#xff09; 1.2 指针变量和解引用操作符&#xff…

【vmware】虚拟机固定ip和网络配置

废话不多说&#xff0c;直接干货 桥接模式不多说&#xff0c;动态ip&#xff0c;一般一键下一步就可 本文主要讲 NAT模式下 静态IP设置及公网问题 创建虚拟机 查看ip ip a 或者 ifconfig 设置静态ip 1.设置虚拟机网络 点击上图中NAT设置&#xff0c;配置网关IP&#xff08;vmv…

【改进YOLOv8】生猪胖瘦评价分级系统:可重参化EfficientRepBiPAN优化Neck

1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义&#xff1a; 随着计算机视觉和深度学习的快速发展&#xff0c;目标检测成为了计算机视觉领域的一个重要研究方向。目标检测的目标是在图像或视频中准确地识别和定…

DL Homework 11

由于好多同学问我要代码&#xff0c;但这两天光顾着考四六级了&#xff0c;所以只能今天熬夜先给赶出来&#xff0c;第一题先搁置&#xff0c;晚点补上&#xff0c;先写第二题 习题6-4 推导LSTM网络中参数的梯度&#xff0c; 并分析其避免梯度消失的效果 习题6-3P 编程实现…

pat 乙级 1018 锤子剪刀布

解题思路&#xff0c;这题你硬比也可以&#xff0c;用技巧减少比较也可以&#xff0c;总共有九种情况 去掉 都相同的 还有6种&#xff0c;我的想法是这样 把 B C J 转换成了0 1 2&#xff0c;这样我们只要看他们大小就行&#xff0c;如果前面的比后面的小并且只差1,那就是前面的…

Java 并发编程(六)-Fork/Join异步回调

一、并发编程 1、Fork/Join分支合并框架 Fork/Join它可以将一个大的任务拆分成多个子任务进行并行处理&#xff0c;最后将子任务结果合并成最后的计算结果&#xff0c;并进行输出。Fork/Join框架要完成两件事情&#xff1a; Fork&#xff1a;把一个复杂任务进行分拆&#xff0…

一文搞懂Android和嵌入式Linux开发差异点

前言 因业务需要&#xff0c;过去一年从熟悉的Android开发开始涉及嵌入式Linux开发&#xff0c;编程语言也从Java/Kotlin变成难上手的C&#xff0c;这里面其实有很多差异点&#xff0c;特此整理本文来详细对比这两者开发的异同&#xff0c;便于对嵌入式Linux开发感兴趣的同学一…

Java 多线程学习(三)

目录 一、多线程 1、深入synchronized 1.1、synchronized的优化 1.2、synchronized实现原理 1.3、synchronized的锁升级 1.4、重量锁底层ObjectMonitor 一、多线程 1、深入synchronized 1.1、synchronized的优化 在JDK1.5的时候&#xff0c;Doug Lea推出了ReentrantLoc…

Redis核心知识小结

基础 redis为什么快呢&#xff1f; 单线程基于io多路复用底层C语言对数据结构做了优化完全内存的操作 Redis6.0使用多线程是怎么回事? Redis不是说用单线程的吗&#xff1f;怎么6.0成了多线程的&#xff1f; Redis6.0的多线程是用多线程来处理数据的读写和协议解析&#x…

【算法笔记】动态规划,使用最小花费爬楼梯,详细刨析。

1.题目描述 给你一个整数数组 cost &#xff0c;其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用&#xff0c;即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 请你计算并返回达到楼梯顶部的最低花费。 示…

linux 开机启动流程

1.打开电源 2.BIOS 有时间和启动方式 3.启动Systemd 其pid为1 4.挂载引导分区 /boot 5.启动各种服务 如rc.local

STM32 EC200 物联网项目实操 第2篇 FTP OTA升级

背景&#xff1a; 做了个物联网项目&#xff0c;需要做个OTA升级&#xff0c;程序分为两部分&#xff0c;一部分是BOOT引导程序&#xff0c;一部是主程序&#xff0c;在BOOT引导程序里面实现了和EC200 4G模块通讯&#xff0c;和FTP服务器通讯&#xff0c;获取OTA升级BIN文件。主…

【前端八股】系列之性能指标与评估工具

【前端八股】系列之性能指标与评估工具 前言性能指标的定义和特性性能指标的分类实验室指标真实指标用户感知指标评估工具 前言 这里是以前自己关于性能指标与评估工具的相关笔记&#xff0c;下面主要是关于性能指标的定义与特性以及相关的评估工具&#xff0c;并没有记录深入…

人工智能_机器学习065_SVM支持向量机KKT条件_深度理解KKT条件下的损失函数求解过程_公式详细推导---人工智能工作笔记0105

之前我们已经说了KKT条件,其实就是用来解决 如何实现对,不等式条件下的,目标函数的求解问题,之前我们说的拉格朗日乘数法,是用来对 等式条件下的目标函数进行求解. KKT条件是这样做的,添加了一个阿尔法平方对吧,这个阿尔法平方肯定是大于0的,那么 可以结合下面的文章去看,也…

mysql8支持远程访问

上面的localhost要改为%号就打开了远程访问 ALTER USER root% IDENTIFIED WITH mysql_native_password BY fengzi2141;

vite原理

一、依赖预构建 1、为什么需要依赖预构建 CommonJS和UMD兼容性 在开发阶段中&#xff0c;vite的开发服务器将所有的代码视为原生ES模块。因此&#xff0c;vite必须先将作为CommonJS或者UMD发布的依赖项转换为ESM。 这是vite的一个特色&#xff0c;也是为什么会相对于webpack比…

Android动画(一)——逐帧动画

目录 介绍 Android动画类型分类 逐帧动画 逐帧动画的使用 效果图 介绍 Android动画是一种用于创建视觉效果和交互体验的技术&#xff0c;可以增强用户界面的吸引力和响应性。Android提供了丰富的动画框架和API&#xff0c;使开发者可以轻松地添加动画效果到他们的应用程序中…

n维随机变量、n维随机变量的分布函数

设随机试验E的样本空间是&#xff0c;其中表示样本点。 设是定义在上的随机变量&#xff0c;由它们构成一个n维向量&#xff0c;叫做n维随机向量&#xff0c;也叫n维随机变量。 对于任意n个实数&#xff0c;n元函数 称为n维随机变量的分布函数&#xff0c;也叫联合分布函数。

springCloud项目打包如何把jar放到指定目录下

springCloud项目打包如何把jar发放到指定目录下 maven-antrun-plugin springCloud微服务打包jar&#xff0c;模块过多&#xff1b;我的项目模块结构如下&#xff1a; 我把实体类相关的单独抽离一个模块在service-api下服务单独写在service某块下&#xff0c; 每个模块的jar都…