文献阅读《Mystique: Enabling accurate and scalable generation of production AI benchmarks》
1. 挑战与贡献 挑战 模型的多样性和更新速度无法与云基础设施上不断变化、高度多样化的人工智能生产工作负载相匹配 工程师或研究人员需要手动选择现有的生产或开源工作负载,并将其调整为可用于基准测试的形式 贡献 框架:建立了一个可扩展的自动化端到端基础设施,可对真实生产型人工智能工作负载的执行轨迹进行剖析和重现 高精度:通过在warehouse-scale fleet中运行的几个 PyTorch 生产工作负载对 Mystique 进行了评估,结果表明,生成的基准在性能和系统级指标方面与原始基准非常接近 可移植性:展示了跨平台生成基准的可移植性,并评估了 Mystique 可应用的几种情况,包括早期平台评估、子轨迹重放和缩小性能测试 2. 相关工作 Benchmark DeepBench:提供了一套深度神经网络(DNN)使用的基本操作,并在不同平台上对其进行了评估 TBD:确定了八个具有代表性的 DNN 模型,并在不同的深度学习框架和硬件配置上进行了详细的性能分析 DAWNBench:测量训练和推理的端到端性能,以规定的精度为前提,允许软件、算法、通信方法的创新 MLPerf:目前最为流行的Benchmark 仿真工具 Sniper:并行、可扩展的CPU仿真工具,对多核和多处理器进行高度抽象 gem5:一种微架构的仿真器,目前适用于仿真GPU GPGPU-Sim:提供一种时钟周期级别的仿真工具,可以对运行CUDA和OpenCL的Nvidia GPU进行仿真 性能建模 Daydream:根据内核-任务依赖图预测模型在某些优化条件下的运行时间 Habitat:使用波形缩放和 MLP 预测 DNN 训练的执行时间 CM-DARE:提出了一种利用云端 GPU 服务器进行分布式训练的性能模型 性能收集 MicroGrad:收集CPU指标,并使用基于梯度下降的调整机制来生成工作负载克隆和压力测试 PerfProx:根据硬件性能计数器得出的性能指标,生成真实世界数据库应用程序的miniature proxies CAMP:模拟核心性能、内存位置以及它们之间的相互作用,以模仿BigData应用程序 ECHO:重点是利用统计模型克隆分布式云应用中的网络行为,并生成与原始服务的定位和流量特征相似的合成基准 Ditto:提出了一种自动克隆框架,该框架可捕获分布式云应用程序的低级和高级性能指标 G-MAP:为 GPU 应用程序的内存访问模式和并行性建模,以创建内存代理 GPGPU-MiniBench:生成 CUDA GPGPU 内核的miniature proxies,以保持相似的性能 3. 相关背景 Pytorch ATen ops:低层级的Tensor库,是Pytorch的后端,用于执行真实的计算任务(加法、矩阵乘法等) Communication ops:多设备之间的分布式训练通信,通常为异步的。在Pytorch中c10d是一个非常流行的通信库,提供了大量的集合通信API和P2P通信API Fused ops:融合操作,是一种计算加速优化方法,可以把多个操作融合成一个运算操作。CPU中常用NNC作为融合操作的后端,GPU中为NVFuser Custom ops:允许用户实现比默认实现更好的模型块 4. Mystique设计 ...