两张 4090,想跑大一点的模型,上了 tensor_parallel_size=2,结果吞吐只提升 10%,还不如单卡。
原因:两张 4090 之间没有 NVLink,走 PCIe 通信。张量并行每层都要 all-reduce,通信开销把算力收益吃掉了。
改法:
- 换成流水线并行(如果模型层数够),通信量小很多
- 或者干脆一个模型一张卡,跑两个实例,前面挂个负载均衡
我用的是后者:两个独立实例,nginx 按请求分发。7B 模型单卡跑得飞快,并发起来总吞吐比张量并行高。
结论:消费级显卡别硬上张量并行。没有 NVLink 的情况下,多实例比并行划算。
如果是 A100/H100 带 NVLink,那另说,通信快很多,并行确实有效。
主楼- 暂无回复
继续逛逛