NorthGod
V2EX  ›  Local LLM

多机异构显卡组合推理

  •  
  •   NorthGod · 16h 53m ago · 407 views

    做了个项目,代码还在改,发出来是想听听各位的看法。

    项目作用

    我手头有几张不同型号的显卡,平时大部分时间都是闲着。想跑大模型,结果单张显存放不下,就想着能不能把它们拼起来用。

    项目叫 织云 Loom,做的事情不复杂:就是把几张显卡在内网里连起来,变成一台机器跑大模型,对外接口兼容 OpenAI 的格式。如果某张卡突然挂了,服务也不会断。

    仓库: https://gitee.com/NorthGod_BFDG/LoomNode

    与其它项目的区别

    我没在跟 vLLM 比。vLLM 解决的是确定硬件上怎么把模型跑快,做得很好,我们也经常看它的代码。和我想解决的问题不太一样:几张型号不同的卡,可能随时掉线,这种情况下怎么稳定把服务撑住。关注点不同,不冲突。

    踩过的坑

    一开始我是想做公网的。想法挺简单,把不同地方的卡凑一起用。跨省推理我确实跑通过,当时觉得这事有戏。

    后来才发现不行。

    公网上跨省的延迟是物理层面的,代码怎么都消不掉。这个延迟到了推理流水线里会被放大,我连着改了好几个晚上,能试的优化都试了,没用。最后认了,公网这条线整个砍掉,回到内网。

    这个决定当时很难,但现在回头看是对的。

    Token 生成速度

    数字是我自己测的,不同阶段跑的,不是统一基准,各位看个大概就行:

    • 单卡 5090 ,跑 80 亿参数模型,高并发情况大概 1850 tokens/秒。这个数我们测下来跟 vLLM 差不多;
    • 同一张卡,开 int4 量化,把 300 亿参数模型塞进去,207 tokens/秒。同配置 128K 长上下文也能跑;
    • 容错:跑的时候我把主力节点直接杀了,大概 6.7 秒 切到备用,请求没丢。

    现在能用吗

    还不能。源码没发,文档先公开了。发这个帖子就是想问问:你们觉得这东西有用吗?在你的场景下,最需要它解决什么问题?

    请给我讲讲大家的需求,或者纯粹的评价一下项目——好话坏话都直说。我会认真考虑大家的问题的。


    如果这个方向你踩过坑、或者刚好也在折腾类似的玩意—— 评论区说说你现在是怎么处理的,我都会认真回。

    9 replies    2026-07-02 00:58:00 +08:00
    coefu
        1
    coefu  
       14h 40m ago
    《 hands-on llm serving and optimization 》 看完过这本书没?

    看完了你再想一下,你这个项目的难点在哪里,你准备怎么解决这些点。
    NorthGod
        2
    NorthGod  
    OP
       11h 6m ago
    感谢提醒,我大概了解了一下这本书,过后会仔细阅读的。
    NorthGod
        3
    NorthGod  
    OP
       10h 55m ago
    @coefu 大概理解了,我参考的更多是 vllm 、sglang 、llamacpp 等源码,还有公开的博客、论文等(虽然绝大部分是 AI 帮我实现的)。书中的内容大多也都有讲到,这样看倒是没什么区别了。而且我们项目最主要的异构多机书中并没有展示,你知道有这方面现成的资料或者文献吗
    coefu
        4
    coefu  
       5h 52m ago
    @NorthGod 你先看明白,单机的多卡推理先,然后才是多机多卡。然后搞明白,推理引擎最重要的是什么。

    1 ,首先,你不可能再造一个 类 llama.cpp 的框架轮子了。为什么,每个 LLM 的架构都在演化,每次都要重新根据不同框架写架构算子,这一块,一个人不可能搞得定。上对 LLM 框架理论,下对 cuda/musa/rocm/vulkan... 。

    2 ,单机多卡的通信,多几多卡的通信。在 pipeline / tensor parallelism / expert parallelism ,通信上的难度是不一样的。

    3 ,以上的问题无法收敛,这也是为什么 llama.cpp 现在 多几多卡 也只有 rpc server 。
    NorthGod
        5
    NorthGod  
    OP
       4h 12m ago
    @coefu 我之前有考虑过 fork vllm 、sglang 等现有的引擎,但是没有任何一个引擎能够支持我“干净的底片工人”这个角色。它做不到喂中间层向量,再吐中间层向量,也做不到内网异构容错。没办法,我只能用 AI 自己写引擎和编排层。不过起码结果是好的,优化到现在已经和主流推理引擎速度相差不大了,再往下就是核工程我确实搞不了也没必要搞。
    xziar
        6
    xziar  
       3h 3m ago
    我没看懂,初始需求是“单张显存放不下”,结果测了“单卡 8B/30B 模型”和“容错热切换”?
    这也没解决问题啊……怕不是 vibe coding 被模型忽悠了,代码 AI 写,测试 AI 做,文档 AI 总结,帖子 AI 发……
    coefu
        7
    coefu  
       2h 55m ago
    @NorthGod 看你这个回复,估摸着还没摸到门槛。你搞清楚了 microgpt 的每一个过程了吗?能从 0 开始训练一个 LLM 吗?你搞不清楚这些,怎么搞推理?推理就是训练的 once 。况且当前的 attention 的演化,导致 kvcache 分了不同的路线,这些你都不搞透彻,怎么把整个 LLM 切成多份?不管是横切,还是竖切。

    最最主要的是,当前的 attention 加入 rnn 这种循环网络的动态机制之后,类似于 mamba ,混合 attention 连 llama.cpp 当前都没有完全搞定,就不要说 切分之后通信了。

    你有想法是好的,但是不能太多的想当然了。
    coefu
        8
    coefu  
       2h 24m ago
    再多说几句:

    1 ,你的问题,如果是 vllm 支持的 gpu ,那么 kuberay+vllm 早就能搞定 多机多卡分布式推理。如果是 vllm 不支持的 gpu ,llama.cpp 的 rpc server 支持多机多卡的 pipeline 模式即 layer split 的推理。tensor parallelism 即 llama.cpp 的 row split 目前还不能 多机多卡。

    2 ,实际的,你的框架当前能单机多卡跑 Gemma4 系列,qwen3.5 系列 了吗,这是两种不同 attention 的模型,如果能跑通,benchmark 对比 llama.cpp 如何?如果跑不通,连走都还不行,就不要谈跑了。

    3 ,cc 能让你搞一点 web 前后端,app 之类的,就不要以为能搞定这个 推理方向上最难的问题。

    4 ,上半年号称要搞定单卡推理超出 gmem 参数容量的 LLM 的那哥们儿的项目,为什么熄火了?
    coefu
        9
    coefu  
       2h 22m ago
    最后,我依然对这种 有雄心壮志并且肯动手的人 此致敬礼!
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   992 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 19:20 · PVG 03:20 · LAX 12:20 · JFK 15:20
    ♥ Do have faith in what you're doing.