AI观测

AI观测是一种用于实现AI应用程序全生命周期性能观测、诊断与优化的高级分析工具。通过深入追踪AI模型在训练及推理阶段的跨层软件栈调用轨迹(涵盖Python栈、Torch层、显存、CudaRuntime、GPU核函数、RDMA等信息),结合细粒度的算子级性能指标(如FLOPs、计算/通信/显存/空闲时间占比等)及资源消耗数据,为开发者和运维团队提供端到端的解决方案。

使用限制

  • 地域限制

    本功能目前仅支持中国内地与中国香港。

  • 操作系统限制

    架构

    操作系统

    x86

    • Alibaba Cloud Linux 3 容器优化版

    • Alibaba Cloud Linux 2/3

    • Alibaba Cloud Linux 3 pro

    • CentOS 7/8

  • 其他限制

    • 显卡类型:GPU(A卡、H卡、L卡、Tesla)、PPU。

    • Python版本:python 3.9~python 3.12。

    • Torch版本:2.1+。

    • Cuda版本:12.x.x。

    • AI作业在容器中运行,容器应以root用户权限运行。

功能优势

  • 零侵入:采用无侵入式Profiling技术,您无需对容器做任何变更。

  • 丰富性:支持按需采集Python调用栈、CPU信息、GPU算子、Torch、显存及FLOPS等指标。同时,RDMA、GPUCPU监控指标也支持按需采集。

  • 中心端分析:对采集的原始数据自动在中心端进行统计分析,多维度展示作业真实情况。

  • 易用性:全流程实现分钟级自动完成。只需在前端配置实例ID,即可自动触发AI Profiling。采集完成后,数据将自动回传至中心端,分析完成后生成的报告将在前端显示。此外,系统自带TimeLine视图,无需额外将数据拷贝至Chrome Tracing/Perfetto等组件。

  • 稳定性:已在千卡集群中完成部署验证,对AI作业零影响。

  • 多维度采集:支持按时间采集和按迭代采集两种采集维度。同时支持自定义迭代入口以及跳过前n迭代等高级配置。

  • 低开销:采集数据的丰富度可根据需求进行配置,启动采集时系统开销范围为5%~40%。

  • 多进程支持:支持多进程同时采集。

资源消耗

AI观测采用动态资源调整机制,根据任务负载自动扩展至1.4 GB内存和1CPU(1.4G1C),并在任务完成或负载下降后自动缩容至初始配置。

应用场景

本文列举了部分常见的场景,您可以利用该功能进行诊断分析,并根据建议采取相应措施以解决问题。

  • 在您完成AI场景的部署后发生故障。

  • AI的处理速度不如预期。

  • 检查当前服务器的瓶颈,以确定是否某个算子耗时较长。

前提条件

  • 如果您使用RAM用户,请确保阿里云账号(主账号)已将系统策略AliyunECSReadOnlyAccessAliyunSysomFullAccess授予RAM用户

  • 已开通控制台权限。

    首次登录操作系统控制台时,单击开通服务以开通控制台服务。

操作步骤

  1. 访问操作系统控制台-AI观测

  2. 选择或输入条件,单击开始分析

    参数说明

    • 实例ID:选择该账户下已纳管的实例ID,该实例应配备GPU,并且正在执行AI作业。

    • 支持填写AI作业PIDAI作业进程名指定AI作业,可填写多个AI作业PIDAI作业进程名,多个AI作业PIDAI作业进程名之间以,分隔。如果同时填写了AI作业PIDAI作业进程名,系统将在执行分析时取其并集进行处理。

      说明

      您可以执行top命令,在PID列中查看AI作业的进程ID,并在COMMAND列中查看AI作业的进程名。

    • 数据丰富度:可根据需求选择GPU算子、Python调用栈、CPU信息、Torch显存及浮点运算次数,支持多重选择。

    • 分析模式:

      • duration模式

        按照时间区间采集,以毫秒为单位,当前支持1000毫秒~5000毫秒的分析。

      • iteration模式

        • 迭代范围:默认采集0~10个迭代,支持跳过前n个迭代。迭代数指数据采集模块激活时的迭代次数,独立于AI作业的迭代计数。

        • 迭代入口模块:例如:transformers.trainer

        • 迭代入口函数:

          • vllm推理场景默认为LLMEngine.step

          • 训练场景默认为Optimizerstep

    • 采集时长:默认为2000毫秒,您可以根据实际业务需求调整分析时长,目前支持的范围为1000毫秒~5000毫秒的分析。

  3. 分析记录区域,单击查看报告

结果分析说明

  • 分析建议

    本次AI作业分析建议,如下图所示。

    image

  • CPU/GPU Summary

    设备信息、函数调用时间统计(us)和GPU利用率,如下图所示。

    image

  • GPU Kernel分析

    GPU内核函数调用时间统计图 (us)、Tensor Cores 使用时间统计图 (us)、函数调用时间统计 (us)和GPU Kernel函数信息,如下图所示。

    image

  • 迭代统计与差分分析

    • AI迭代统计

      基于Iteration标记对训练推理过程进行锚定,针对每一个迭代进行单独的统计分析,计算每个迭代的损失值以及计算、存储和通信的耗时。同时,将这些数据汇总为柱状图,以便能够直观地识别出哪个迭代的梯度出现异常,或哪个迭代的通信时间占比异常突出。您可以拖动以下滑轨查看具体迭代次数数据,如下图所示。

      image

      • 训练作业系统默认以Optimizerstep为迭代分界点。

      • 推理作业系统默认以LLMEngine.step函数为分界点。

    • AI差分分析

      AI Profiling采集的TimeLine数据非常复杂且数据量巨大(达到GB级),这使得分析工作变得困难。在性能对比或异常分析的场景中,传统方式难以快速识别出两份数据的差异点。通过AI差分分析对比异常迭代与正常迭代的核函数耗时及调度差异,精准定位跨迭代间性能差异的根源函数,实现训练瓶颈的快速定位与优化决策。

      选择基线Step和对比Step后,单击提交。例如,选择基线Step为正常迭代,选择对比Step为异常迭代进行对比,如下图所示。

      image

      参数

      说明

      名称

      根源函数。

      基线Step

      正常/异常迭代的耗时、占比,以及调用次数和占比。

      对比Step

      耗时差异

      基线Step与对比Step耗时和占比的差异。

      调度差异

      基线Step与对比Step调用次数和占比的差异。

  • CPU/GPU Tracing分析

    无需再打开Chrome Tracing/Perfetto。采集数据类型可按需配置,支持Python调用栈、CPU信息、GPU算子、Torch、显存、FLOPS

    image.png

    image.png