NanoFlow: Towards Optimal Large Language Model Serving Throughput

Fuente: arXiv
Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Zhu, Kan, Gao, Yufei, Zhao, Yilong, Zhao, Liangyu, Zuo, Gefei, Gu, Yile, Xie, Dedong, Tang, Tian, Xu, Qinyu, Ye, Zihao, Kamahori, Keisuke, Lin, Chien-Yu, Wang, Ziren, Wang, Stephanie, Krishnamurthy, Arvind, Kasikci, Baris
Format: Preprint
Veröffentlicht: 2024
Schlagworte:
Online-Zugang:
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
_version_ 1866913856341671936
author Zhu, Kan
Gao, Yufei
Zhao, Yilong
Zhao, Liangyu
Zuo, Gefei
Gu, Yile
Xie, Dedong
Tang, Tian
Xu, Qinyu
Ye, Zihao
Kamahori, Keisuke
Lin, Chien-Yu
Wang, Ziren
Wang, Stephanie
Krishnamurthy, Arvind
Kasikci, Baris
author_facet Zhu, Kan
Gao, Yufei
Zhao, Yilong
Zhao, Liangyu
Zuo, Gefei
Gu, Yile
Xie, Dedong
Tang, Tian
Xu, Qinyu
Ye, Zihao
Kamahori, Keisuke
Lin, Chien-Yu
Wang, Ziren
Wang, Stephanie
Krishnamurthy, Arvind
Kasikci, Baris
contents Large Language Models (LLMs) have resulted in a surging demand for planet-scale serving systems, where tens of thousands of GPUs continuously serve hundreds of millions of users. Consequently, throughput has emerged as a key metric that determines serving systems' performance. Due to large model sizes and memory-intensive self-attention, LLM serving has been commonly assumed to be memory-bound. Through a detailed analysis, we show that despite having memory-intensive components, end-to-end LLM serving is compute bound for most common workloads and LLMs. Alas, most existing serving engines fall short from optimal compute utilization, because the heterogeneous operations that comprise LLM serving--compute, memory, networking--are executed sequentially within a device. We propose NanoFlow, a novel serving framework that exploits intra-device parallelism, which overlaps the usage of heterogeneous resources within a single device. NanoFlow splits inputs into smaller nano-batches and duplicates operations to operate on each portion independently, enabling overlapping. NanoFlow automatically identifies the number, size, ordering, and GPU resource allocation of nano-batches to minimize the execution time, while considering the interference of concurrent operations. We evaluate NanoFlow's end-to-end serving throughput on several popular models such as LLaMA-2-70B, Mixtral 8x7B, LLaMA-3-8B, etc. With practical workloads, NanoFlow provides 1.91x throughput boost compared to state-of-the-art serving systems achieving 50% to 72% of optimal throughput across popular models.
format Preprint
id arxiv_https___arxiv_org_abs_2408_12757
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle NanoFlow: Towards Optimal Large Language Model Serving Throughput
Zhu, Kan
Gao, Yufei
Zhao, Yilong
Zhao, Liangyu
Zuo, Gefei
Gu, Yile
Xie, Dedong
Tang, Tian
Xu, Qinyu
Ye, Zihao
Kamahori, Keisuke
Lin, Chien-Yu
Wang, Ziren
Wang, Stephanie
Krishnamurthy, Arvind
Kasikci, Baris
Distributed, Parallel, and Cluster Computing
Large Language Models (LLMs) have resulted in a surging demand for planet-scale serving systems, where tens of thousands of GPUs continuously serve hundreds of millions of users. Consequently, throughput has emerged as a key metric that determines serving systems' performance. Due to large model sizes and memory-intensive self-attention, LLM serving has been commonly assumed to be memory-bound. Through a detailed analysis, we show that despite having memory-intensive components, end-to-end LLM serving is compute bound for most common workloads and LLMs. Alas, most existing serving engines fall short from optimal compute utilization, because the heterogeneous operations that comprise LLM serving--compute, memory, networking--are executed sequentially within a device. We propose NanoFlow, a novel serving framework that exploits intra-device parallelism, which overlaps the usage of heterogeneous resources within a single device. NanoFlow splits inputs into smaller nano-batches and duplicates operations to operate on each portion independently, enabling overlapping. NanoFlow automatically identifies the number, size, ordering, and GPU resource allocation of nano-batches to minimize the execution time, while considering the interference of concurrent operations. We evaluate NanoFlow's end-to-end serving throughput on several popular models such as LLaMA-2-70B, Mixtral 8x7B, LLaMA-3-8B, etc. With practical workloads, NanoFlow provides 1.91x throughput boost compared to state-of-the-art serving systems achieving 50% to 72% of optimal throughput across popular models.
title NanoFlow: Towards Optimal Large Language Model Serving Throughput
topic Distributed, Parallel, and Cluster Computing
url https://arxiv.org/abs/2408.12757