整卡和切分,差的不在算力总量上。gpu选择哪个模式,实际是在两件事之间做取舍:隔离能做到多干净,账单能不能摊薄。参数表上看不出这两样,销售页上更看不出,只能自己对着业务去推。

钱和墙,两件事。
gpu选择哪个模式,先问隔离要多干净
隔离这东西平时看不出来,出问题的时候才要命啊。整卡直通,一块卡上的显存、计算单元、缓存全归你一家用,别人的进程进不来;MIG 那类硬件切分是把一块物理卡切成几份虚拟卡,各自有独立的显存和计算单元,互相基本看不见;时间片共享就更糙一些,大家轮流上,谁在跑你根本不知道。我一般先问一句:这块卡是不是只给我一个人用呢?对方要是含糊其辞,那就得琢磨琢磨了嘛。跑内部批处理、离线推理,谁跟谁抢都无所谓,省钱要紧;一旦要把模型接口开放给外部客户,隔离等级就得往上提,不然隔壁一个显存泄漏的进程能把你整条请求链路拖垮,排查的时候很容易往自己代码上怀疑,走一圈才发现是同一块卡上另一份负载在刷数据,这种亏吃过一次就够了。
对外服务,隔离别将就。
半吊子的做法也不少,服务商说切了一半给你,实际是时间片调度,标称显存够用,跑起来延迟忽高忽低,压测曲线跟心电图似的。合同里写没写 MIG、写没写直通,值得翻一翻;拿不准就以服务商或官方页面说明为准,别只听口头承诺就好。
隔离也不只是性能问题。显存里残留的数据、进程退出后没清干净的缓存池,共享模式下都是隐患。你不想让别人碰到自己那份数据,也不想被别人拖下水。这种顾虑不是玄学,团队里出过一次事故,对隔离的要求会突然变高吧。
整卡贵在明面上,切分贵在暗处
整卡报出来的价,确实扎眼,一个月几百上千都有。切分看着便宜一大截呢。可单价这东西不能横着比。整卡的钱,是一次性买断整块卡的时间和显存,跑得越满,单位算力的成本就越低。切分按小块计费,灵活是灵活;业务一涨上来,就得同时租好几块实例拼算力,拼出来的总价反而比整卡还难看啊。至于「利用率过多少就该上整卡」那个比例,各家卡型、计费方式都不一样,我给不出通用数字。也别信那种一刀切的说法。
利用率低就切,跑得满就整卡。这话听着像废话,实际能省下不少钱呢。
计费口径也容易绊人。整卡按卡计费,切分常常按实例计费,包月和按小时又是两套算法,直接比价很容易比错。我一般把三种口径换算成同一个问题:跑满一个月花多少,只跑三成时间花多少,再对着自己的实际利用率看哪一种更贴。
切分的隐性成本,藏在显存和排队里
切分最容易被忽略的,其实是显存。80G 的卡切四份,每份二十来 G。模型稍微大一点就装不下,CUDA out of memory 报得比谁都快,你还没反应过来,进程就没了。我习惯在 nvidia-smi 上看显存峰值,再倒推模型加 KV cache 吃掉多少,顺手留一点余量给框架自己折腾。时间片共享还有排队呢,你的请求得等别人让出计算单元。平均延迟看着还行,P99 能翻好几倍——线上业务最怕这个。压测跑起来你就知道,均值好看是假的,一会儿快一会儿慢的那条曲线才说明问题。单看均值,什么都看不出来。
均值好看,尾巴才要命。
共享模式不是一无是处
时间片共享有个好处,弹性大。业务量忽高忽低的时候,低成本挂上去,闲了随时释放,不用为闲置的卡付钱。做开发调试、跑小批量实验、给新人练手,这种场景整卡就是浪费嘛。我手上有个内部工具,一天只跑两三个小时,上整卡一个月下来心里堵得慌,换成共享之后成本降下来一截,延迟高一点压根没人管。关键是想清楚你的业务能不能忍那个抖动。
共享模式还有个坑,超卖。有的服务商把同一块卡切给的人比理论份额多,白天大家都不忙看不出来,晚上批量任务一扎堆,谁都跑不满。测的时候挑业务高峰跑,别在凌晨两点测完就下结论,那个数据骗人,说白了是自己糊弄自己。
多卡训练基本没得选
要跑大模型训练,整卡几乎是唯一选项。张量并行、流水并行都靠卡跟卡之间的高速通信,切分块之间没有 NVLink,通信绕到网络上走,速度掉得厉害,MIG 切出来的实例也不能随便拼成一张大卡。这条上没什么省钱空间,硬凑出来的方案跑三天不如整卡跑一天。
训练看互联,推理看显存。
我一般这么试
拿不准就小规模试一遍。照真实负载跑一轮,用 nvidia-smi 记下利用率曲线和显存峰值,跑满的时间和空闲的时间各占多少心里有个数;再把并发往上压,看延迟尾巴抖成什么样。切分实例试一周,账单出来对着看,比读参数表靠谱得多。测的时候把 CUDA_VISIBLE_DEVICES 设好,别让进程跑到别的卡上,不然测出来的数全是假的。
试一周胜过读参数表。
几个容易翻车的细节
驱动和 CUDA 版本要跟切分方式对上,MIG 模式和普通模式切换通常要重载驱动甚至重启,业务窗口得提前留出来。切分实例能不能在线改规格、能不能热迁移,各家支持差别很大。有些卡型压根不支持硬件切分,只能做时间片共享,买之前把型号问清楚。价格和规格一直在变,以服务商或官方页面说明为准,别拿半年前的截图当依据。
回到最开始,gpu选择哪个模式这件事,隔离和成本这两条想明白了,模式基本也就定下来了。对外服务、多租户、延迟敏感的,隔离优先,钱多花点认了;内部跑批、离线任务、验证阶段,省钱就切分呗。中间地带就小规模试,试完看账单就好。
【版权声明】:本站内容若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!