Berth 是一个开源的显卡调度器,Go 写的,Apache-2.0,作者 Trevin Tindall 一个人在做。
10 月 11 日建的仓,到昨天 284 颗星,v0.4.1 刚发出来,README 顶上自己写着 alpha。
它要治的病,本地跑模型的人天天遇到:24G 的卡上,一个聊天模型就占 21G,ComfyUI 一开又要 14G,游戏再进来要 9G。
三个同时要,先动手的活下来,后加载的直接 OOM 崩掉。
以前只有一条路,关掉一个再开另一个。
Berth 改成拿号排队:程序不自己抢显存,先向 berthd 要卡,拿到租约才能加载。
拿不到就等,等到的时候告诉你排第几、前面是谁。

抢卡的不是模型,是程序
这张卡是用四步交出去的。
请求按优先级进队,从高到低是 hold、前台、交互、批处理。当前那个把活收尾,聊天等回完这一句,出图等这一张画完。
然后等显卡驱动报出显存真的空出来了,才发租约,下一个才开始加载。
第三步是最容易翻车的地方。进程退了不等于显存放了,驱动那边没释放,下一个照样加载失败。作者的做法是不信进程状态,只信驱动读数。

另有个细节挺实用。任何占着显存却没有租约的进程,Berth 会把 PID 和占用量报出来,但不动它。作者管这类叫 stowaway,偷渡客。
以前显存莫名少了一块,得在 nvidia-smi 里翻半天找是谁干的,现在直接点名。
llama-swap 换自己的模型,Berth 管整张卡
这两个容易混,得分清。
llama-swap 在它自己的配置里换模型,这块它做得很好,Berth 不抢这个活。
Berth 管的是整张卡:llama-swap 里的模型、ComfyUI、Ollama、vLLM、游戏,连谁都没启动过的进程都算。
所以两个一起用不打架。一条 berth wire llama-swap,给配置里每个模型加上租约;上游整合在计划里,以后这行包装也能去掉。
游戏这一段是它最接地气的用法。Linux 上认 Steam、Lutris、gamescope。
Windows 那份名单更长,Steam、Epic、GOG、EA、育碧、Xbox、战网都在里面。游戏一开,AI 引擎全被清场让位,退出来再还回去。
还有个 berth skill install,教 Claude Code、Codex、Hermes Agent 这些 agent 先要卡再用,别一上来就 kill 掉占着显存的进程。
换一手 5.6 秒,从盘重载要 14 秒
作者在自己那台 4090 工作站上量了换手时间,10 月 23 日的数据。
README 里写着,这东西每天就跑在那台机器上,旁边是 llama-swap、NInfer、Strata、ComfyUI,还有游戏。
21G 的聊天模型,文件已经在页缓存里,换回来 5.6 秒。ComfyUI 会自己往内存里挪,回来不到 1 秒。
从 ComfyUI 换到 27B 聊天模型,13.6 到 16.3 秒。

差距最大的是 23.1G 的 NInfer:走 NVIDIA 的 cuda-checkpoint 存一把再回来,3.3 秒;老老实实从盘重载,14 秒。
差四倍。
代价也在这。checkpoint 得靠 --park checkpoint 这层包装,不是每个引擎都吃得到。
ComfyUI、vLLM、SGLang 能自己往内存里挪,别的引擎只能重载。

控制台那一屏信息很密,谁拿着卡、谁在等、等多久、撞车躲掉了多少次,都在上面,只读,默认只听本机。
怎么装:一条 go install
先看清能不能装,这一步别省。

Linux 加英伟达卡是正式支持的。Windows 10 和 11 是实验状态,装成登录任务,不要管理员权限;AMD 独显和 780M 核显也是实验。
苹果和 Intel 写着暂不支持,Mac 用户这回只能看着。
能装就这么装,两条命令。
go install github.com/T-Crypt/berth/cmd/berth@latest
berth service install --harbor
跑完开 http://127.0.0.1:9798/ 就是那个控制台。不想编译就用 release 里的二进制,配一份 SHA256SUMS 核对。
缺点没藏着。v0.4.1 是 alpha,12 个 open issue 挂着,其中 #275 那类 park 竞态会让模型卡在 409 上不响应,得手动 reclaim。
但它从 10 月 11 日到现在,发了 v0.4.0 和 v0.4.1 两个正式版,中间夹着一串 rc 预发布。
二十来天,一个人。
手里有英伟达卡的,现在就能试;Mac 上等苹果支持,暂时没有。
项目地址:https://github.com/T-Crypt/berth
文档与在线版:https://t-crypt.github.io/berth/
评论区