两张卡各有空闲,不表示单个分配能使用两卡总量。模型执行方式决定分片与峰值。
显存属于设备地址空间,数据并行复制模型,张量或流水分片另有通信和算子要求。权重、缓存与临时缓冲分别预算。
一、问题的范围与前提
规格、安装与实际工作条件需要分别核对。接口外形相同不证明电气和数据能力相同,标称性能也不代表目标工况。测量基准、单位和容差应明确,再通过受控对照定位问题。
二、技术分析与方案取舍
数据并行常复制模型,因此总显存增加未必扩大单请求容量;模型分片则需要框架和算子支持,还增加通信。每卡分别预算权重、缓存与临时缓冲,最紧的一张卡可能先 OOM。主机内存卸载改变速度和资源位置,不是无代价扩容。用真实输入和并发测峰值,不仅看模型刚加载后的空闲量。
从允许范围内的只读或低风险验证开始,一次改变一个条件,保留型号规格与必要版本。供电、线材、机械配合和软件配置分开观察。涉及电气维修或设备动作时,按原厂说明与专业操作边界实施,公开文章不复制未核验接线。
三、实现与排查的顺序
- 记录每卡占用。
- 确认并行策略。
- 测目标请求峰值。
- 逐级增加输入和并发。
按这个顺序保留中间结果,可以区分输入条件、处理过程和最终输出。前一阶段的条件不成立时,先解释对应错误,再继续后面的试验;单次返回成功不足以覆盖整条链路。
最小示例
1
nvidia-smi --query-gpu=index,name,memory.total,memory.used,memory.free --format=csv
每块卡的资源单独记录,总容量不能直接满足任意单卡分配。模型加载、缓存和临时缓冲峰值分别检查,进程占用公开时去除身份信息。
四、验证和结果解释
交叉测试使用已知可用部件和独立参考工具,结果记录输入条件、观察与排除范围。单个错误码只提供方向,不能证明唯一故障件。工程尺寸和屏幕显示也要分别核验,漂亮模型不等于实物可以装配。
| 需要验证的结果 | 保留的对照 | 不能由此推出的结论 |
|---|---|---|
| 任何单卡不超过预算 | 固定输入与配置、对应输出 | 一次成功代表所有条件成功 |
| 通信成本计入 | 中断前后状态与错误阶段 | 没有报错代表结果正确 |
| 错误阶段可定位 | 恢复后的同条件复测 | 临时恢复代表根因已经消失 |
检查重启、重插、重复装配与允许工况变化。小步迭代保留对照,避免同时更换多个变量后无法判断原因。目标精度和实际误差分别表达,探索样件、概念演示和已验收设备不使用同一完成口径。
五、适用边界与结论
不能用总显存解释所有 OOM,算子兼容和容量是两个条件。
这条路径把“记录每卡占用”与“逐级增加输入和并发”连在一起,中间保留可复查的条件。实施时优先确认“任何单卡不超过预算”,再检查“错误阶段可定位”;两者都满足,才能在当前样本与配置范围内评价方案。设备、数据或软件版本改变以后,相关假设需要重新验证。