param
Meta 开源的系统级 AI 训练与推理基准测试平台,三层覆盖通信、计算与端到端工作负载
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Meta 开源的系统级 AI 训练与推理基准测试平台,三层覆盖通信、计算与端到端工作负载
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

图 1:Meta AI Research 团队项目标识
如果你是一名 AI 基础设施工程师,正在评估公司新采购的 GPU 集群性能,你会怎么做?跑几个 PyTorch 训练脚本,看看每秒处理多少样本?可惜事情没这么简单——现代分布式训练系统的性能瓶颈,可能藏在 NCCL 通信的某个角落、cuDNN 卷积核的某个实现里,甚至是 PyTorch 框架本身引入的 operator 开销中。现有 benchmark 各有局限:DeepBench 这类 C++ 基准测试纯看计算,粒度太粗;MLPerf 虽然权威,但覆盖范围有限且运行成本高。
Facebook AI Research(Meta)团队正是带着这个痛点,在 2020 年推出了 PARAM(PArametrized Recommendation and AI Model Benchmark)。他们的目标很明确:做一套既能钻到系统底层细节、又能端到端跑真实工作负载的基准测试工具,填补 C++ 微基准与 PyTorch 应用基准之间的空白。
PARAM 本质上是一个PyTorch 原生的多层次基准测试框架,同时也是一个分布式 AI 训练/推理性能分析工具包。它分为三大核心模块:
训练基准测试(train/):
dist_exp 分支构建,支持多节点 MPI 启动,是目前最接近生产环境的基准测试场景。推理基准测试(inference/):推理侧基准模块,当前包含 compute 子目录,用于评估推理场景下的算子性能。
PyTorch 执行轨迹重放(et_replay/):这是 PARAM 中最独特也最前沿的组件。它利用 PyTorch 新引入的 Execution Trace(ET)采集能力,在真实训练过程中记录 operator 级别的运行时信息,然后通过 Chakra Replay 工具进行重放。好处是:无需真实 GPU 集群,也能在任意时刻、任意节点数下还原训练过程的性能画像。目前支持 ResNet 等主流模型的 ET traces 重放,分析时推荐使用 Kineto traces(--profile-replay)来获得更精确的数值。
PARAM 的代码组织非常模块化,每一层都有清晰的职责边界:
param/
├── train/
│ ├── comms/pt/ # PyTorch 通信基准(65KB+ comms.py)
│ │ ├── comms.py # 集合通信主逻辑
│ │ ├── commsTraceParser.py # 通信轨迹解析
│ │ ├── commsTraceReplay.py # 通信轨迹重放
│ │ ├── pytorch_dist_backend.py # NCCL 分布式后端
│ │ ├── pytorch_nvshmem_backend.py # NVSHMEM 后端
│ │ └── pytorch_tpu_backend.py # TPU 后端
│ ├── compute/pt/ # PyTorch 计算基准
│ │ ├── pytorch_gemm.py # GEMM 基准
│ │ ├── pytorch_emb.py # Embedding 基准
│ │ └── pytorch_cvt_convs.py # 卷积转换基准
│ └── workloads/dlrm/ # DLRM 端到端工作负载
├── inference/compute/ # 推理计算基准
├── et_replay/ # 执行轨迹重放工具
│ ├── execution_trace.py # ET 采集核心(39KB)
│ ├── commsTraceParser.py # 通信轨迹解析
│ ├── comms_utils.py # 通用通信工具(60KB)
│ └── configs/ # 重放配置
└── env_setup.sh # 环境初始化(CUDA/MPI 路径设置)
关键设计特点:
PARAM 主要面向以下用户:
典型使用方式:
训练基准测试通过 conda 环境 + mpirun 启动分布式任务。通信基准的用法示例(单 GPU NCCL 测试):
# 在 train/comms/pt/ 下
python comms.py --backend nccl --nproc 8 --warmup 10 --iters 100
DLRM 工作负载的多节点启动示例:
mpirun -np 128 -hostfile hostfile python dlrm_s_pytorch.py --arch-sparse-feature-size=128 --arch-mlp-bot="2000-1024-1024-128" --arch-embedding-size=$large_arch_emb --use-gpu
et_replay 需要先单独安装 Chakra Replay 工具包,通过 conda 环境隔离运行。
依赖环境:CUDA 11+、cuDNN、NCCL、OpenMPI、PyTorch,以及支持 CUDA 的 NVIDIA GPU。没有 Docker 支持,也没有 Web UI,纯命令行工具。
PARAM 不是一个开箱即用的"一键跑分"工具。它的局限性很明显:
/usr/local/fbcode/platform010),非 Meta 工程师在开源版本上需要自行适配。PARAM 代表了 AI 基准测试从"粗粒度评分"向"细粒度诊断"的进化方向。它不仅告诉你"这台机器每秒跑多少样本",更揭示"通信占比是多少、哪个算子拖了后腿、框架层有多少开销"。这种透明度对于优化大规模分布式训练至关重要。
从 GitHub 动态来看(最近更新 2026-07-02),项目仍处于活跃维护状态,et_replay 模块的持续迭代表明 Meta 在推进执行轨迹标准化。随着 AI 基础设施规模越来越大,这类工具的价值会愈发凸显——你不是在买 GPU,你是在理解 GPU。
本报告基于 GitHub 开源代码仓分析生成,数据来源:facebookresearch/param(155★,67 forks,MIT License)