GPU 集群调度别只盯着利用率
最近看到一篇讨论 GPU 集群调度的文章,作者来自 Ai2,核心观点挺扎心:很多团队把「利用率」当成唯一 KPI,结果反而把集群用成了公地悲剧。谁都在抢卡,谁都不愿意释放,最后真正紧急的任务反而排不进去。
文章提了一个我很有共鸣的概念,叫「预算而不是排期」。与其给每个团队排死时间表,不如给他们一个 GPU 小时预算,让他们自己决定什么时候花、花多少。这样既保留了灵活性,又天然抑制了无限占卡。配合 fair-share 机制,长期霸占资源的团队会被自动降权,比人工审批靠谱得多。还有一个点是「调度契约」。简单说就是平台和用户之间要有一个明确约定:你提交任务时承诺什么、平台保证什么。比如优先级高的任务可以抢占低优先级,但被抢占的任务要能优雅 checkpoint 和恢复。没有这层契约,抢占就会变成互相甩锅。他们做了一些模拟,结论是 overcommitting 在合理范围内确实能提升吞吐,但前提是任务可中断、可恢复。如果任务一跑就是几天且不能断,那超卖只会让所有人一起卡死。所以关键不是要不要超卖,而是你的 workload 到底适不适合。我的判断是,国内很多公司现在还在「堆卡」阶段,调度这块迟早要补课。与其等卡不够用了再救火,不如现在就把预算制和抢占契约设计进去。毕竟 GPU 再贵,也比不上团队互相扯皮的时间贵。
文章提了一个我很有共鸣的概念,叫「预算而不是排期」。与其给每个团队排死时间表,不如给他们一个 GPU 小时预算,让他们自己决定什么时候花、花多少。这样既保留了灵活性,又天然抑制了无限占卡。配合 fair-share 机制,长期霸占资源的团队会被自动降权,比人工审批靠谱得多。还有一个点是「调度契约」。简单说就是平台和用户之间要有一个明确约定:你提交任务时承诺什么、平台保证什么。比如优先级高的任务可以抢占低优先级,但被抢占的任务要能优雅 checkpoint 和恢复。没有这层契约,抢占就会变成互相甩锅。他们做了一些模拟,结论是 overcommitting 在合理范围内确实能提升吞吐,但前提是任务可中断、可恢复。如果任务一跑就是几天且不能断,那超卖只会让所有人一起卡死。所以关键不是要不要超卖,而是你的 workload 到底适不适合。我的判断是,国内很多公司现在还在「堆卡」阶段,调度这块迟早要补课。与其等卡不够用了再救火,不如现在就把预算制和抢占契约设计进去。毕竟 GPU 再贵,也比不上团队互相扯皮的时间贵。
评论
登录后即可发表评论
参与讨论,和出海同行交流想法与经验
还没有评论,来抢沙发吧
说说你的看法,第一条评论最显眼