24GB显存够用?Berth让多个AI引擎轮流上阵

Berth 用系统级显存调度让多个 AI 引擎在单块 4090 上轮流独占显存。
Berth 是 Reddit 开发者发布的系统级显存调度服务,旨在解决单块 RTX 4090 上多 AI 引擎共存时的显存冲突。它监控显卡状态,在需要时自动卸载当前引擎并加载目标引擎,支持 ComfyUI、Strata、llama-swap、OpenWebUI 等原生切换,每个引擎运行时独占全部显存。Berth 还提供 API 端点服务,可加载自定义引擎,并保护游戏或前台工作流不被 cron 或 API 请求抢占 GPU。其核心思路是用调度消除空闲显存占用,适用于任务串行的个人开发者场景,但无法支持多引擎同时在线。
在本地部署AI模型的圈子里,显存焦虑几乎是永恒的话题。24GB的RTX 4090够不够用?如果你同时运行ComfyUI、LLM推理、语音识别等多个引擎,答案显然是否定的——除非,它们学会"轮流值班"。Reddit上一位开发者发布的Berth项目,正是为了解决这个痛点而生。

显存冲突:多引擎共存的日常烦恼
任何在Linux上折腾过多模型服务的人,大概都经历过类似的场景:一个node进程意外变成孤儿进程,ComfyUI自动启动并占住500MB显存,Strata再想申请就无能为力。更隐蔽的问题是,上一个工作流留下的Flux GGUF模型可能还挂在ComfyUI里没释放,而你早已忘了它的存在。
原作者坦言自己"每天都会遇到问题"。手动检查和清理显存占用不仅繁琐,还容易出错——你得确认Strata或llama-swap没有卡在加载状态,得排查哪个进程在偷偷占着显存不放。在多设备共用同一块RTX 4090的情况下,这种混乱会被进一步放大。
GGUF 是 llama.cpp 项目提出的一种模型文件格式,全称 GPT-Generated Unified Format。它将模型权重、分词器配置和元数据打包在单个文件中,并支持多种量化精度(如 Q4_K_M、Q8_0),使大模型能在消费级显存上运行。Flux 是 Black Forest Labs 推出的图像生成模型,其 GGUF 量化版本常被用于 ComfyUI 中以降低显存占用。由于 GGUF 模型加载后常驻显存且不会自动释放,多引擎切换时容易成为"隐形"的显存占用者,这正是 Berth 需要自动卸载引擎的原因之一。
Berth的解法:系统级显存调度器
Berth的核心思路很直接:把显存管理从"手动操作"变成"系统服务"。它会监控你的显卡状态,在需要时自动卸载当前引擎、加载目标引擎,整个过程不需要人工干预。作者强调,每个引擎在运行时都能独占全部显存,不存在"显存占用者"互相挤压的问题。
这个工具支持在Ninfer-4090(llama-swap)、Strata、ComfyUI、OpenWebUI等多个引擎之间原生切换。所谓"原生",指的是你不需要记住每个引擎的启动方式,也不用担心切换时旧引擎没有正确卸载。Berth会维护完整的操作记录,你随时可以查看什么时间、哪个引擎、执行了什么操作。
一个典型的使用场景是:白天你需要在ComfyUI里跑图像工作流,晚上让机器跑Hermes做推理。有了Berth,这种切换可以像换电视频道一样自然,而且全程有日志可查。
llama-swap 是一个轻量级的模型切换代理,用于在 llama.cpp 服务端按需加载和卸载不同模型;Strata 与 Polystrata 则是面向本地 AI 工作流的推理引擎/框架(常见于图像生成或复合管线场景);OpenWebUI 是自托管的 LLM 聊天前端。这些工具各自独立管理显存,缺乏统一的协调机制,因此容易出现"一个引擎占着显存不放、另一个引擎无法加载"的情况。Berth 作为系统级调度层,正是要替代各引擎自带的加载逻辑,统一接管显存的分配与释放。
API服务与游戏场景的兼顾
除了本地切换,Berth还提供API服务能力。当你需要以编程方式调用引擎时,把Berth作为API端点即可,它能够加载Strata、Polystrata以及任何自定义引擎。这意味着上层应用不需要关心底层是哪个引擎在响应,Berth会负责调度。
更实用的一点是对游戏场景的保护。很多开发者遇到过这样的尴尬:正在打游戏时,一个cron任务或API请求突然抢走了显卡,帧数瞬间暴跌。Berth的设计目标之一就是避免这类冲突——当你在游戏或执行自定义工作流时,不会有后台任务来抢占GPU。
项目的代码托管在GitHub上(T-Crypt/berth),对需要在一张卡上运行多种AI负载的用户来说,这是一个值得关注的基础设施层工具。24GB显存是否够用,或许不取决于容量本身,而取决于你如何调度它。

cron 任务 是 Linux/Unix 系统中基于时间表自动执行命令的机制,常用于定时跑批、模型推理或数据同步。在多引擎共用一块 GPU 的机器上,cron 触发的后台任务可能在用户不知情时加载模型并占用显存,导致正在运行的游戏或交互式工作流出现帧率骤降甚至显存不足(OOM)。Berth 通过调度层拦截这类请求,在 GPU 被前台任务占用时推迟或排队后台任务,从而避免资源争抢。
为什么"轮流"比"堆显存"更实际
消费级显卡的显存上限短期内很难大幅提升,而AI模型对显存的需求却在持续增长。对于个人开发者和小型团队来说,与其追求更大的显存,不如优化现有资源的利用率。Berth代表的正是后一种思路:通过调度消除空闲占用,让同一块显卡在不同时段服务不同任务。
当然,这种方案也有前提——你的工作负载不能要求多个引擎同时在线。如果你的场景需要LLM和图像生成同时响应请求,轮流调度就无能为力了。但对于大多数个人开发者和研究场景,任务本来就是串行的,Berth的假设是成立的。
相关推荐

LLaMA-Factory实战:零代码微调大模型全流程
本文介绍LLaMA-Factory开源微调工具,涵盖其60.1K Star项目背景、支持的模型与算法、本地与云服务器部署选择,以及CUDA环境安装步骤,帮助零基础开发者快速上手大模型微调。

曾鸣深度复盘:OpenAI为何难成终局赢家?公司制度将消亡
曾鸣在张晓骏商业访谈录中深度复盘AI终局:模型公司只是基础设施,OpenAI、Anthropic难成最终赢家;下一战役是Agent入口标准之争;公司制度将因AI重构而消亡,只有使命驱动的企业能穿越周期。

OpenHands v1.28.0:OpenCode与PI成内置Agent,密钥可对话申请
OpenHands 21天连推5个版本,v1.27.0将OpenCode与PI写入内置Agent列表,v1.28.0支持对话内申请密钥。本文梳理ACP协议接入方式、凭证复用规则、模型列表变更及升级建议。