原贴链接

如果同一台机器上有两块GPU,我能否分别在每块GPU上加载不同的模型?例如,如果使用lm - studio,当lm - studio服务器开启时,我能否在GPU1上运行一个模型,在GPU2上运行另一个模型,并同时从一个网络应用中查询它们?

讨论总结

原帖询问同一机器上2个GPU能否分别加载2个不同模型,评论者们从各自的经验和知识出发进行回应。有人分享在不同GPU上运行多个模型的经验,推荐了如CUDA_VISIBLE_DEVICES、gpustack等工具或方法,也有人以自己运行特定模型(如Stable Diffusion)为例肯定了这种操作的可行性,还有人提出了与模型运行相关的其他问题,如模型交互等,整个讨论充满技术干货的交流氛围。

主要观点

  1. 👍 不清楚lm - studio相关情况,但有在同一机器不同GPU运行多模型的经验
    • 支持理由:分享自己使用基础程序多个实例在不同GPU运行多模型的实例
    • 反对声音:无
  2. 🔥 可利用CUDA_VISIBLE_DEVICES解决双GPU加载不同模型问题
    • 正方观点:这是解决双GPU加载不同模型的有效方式
    • 反方观点:无
  3. 💡 推荐gpustack用于控制同一机器不同GPU加载不同模型
    • 支持理由:使用gpustack控制比较简单
    • 反对声音:无
  4. 👍 LM Studio会在GPU之间拆分模型,但没有将特定模型固定到单个GPU的选项
    • 支持理由:基于观察得出
    • 反对声音:无
  5. 💡 可以在同一台机器上使用两个GPU加载不同模型,通过运行VLLM服务器作为Docker容器实现
    • 支持理由:给出了具体实现的操作步骤
    • 反对声音:无

金句与有趣评论

  1. “😂 我不了解lm - studio具体情况,但我一直使用基础程序的多个实例在不同GPU上运行多个模型。”
    • 亮点:在不了解特定软件的情况下分享通用经验
  2. “🤔 CUDA_VISIBLE_DEVICES is your friend.”
    • 亮点:简洁地推荐了解决GPU使用问题的关键
  3. “👀 我不确定如果使用lm - studio是否提供这种配置选项。但如果使用https://github.com/gpustack/gpustack,控制起来相当简单。”
    • 亮点:对比了lm - studio的不确定性和gpustack的易用性
  4. “😂 我有一个与这个密切相关的问题。如果你有两个不同的模型在运行,它们能像《猴岛小英雄》中的侮辱剑斗那样互相交谈并互相侮辱吗?”
    • 亮点:用游戏场景类比模型交互,非常有趣且独特
  5. “👍 是的,实际上可以。我甚至在3个模型之间进行过测试,那是一场激烈的讨论。”
    • 亮点:肯定了模型交互的可能性并且分享了测试情况

情感分析

总体情感倾向为积极,大家都在积极分享自己的技术知识和经验来解答原帖的问题。主要分歧点较少,可能存在于对某些工具(如lm - studio)的了解程度和使用偏好上,原因是不同的技术背景和使用场景导致大家对不同工具的熟悉度不同。

趋势与预测

  • 新兴话题:模型交互可能会成为后续讨论的新方向,例如更多关于不同模型之间如何交互、交互的限制和应用场景等。
  • 潜在影响:对于相关的人工智能开发和部署领域,如果能更好地解决多GPU加载不同模型的问题,可以提高模型运行效率,节省资源成本,推动人工智能相关项目的发展。

详细内容:

标题:在同一台机器上使用两块 GPU 的热门探讨

在 Reddit 上,一个题为“2 GPUs on same machine”的帖子引起了广泛关注。帖子提出了一个问题:如果在同一台机器上有两块 GPU,是否可以在每个 GPU 上分别加载两个不同的模型,比如在使用 lm-studio 时,能否在 GPU1 上运行一个模型,在 GPU2 上运行另一个,并通过网络应用同时进行查询,特别是当 lm-studio 服务器处于运行状态时。该帖子获得了众多的评论和大量的互动。

讨论的焦点主要集中在以下几个方面: 有人表示自己经常在不同的 GPU 上运行多个模型,比如使用多个实例的 stable diffusion 和不同 GPU 上的多个 LLM 等。并且指出,如果命令行参数不支持,可通过CUDA_VISIBLE_DEVICES环境变量来指定程序使用的 GPU。 还有人提到 CUDA_VISIBLE_DEVICES 是解决问题的好帮手,虽然不知道 LM Studio 但认为可以运行 llama.cpp 服务器实例并连接到 API。有人好奇 LM studio 是否免费,有人解释它是开源但并非自由软件。 有人分享通过 github 上的链接可以找到简单的控制方法。有人分享了自己在不同模型之间进行测试并实现它们相互交流的经历。 有人表示通过运行 VLLM 服务器作为 Docker 容器来实现,并为每个容器分配 GPU 和端口。也有人指出,如果模型所需的 VRAM 足够,理论上可以在一个 GPU 上运行多个模型,但每个 GPU 上同时运行多个模型时实际速度会下降。 有人分享了自己利用两块 GPU 分别处理不同任务从而提高工作效率的经历,比如在一个 GPU 上进行图像放大,另一个 GPU 上进行图像修复。 有人对能否在不同型号的 GPU 之间进行分割提出疑问。有人好奇在每个 GPU 上运行单独模型的目的。有人解释在自己的网站中有不同的需求,比如内容分类、文本总结和翻译等,需要使用不同的模型甚至不同语言的模型,这涉及到成本问题,同时也对框架在切换模型时的延迟以及模型选择的决策机制提出了疑问。

在讨论中,大家对于能否在不同 GPU 上运行不同模型存在共识,认为在技术上是可行的。特别有见地的观点是指出在选择模型和框架时,应考虑其对性能的影响,并且要关注框架对多 GPU、批处理和并发的支持。同时,也有人认为不应将模型孤立在单个 GPU 上,而应选择合适的框架以获得更好的性能和扩展性。

总的来说,这次关于在同一台机器上使用两块 GPU 的讨论丰富且深入,为有相关需求的人提供了宝贵的经验和思考方向。