witty-profiler与Anansi系统集成:统一拓扑图的构建与应用

发布时间:2026/7/1 19:50:23
witty-profiler与Anansi系统集成:统一拓扑图的构建与应用 witty-profiler与Anansi系统集成统一拓扑图的构建与应用【免费下载链接】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训练和推理系统的自动化数据与控制流拓扑检测及瓶颈分析工具通过与Anansi系统集成能够构建全面的系统拓扑图为AI系统性能优化提供关键洞察。本文将详细介绍两者集成的核心机制、拓扑图构建流程以及在实际场景中的应用方法。一、Anansi系统与witty-profiler集成的核心价值Anansi系统作为AI训练环境的底层感知框架与witty-profiler的集成实现了112的效果。通过这种深度整合用户可以获得统一的系统视图整合NPU/CPU设备、进程、网络连接等多层次实体信息精准的数据流追踪从底层硬件到应用层的端到端数据路径可视化智能瓶颈定位基于拓扑特征自动识别通信、计算、内存等性能瓶颈Anansi系统提供的基础实体数据与witty-profiler的分析能力相结合形成了完整的AI系统性能诊断闭环。二、统一拓扑图的构建流程2.1 数据采集与实体识别witty-profiler通过多种采集器获取系统运行时数据主要包括硬件层信息通过npu_inference_runtime_collector.py采集NPU设备信息如PCI总线ID、CPU亲和性等进程信息通过ProcessEntity记录进程ID、命令行参数、父子关系等网络连接通过socket_collector.py捕获TCP/UDP连接信息这些原始数据经过处理后形成Anansi系统定义的标准化实体如NPUEntity、ProcessEntity、SocketEntity等。2.2 拓扑图生成与存储采集到的实体数据通过graph_format_converter.py转换为统一的JSON格式拓扑图典型输出文件为topology_graph.json完整的结构化拓扑数据topology_graph.txt人类可读的文本摘要拓扑图JSON文件包含nodes和edges两大核心部分其中nodes定义系统实体edges描述实体间的关系。以下是一个简化的NPU实体示例{ entity_namespace: local, entity_type: NPUEntity, device_id: device-id-unknown, device_type: npu, pci_bus_id: 0000:C1:00.0, id: 0, cpu_affinity: 144-167 }2.3 拓扑图可视化与分析生成的拓扑图可通过witty-profiler的可视化模块进行展示主要工具包括default_renderer.py默认拓扑渲染器html_renderer.pyHTML交互式可视化drawio_renderer.py导出为drawio格式这些工具帮助用户直观理解系统结构识别潜在的性能瓶颈。三、拓扑图的关键应用场景3.1 系统架构分析通过分析拓扑图中的实体分布和连接关系可以快速掌握AI训练系统的整体架构。例如从NumaEntity节点的distance_to_all_numa属性可以了解NUMA架构的内存访问延迟特征帮助优化数据布局。3.2 通信瓶颈识别基于拓扑图中的SocketEntity和通信路径可以识别系统中的通信热点。witty-profiler提供了专门的通信瓶颈分析工具python scripts/graph_format_converter.py graph.json --network该命令会分析拓扑图中的网络连接生成通信流量报告帮助定位NCCL/HCCL通信瓶颈。3.3 资源优化与调度拓扑图中的NPUEntity和ProcessEntity信息为资源调度提供了数据支持。通过分析进程与NPU的绑定关系可以优化任务分配策略减少跨NUMA节点的内存访问和设备间的数据传输。四、快速上手从拓扑图生成到分析4.1 生成拓扑图使用witty-profiler采集并生成Anansi拓扑图的基本步骤配置采集器参数cp collector/python/configs/config.sample.json collector/python/configs/config.json启动采集服务python -m witty_profiler获取生成的拓扑图 拓扑图文件默认输出到配置的tmp_dir目录包括topology_graph.json和topology_graph.txt。4.2 基本拓扑分析命令witty-profiler提供了多种命令行工具分析拓扑图生成拓扑摘要python skills/dataflow-topology-restore/scripts/graph_format_converter.py graph.json --summary提取节点信息python skills/dataflow-topology-restore/scripts/graph_format_converter.py graph.json --nodes分析内存使用情况python skills/bottleneck-identification/scripts/graph_format_converter.py graph.json --memory五、高级应用瓶颈识别与性能优化5.1 基于拓扑图的瓶颈分析流程witty-profiler的瓶颈识别Skill提供了系统化的分析方法加载拓扑图数据提取关键性能指标匹配瓶颈模式库生成优化建议详细实现可参考witty_profiler_core.py。5.2 典型案例跨NUMA访问优化通过分析拓扑图中的NumaEntity和ProcessEntity关系发现某进程频繁访问远程NUMA节点内存导致性能下降。解决方案包括调整进程的CPU亲和性优化内存分配策略调整数据分布减少跨NUMA数据传输优化效果可通过重新生成拓扑图进行验证。六、总结与展望witty-profiler与Anansi系统的集成为AI训练系统提供了强大的拓扑分析能力通过构建统一的系统拓扑图用户可以深入理解系统结构精准定位性能瓶颈。未来这一集成方案将进一步增强实时拓扑更新能力更智能的瓶颈预测与AI框架的深度整合通过官方文档和示例代码用户可以快速掌握拓扑图的构建与应用方法为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),仅供参考