侧边栏壁纸
博主头像
HHShare 博主等级

行动起来,活在当下

  • 累计撰写 289 篇文章
  • 累计创建 36 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

显存不够就崩?284 星的 Berth 让程序拿号上卡

晖晖分享
2026-11-03 / 0 评论 / 0 点赞 / 0 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我删除。

Berth 是一个开源的显卡调度器,Go 写的,Apache-2.0,作者 Trevin Tindall 一个人在做。

10 月 11 日建的仓,到昨天 284 颗星,v0.4.1 刚发出来,README 顶上自己写着 alpha。

它要治的病,本地跑模型的人天天遇到:24G 的卡上,一个聊天模型就占 21G,ComfyUI 一开又要 14G,游戏再进来要 9G。

三个同时要,先动手的活下来,后加载的直接 OOM 崩掉。

以前只有一条路,关掉一个再开另一个。

Berth 改成拿号排队:程序不自己抢显存,先向 berthd 要卡,拿到租约才能加载。

拿不到就等,等到的时候告诉你排第几、前面是谁。

Berth 的 GitHub 首页,README 第一段就写了它治什么病

抢卡的不是模型,是程序

这张卡是用四步交出去的。

请求按优先级进队,从高到低是 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 能自己往内存里挪,别的引擎只能重载。

官方 harbor 控制台,截图里是内置的演示数据

控制台那一屏信息很密,谁拿着卡、谁在等、等多久、撞车躲掉了多少次,都在上面,只读,默认只听本机。

怎么装:一条 go install

先看清能不能装,这一步别省。

支持矩阵:Linux 能用,Windows 实验,苹果和 Intel 不支持

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/

0

评论区