Overview
February 7, 2026 · View on GitHub
This is a visualization tool for pipeline parallelism debug and analysis, helping users to easily find pp-related performance bottlenecks and optimization possibilities.
Quick Start
Visualize training perf
-
Dump pp schedule data to
output/pp_datawithargs.dump_pp_datain training taskoutput/pp_data ├── config.json ├── pp_rank_0.json ├── pp_rank_1.json └── ... -
Build local python environment on PC
pip install -r requirements.txt -
Configure
task_listinvis.pytask_list = [ { "title": "pp8", "iter_to_vis": [i for i in range(7, 8)], "log_path": "pp_data_example/gpu8_layer64_gbs16/pp8", }, { "title": "pp8_vpp2", "iter_to_vis": [i for i in range(7, 8)], "log_path": "pp_data_example/gpu8_layer64_gbs16/pp8_vpp2", }, ] -
Run visualization
python vis.py # Then open http://127.0.0.1:8988 on browser
Visualize PP simulator
-
Run simulator to get simulator result in json format
#export PYTHONPATH=. python3 primus/core/projection/performance_projection/simulator.py --config=primus/core/projection/configs/pp_simulation.yaml -
Run visualization
python3 tools/visualization/pp_vis/vis.py --config=primus/core/projection/configs/pp_simulation.yaml
Examples
-
Visualize different iterations in one training task
task_list = [ { "title": "pp8", "iter_to_vis": [i for i in range(1, 3)], "log_path": "pp_data_example/gpu8_layer64_gbs16/pp8", }, ]
-
Visualize different schedules among training tasks
task_list = [ { "title": "pp8", "iter_to_vis": [i for i in range(7, 8)], "log_path": "pp_data_example/gpu8_layer64_gbs16/pp8", }, { "title": "pp8_vpp2", "iter_to_vis": [i for i in range(7, 8)], "log_path": "pp_data_example/gpu8_layer64_gbs16/pp8_vpp2", }, ]
-
Visualize simulated different PP algorithms
