跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 浅色
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • 深色
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(LCZ-Blue)
  • 不使用皮肤
  • LCZ-Green
  • LCZ-Blue
  • LCZ-Black
折叠
品牌标识

抡锤者

首页 版块 标签
硬件
装备秀
AI 广场 App
  1. 主页
  2. 版块
  3. AI硬件
  4. 双魔改卡实现P2P的新路线

双魔改卡实现P2P的新路线

已定时 已固定 已锁定 已移动 AI硬件
多卡部署resizeablebar
5 帖子 5 发布者 335 浏览 1 关注中
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • N
    N
    neo
    体面乡绅 硕果累累
    发表于 最后由 编辑
    #1

    双魔改卡实现P2P的新路线

    魔改卡通常采用特殊 PCB / VBIOS,因此和正常卡 在 PCIe ReBAR / BAR1 方面存在一些差异。

    除了主板是否支持ReBAR,魔改卡的BAR1也是其中一堵高墙,最近发现除了传统的“ReBAR + P2P 驱动”路线之外,现在其实出现了一条专门绕开 256MB BAR1 限制的新路线。

    如果这条路线能够进一步成熟,那么对于使用魔改卡推理,会挺有意义。


    一、传统双魔改卡 P2P 的路线

    目前双卡 P2P,比较常见的思路大致是:

    双 GPU
      ↓
    开启 Above 4G Decoding / ReBAR
      ↓
    让 GPU BAR1 尽可能扩大
      ↓
    使用修改后的 NVIDIA P2P 驱动
      ↓
    CUDA P2P
      ↓
    NCCL P2P
      ↓
    双 GPU 直接通信
    

    正常的消费级 NVIDIA GPU,只要平台、VBIOS 和驱动条件合适,就可以通过这种方式实现 GPU↔GPU 的直接 PCIe 通信。

    这样做最大的好处就是:

    GPU0 → PCIe → GPU1
    

    数据可以直接从一张显卡到另一张显卡,不需要先经过系统内存再绕回来。

    对于大模型推理来说,这一点很重要,尤其是 Tensor Parallel(TP)。因为 TP 运行过程中需要频繁进行 GPU 间通信。


    二、问题就在 BAR1

    问题是,传统线路要求BAR1与VRAM大小一致,由于魔改的显存是硬长出来的,BAR1还是原来的大小,甚至30系列可能只有256MB。有些魔改卡可以通过更换 VBIOS来实现ReBAR,使BAR1 达到要求,但一是很多卡刷了VBIOS也无法解决,二是刷VBIOS是有风险的。


    三、新路线

    最近发现这个项目:

    barlink-pcie

    项目地址:

    https://github.com/efschu/barlink-pcie

    它解决这个问题的思路并不是:

    “想办法把 256MB BAR1 变成 20GB。”

    而是:

    既然 BAR1 只有 256MB,那就把它当成一个“小窗口”来使用。

    也就是说,它不要求整个 20GB 显存都映射到 BAR1。

    而是让 GPU 在 BAR1 里建立一个比较小的通信窗口,然后把需要传输的数据分批通过这个窗口直接发送到另外一张显卡。

    简单理解就是:

    传统方案:
    
    GPU0
     ↓
    整个显存映射到大 BAR1
     ↓
    PCIe
     ↓
    GPU1
    
    
    新方案:
    
    GPU0
     ↓
    小块 BAR1 窗口
     ↓
    PCIe
     ↓
    GPU1 BAR1
     ↓
    GPU1 显存
    

    256MB 在这里并不是“只能传 256MB 数据”,而只是:

    一次能够直接映射和传输的窗口比较小。

    数据量大了,就分成多轮传输。

    因此:

    256MB BAR1
    

    并不再成为:

    20GB 显存无法 P2P
    

    这样的绝对限制。


    四、是否有人实际跑通

    这不是单纯的理论方案。

    项目作者提到,这套 BAR1→BAR1 DMA 的方案已经在:

    • RTX 3080 20GB
    • BAR1 = 256MB
    • 双 3080
    • 甚至跨代 GPU

    上做过实际测试。

    这个方案就是最初从 htsglang 项目里的相关实现独立出来的,后来单独做成了 barlink-pcie 项目。

    倒是一个非常值得试一下的方向:

    RTX 3080 20GB
    BAR1 = 256MB
            ↓
    不追求扩大 BAR1
            ↓
    直接利用现有 256MB BAR1
            ↓
    BAR1 → BAR1 DMA
            ↓
    PCIe GPU → GPU
    
    1 条回复 最后回复
    4
    • starryskyknightS
      starryskyknightS
      starryskyknight
      体面乡绅 硕果累累
      发表于 最后由 编辑
      #2

      感謝分享 很受用 來研究看看

      johnnybegoodJ 1 条回复 最后回复
      0
      • starryskyknightS starryskyknight

        感謝分享 很受用 來研究看看

        johnnybegoodJ
        johnnybegoodJ
        johnnybegood
        王侯将相
        发表于 最后由 编辑
        #3

        @starryskyknight 我也要

        1 条回复 最后回复
        0
        • terryT
          terryT
          terry
          易有太极
          发表于 最后由 terry 编辑
          #4

          只能说这功能需要实测

          油管:https://www.youtube.com/@抡锤者

          1 条回复 最后回复
          0
          • Capri SwicordC
            Capri SwicordC
            Capri Swicord
            发表于 最后由 编辑
            #5

            感兴趣,请大佬继续跟踪

            1 条回复 最后回复
            0

            你好!看起来您对这段对话很感兴趣,但您还没有一个账号。

            厌倦了每次访问都刷到同样的帖子?您注册账号后,您下次访问时都将自动回到上次浏览的位置,并可选择接收新回复的通知(通过电子邮件或推送通知)。您还可以收藏帖子、为帖子点赞,以此向其他社区成员表达您的感谢。

            有了你的建议,这篇帖子会更精彩哦 💗

            注册 登录
            回复
            • 在新帖中回复
            登录后回复
            • 从旧到新
            • 从新到旧
            • 最多赞同


            • 登录

            • 登录或注册以进行搜索。
            • 第一个帖子
              最后一个帖子
            0
            • 版块
            • 最新
            • 标签
            • 热门
            • 用户
            • 群组