一种用于依赖型 GPU 核细粒度同步的框架
分布式、并行与集群计算
2024-02-15 v3
摘要
机器学习(ML)模型执行若干并行计算,包括广义矩阵乘法、卷积、Dropout 等。这些计算通常在图形处理单元(GPU)上执行,将计算划分为称为 tile 的独立处理块。由于 tile 数量通常多于 GPU 的执行单元数,tile 在一个或多个波次中所有执行单元上执行。然而,tile 数并不总是执行单元数的整数倍。因此,最后一波执行的 tile 会低利用率使用 GPU。为解决该问题,我们提出 cuSync,一种利用用户定义的细粒度同步策略同步依赖核以提升 GPU 利用率的框架。cuSync 同步 tile 而非核,从而允许并发执行依赖核中的独立 tile。我们还提出一种编译器,基于核间依赖关系生成多样化的细粒度同步策略。我们的实验发现,使用 cuSync 同步 CUDA 核在多种批大小下将四种流行 ML 模型的推理时间缩减:MegatronLM GPT-3 最高 15%、LLaMA 最高 14%、ResNet-38 最高 22%、VGG-19 最高 16%。
引用
@article{arxiv.2305.13450,
title = {A Framework for Fine-Grained Synchronization of Dependent GPU Kernels},
author = {Abhinav Jangda and Saeed Maleki and Maryam Mehri Dehnavi and Madan Musuvathi and Olli Saarikivi},
journal= {arXiv preprint arXiv:2305.13450},
year = {2024}
}
备注
Accepted at CGO 2024