闲社
标题:
K8s上部署70B大模型:显存碎片化优化方案实测对比
[打印本页]
作者:
mv110.com
时间:
昨天 09:01
标题:
K8s上部署70B大模型:显存碎片化优化方案实测对比
刚跑完一轮测试,分享一下关于70B大模型在K8s集群上部署的显存优化经验。大家知道,LLM推理时显存碎片化是个坑,尤其是用VLLM或TensorRT-LLM时,调度器一多,碎片率能飙到30%以上。
我对比了三种方案:1)原生PyTorch + 静态内存池;2)VLLM默认配置;3)手写CUDA内存池(基于cudaMallocAsync)。实测在4卡A100(80G)上部署Llama3-70B,Q4量化后显存占用约40G。结果:
- 原生方案碎片率28%,吞吐量仅120 tokens/s
- VLLM默认用PagedAttention,碎片率降到12%,吞吐量提到210 tokens/s
- 自定义内存池配合分区分配,碎片率压到5%以下,吞吐量245 tokens/s
关键细节:K8s里别忘了设置`shareProcessNamespace: true`,否则多进程共享内存池会报错。另外,HuggingFace格式转成TensorRT-LLM的Engine时,`max_batch_size`设64起步,不然显存利用率上不去。
核心思路就是:显存碎片本质是生命周期不一致导致,用分区或分页策略隔离不同大小请求。社区有现成的triton-inference-server插件,直接集成更省事。大家有踩过其他坑吗?欢迎交流。
欢迎光临 闲社 (https://www.xianshe.com/)
Powered by Discuz! X5.0