witty-profiler技能系统解析数据流拓扑恢复与热点线程发现【免费下载链接】witty-profilerThe witty-profiler is an automated data and control stream topology detection and bottleneck analysis tool for AI training and inferencing systems.项目地址: https://gitcode.com/openeuler/witty-profiler前往项目官网免费下载https://ar.openeuler.org/ar/witty-profiler是一款面向AI训练和推理系统的自动化数据与控制流拓扑检测及瓶颈分析工具其强大的技能系统能够帮助用户深入理解系统运行状态精准定位性能瓶颈。本文将详细解析witty-profiler技能系统中的两大核心功能数据流拓扑恢复与热点线程发现带您轻松掌握AI系统性能分析的关键技能。数据流拓扑恢复构建系统数据流动图谱 技能概述从复杂数据中还原系统拓扑数据流拓扑恢复技能是witty-profiler的核心功能之一它能够从系统采集的海量数据中智能还原AI训练系统的数据流路径和拓扑结构。通过eBPF技术采集系统运行时的拓扑信息构建包含实体Entity和边Edge的图结构帮助用户清晰掌握数据在进程、线程、NPU/GPU、NUMA节点间的流动情况。核心实体与边类型理解拓扑的基本构成在进行数据流拓扑恢复前首先需要了解系统中的核心实体类型和边类型。实体类型包括ProcessEntity进程、ThreadEntity线程、NPUEntityNPU设备、GPUEntityGPU设备、NumaEntityNUMA节点等每种实体都有其独特的标识格式和属性。边类型则分为数据流边和结构边两大类。数据流边如SendToSocketEdgeSocket数据流、NumaAccessEdgeNUMA访问关系等描述了数据的流动方向和方式结构边如HostEdge承载关系、RunOnEdge运行于关系等定义了实体间的部署关系。详细的实体和边类型说明可参考references/anansi-entity-reference.md。三步拓扑还原法轻松掌握拓扑分析流程数据流拓扑恢复采用直观高效的三步分析法第一步Graph解构渐进式加载。面对大规模Graph数据采用渐进式加载策略使用scripts/graph_format_converter.py将JSON格式转换为紧凑格式可节省约80%的上下文提高分析效率。第二步通信路径发现。通过追踪数据流边识别关键通信模式。例如通过AccessEdge追踪NPU访问路径通过NumaAccessEdge分析NUMA访问情况通过SendToSocketEdge发现Socket通信路径。第三步拓扑重建。构建端到端数据流路径输出进程层级树、NPU-NUMA映射表、数据流路径图和性能瓶颈列表等关键信息全面呈现系统拓扑结构。数据流模式识别洞察系统运行特征该技能还能智能识别常见的数据流模式如Tensor Parallel数据流模式其特征为多个Worker进程访问不同的NPU且NPU分布在不同的NUMA节点进程间通过Socket或共享内存通信。此外还能精准识别跨NUMA访问和进程间通信IPC模式为性能优化提供有力依据。热点线程发现精准定位性能瓶颈 技能概述识别系统中的热线程热点线程发现技能专注于从witty-profiler采集的数据中识别AI训练系统中的性能热点线程和进程。通过分析线程的CPU亲和性、NUMA访问模式、上下文切换等关键指标帮助用户区分计算瓶颈、通信瓶颈和内存瓶颈导致的线程热点实现精准的性能优化。线程分类与性能指标建立线程画像AI训练系统中的线程可分为计算线程、通信线程、驱动线程和框架线程等类型每种类型具有独特的特征和性能关注点。例如计算线程通常具有高CPU使用率和低上下文切换的特点而通信线程则表现出中等CPU使用率和高Socket/IPC活动。性能指标体系涵盖CPU使用、上下文切换、内存访问等多个维度如CPU使用率、CPU时间分布、自愿/非自愿上下文切换率、NUMA远端访问率和缓存缺失率等为热点线程识别提供量化依据。三步热点发现法从数据到洞察热点线程发现同样采用三步分析法第一步线程画像渐进式加载。使用紧凑格式转换器或渐进式加载器按需加载线程和进程数据构建包含线程ID、名称、所属进程、CPU亲和性、NUMA访问模式等关键信息的线程画像。第二步热点检测。基于多维度指标制定热点评分规则对每个线程进行评分。评分项包括CPU使用率80%得2分、上下文切换率5000/s得1分、NUMA远端访问20%得2分和LLC缓存缺失2%得1分等根据总分判断热点程度。第三步根因定位。通过条件组合判断瓶颈类型如CPU使用率80%且LLC缓存缺失1%为计算瓶颈CPU使用率80%且LLC缓存缺失1%为内存瓶颈自愿上下文切换多且存在IPC活动为通信瓶颈等。高级分析NUMA亲和性与上下文切换该技能还提供深入的NUMA亲和性分析和上下文切换分析。NUMA亲和性分析通过计算CPU运行时间分布和内存页分布的余弦相似度评估线程的NUMA访问模式上下文切换分析则区分自愿切换和非自愿切换判断切换原因和严重程度为系统优化提供更细致的指导。技能应用提升AI系统性能的实用工具 ️witty-profiler的数据流拓扑恢复和热点线程发现技能为AI训练和推理系统的性能分析提供了强大支持。通过scripts/graph_format_converter.py、scripts/progressive_graph_loader.py等辅助脚本用户可以轻松实现数据格式转换、渐进式加载和线程画像构建等操作快速定位系统瓶颈制定有效的优化策略。无论是构建完整的数据流路径图还是识别关键的热点线程witty-profiler都能为用户提供精准、全面的性能分析结果助力AI系统发挥最佳性能。要开始使用witty-profiler您可以通过以下命令克隆仓库git clone https://gitcode.com/openeuler/witty-profiler探索witty-profiler的技能系统开启您的AI系统性能优化之旅吧【免费下载链接】witty-profilerThe witty-profiler is an automated data and control stream topology detection and bottleneck analysis tool for AI training and inferencing systems.项目地址: https://gitcode.com/openeuler/witty-profiler创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考