跳到主要内容
返回时间线
arXiv来源发表:

消费级单卡跑不动的大模型:把部分层交给CPU算,权重搬运藏进计算里

核心概要

当模型权重装不进单张消费级GPU时,按需搬运权重会占去解码阶段约98%的时间。一种按层调度的方法把部分层放到CPU上计算,同时异步把下一层的权重传往GPU,用CPU计算时间遮住传输;在RTX 5090台式机上,OPT-30B的推理比HuggingFace Accelerate快3.5倍、比DeepSpeed Zero-Inference快6.3倍。

AI-generated editorial illustration: Layer-wise CPU-GPU Scheduling for LLM Inference on Memory-Limited Consumer GPUs

深度剖析

权重超出单卡显存的大模型,在消费级台式机上可以靠CPU计算与权重传输并行来缩短解码延迟,而不必依赖量化压缩。 按需加载的常规做法把计算与传输串行起来,OPT-30B在解码阶段约98%的执行时间花在权重搬运上,此前的卸载推理工作也报告暴露的PCIe传输仍占总执行时间的约96%–98%。 在配备32 GiB显存RTX 5090、Intel Core Ultra 7 265F与PCIe Gen5 x16的台式机上,256 token提示下OPT-30B相对Accelerate、DeepSpeed、CPU-only和SplitGen分别快3.5、6.3、2.8和1.5倍。

每一层被分到三种执行方式之一:留在GPU常驻、放到CPU上算、或放在主机内存里在用到时传到GPU再算,后一种称为stream模式。 调度问题被写成最小化单步解码延迟的优化,并用一个放宽传输时序约束的近似模型化简为确定CPU层与stream层数量比例的问题。 每层的CPU计算时间与传输时间由离线测量得到,运行时在CPU层计算的同时异步搬运stream层权重;OPT-30B与OPT-66B分别有99.6%和99.8%的传输被计算遮住。

启示与展望

演示范围是单GPU、批大小为1的解码场景,硬件为32 GiB显存的RTX 5090、Intel Core Ultra 7 265F、128 GiB主机内存与PCIe Gen5 x16,CPU计算使用8线程,模型为OPT-30B、OPT-66B与Llama2-70B,数据类型FP16,提示长度256与1024、解码长度32。方法不做压缩或近似,因此只评估性能与能耗。

执行计划基于平均计算与传输时间,而主机内存压力会使这些时间不稳定,Llama2-70B因此未按计划执行,作者提出可在剖析阶段采用最坏情况测量作为对策。计划构建耗时3.2秒,且计划可复用。结果来自单一硬件配置,尚未在更广的设备范围上验证。