Dynolog 开源项目教程
1. 项目介绍
Dynolog 是一个用于性能监控和追踪的轻量级守护进程,专为异构 CPU-GPU 系统设计。它能够从系统的不同组件(如 Linux 内核、CPU、磁盘、Intel PT、GPU 等)导出指标。Dynolog 还与 PyTorch 集成,能够为分布式训练应用程序触发追踪。
Dynolog 的主要特点包括:
- 支持持续性能监控和深度剖析模式。
- 通过远程过程调用激活剖析模式。
- 与 PyTorch Profiler 集成,提供按需远程追踪功能。
- 支持 NVIDIA GPU 的性能监控。
- 管理与 CPU 缓存、TLB 等相关的微架构性能事件。
- 从 Linux 内核中获取 CPU、网络和 IO 资源使用情况。
2. 项目快速启动
安装 Dynolog
Dynolog 可以通过包管理器安装,支持 CentOS 和 Ubuntu 等 Linux 发行版。以下是安装步骤:
对于 CentOS:
wget https://github.com/facebookincubator/dynolog/releases/download/v0.2.1/dynolog-0.2.1-1.el8.x86_64.rpm
sudo rpm -i dynolog-0.2.1-1.el8.x86_64.rpm
对于 Ubuntu 或类似 Debian 的 Linux 发行版:
wget https://github.com/facebookincubator/dynolog/releases/download/v0.2.1/dynolog_0.2.1-0-amd64.deb
sudo dpkg -i dynolog_0.2.1-0-amd64.deb
运行 Dynolog
启动 Dynolog 服务:
sudo systemctl start dynolog
检查 Dynolog 服务状态:
dyno status
3. 应用案例和最佳实践
案例1:分布式训练监控
在分布式训练环境中,Dynolog 可以与 PyTorch 集成,监控和追踪 GPU 性能。以下是启用 PyTorch 剖析的步骤:
-
在 Dynolog 服务中启用 IPC 监控:
echo "--enable_ipc_monitor" | sudo tee -a /etc/dynolog.gflags sudo systemctl restart dynolog
-
使用兼容的 PyTorch 版本(v1.13.0 及以上),并设置环境变量:
export KINETO_USE_DAEMON=1
-
运行 PyTorch 程序并使用
dyno gputrace
命令捕获追踪:dyno gputrace --pids <pid of process> --log_file <output file path>
案例2:系统性能监控
Dynolog 可以持续监控系统性能,包括 CPU、GPU、磁盘和网络等资源的使用情况。通过分析日志文件,可以识别系统中的性能瓶颈。
4. 典型生态项目
PyTorch
Dynolog 与 PyTorch 深度集成,支持分布式训练的性能监控和追踪。通过与 PyTorch Profiler 的结合,Dynolog 能够提供详细的 GPU 性能数据,帮助优化训练过程。
NVIDIA DCGM
Dynolog 使用 NVIDIA Data Center GPU Manager (DCGM) 来监控 NVIDIA GPU 的性能。DCGM 提供了丰富的 GPU 性能指标,Dynolog 能够将这些指标导出并进行分析。
Linux Perf
Dynolog 利用 Linux 的 perf_event 接口来获取 CPU 性能监控单元 (PMU) 的指标。这使得 Dynolog 能够监控 CPU 的微架构性能事件,如缓存命中率、TLB 访问等。
通过这些生态项目的集成,Dynolog 能够提供全面的系统性能监控和剖析功能,帮助用户优化和调试复杂的计算任务。