问题域/PD-386

权重卸载与预取

Weight Offloading & Prefetch

将模型权重卸载到CPU内存,按需预取到GPU,突破显存限制

子问题

1.卸载策略选择

2.预取调度与流水线

3.UVA统一虚拟寻址

4.与量化的协同

5.torch.compile 重排序导致同步语义破坏

6.CUDA Graph 捕获期与非捕获期的事件有效性差异

7.process_weights_after_loading 后 CPU 存储与量化权重的一致性

各项目的解法1 solutions

Signals

横向对比

维度vLLM
卸载策略双策略:UVA 零拷贝 + Prefetch 异步预取,工厂方法自动选择
缓冲管理StaticBufferPool 预分配 + slot 循环复用,避免动态分配
同步机制per-layer CUDA Event + 捕获期/非捕获期双路径同步
编译兼容自定义 Op mutates_args 声明假数据依赖,兼容 torch.compile + CUDA Graph
粒度控制group_size/num_in_group 分组选择 + offload_params 参数级白名单
平台适配CUDA/ROCm/XPU 三平台 UVA 实现,环境变量控制降级

最佳实践

1.优先使用Prefetch模式隐藏传输延迟

2.结合量化进一步降低传输量

3.用 mutates_args 自定义 Op 创建假数据依赖防止编译器重排序

4.pinned memory 必须全程保证,否则 non_blocking H2D 会触发隐式流同步

5.静态缓冲池 slot 数等于 prefetch_step,循环复用避免显存碎片