PARAM
PARAM基准测试是一个包含通信和计算微基准测试以及完整工作负载的代码库,用于评估训练和推理平台。
PARAM补充了两大类常用的基准测试:
- 基于C++的独立计算和通信基准测试,使用cuDNN、MKL、NCCL、MPI等库 - 例如NCCL测试(https://github.com/NVIDIA/nccl-tests)、OSU MPI基准测试(https://mvapich.cse.ohio-state.edu/benchmarks/)和DeepBench(https://github.com/baidu-research/DeepBench)。
- 应用程序基准测试,如深度学习推荐模型(DLRM)和更广泛的MLPerf基准测试。值得注意的是,虽然MLPerf是用于基准测试机器学习应用的事实上的行业标准,但我们希望通过这个应用程序基准测试分支,补充更多Facebook感兴趣的广泛工作负载,并对每个工作负载进行更深入的分析。
我们首次发布的PARAM基准测试专注于AI训练,包括:
- 通信:基于PyTorch的集体通信基准测试,涵盖任意消息大小、计算-通信重叠的有效性,以及DLRM在前向/反向传播中的通信模式
- 计算:基于PyTorch的GEMM、嵌入查找和线性层
- DLRM:跟踪DRLM基准测试的
ext_dist
分支,使用Facebook的DLRM基准测试(https://github.com/facebookresearch/dlrm)。简而言之,PARAM完全依赖DLRM基准测试进行端到端工作负载评估;并根据需要为大规模AI训练平台进行额外扩展。 - 基于PyTorch执行跟踪(ET)回放的测试:最近引入的PyTorch ET捕获功能允许在操作符级别记录模型的运行时信息。这一功能使得创建基于回放的基准测试(https://dl.acm.org/doi/abs/10.1145/3579371.3589072)成为可能,从而准确地重现原始性能。
本质上,PARAM弥补了独立C++基准测试与基于PyTorch/Tensorflow的应用程序基准测试之间的差距。这使我们能够深入了解系统架构的内部运作,并通过对系统的所有子组件施加压力来识别框架级别的开销。
版本
0.1:初始发布
要求
- pytorch
- future
- numpy
- apex
许可证
PARAM基准测试在MIT许可证下发布。更多信息请参见LICENSE
文件。
贡献
我们热烈欢迎您的拉取请求!更多信息请参见CONTRIBUTING.md
和CODE_OF_CONDUCT.md
。