- VisualStudio2022插件的安装及使用-编程手把手系列文章
- pprof-在现网场景怎么用
- C#实现的下拉多选框,下拉多选树,多级节点
- 【学习笔记】基础数据结构:猫树
GPUStack 是一个专为运行大语言模型(LLM)设计的开源 GPU 集群管理器,旨在支持基于任何品牌的异构 GPU 构建统一管理的算力集群,无论这些 GPU 运行在 Apple Mac、Windows PC 还是 Linux 服务器上,GPUStack 都能将它们纳入统一的算力集群中。管理员可以从如 Hugging Face 等流行的大语言模型仓库中轻松部署任意 LLM,开发人员则可以像访问 OpenAI 或 Microsoft Azure 等供应商提供的公有 LLM 服务的 API 一样,简便地通过 OpenAI 兼容的 API 访问部署的私有 LLM.
GPUStack 自7月底发布以来,国内和海外社区的反响都非常热烈,研发团队收到了大量建议和反馈。我们综合评估了社区的需求和 GPUStack 的 Roadmap 计划,迅速发布了 GPUStack 0.2 版本。该版本新增了单机多卡分布式推理、跨主机分布式推理、纯 CPU 推理、Binpack 和 Spread 放置策略以及指定 Worker 调度、手动指定 GPU 调度等核心特性,并进一步扩展了对 Nvidia GPU 的支持范围,同时针对社区用户反馈的问题进行了增强和修复,以更好地满足各种使用场景的需求.
有关 GPUStack 的详细信息,可以访问:
GitHub 仓库地址: https://github.com/gpustack/gpustack 。
GPUStack 用户文档: https://docs.gpustack.ai 。
GPUStack 0.2 版本的关键特性是支持开箱即用的单机多卡分布式推理和跨节点分布式推理,管理员无需复杂配置即可将大模型运行在单机的多个 GPU 或跨多个节点的 GPU 上,从而满足单卡无法支持的大参数量模型的运行需求.
单机多卡分布式推理 在0.1版本,当 GPUStack 中没有任何 GPU 能够满足模型的资源需求时,GPUStack 会采用半卸载方案,通过 CPU 和 GPU 混合推理的方式来运行模型。然而,由于部分依赖 CPU 进行推理,整体性能会受到影响,这种方式无法满足高性能推理的需求.
为了解决这一问题,GPUStack 0.2 版本引入了单机多卡分布式推理特性。这一特性允许将模型的不同层卸载到单台机器的多个 GPU 上,同时利用多个 GPU 进行推理。这样,管理员不仅可以运行更大参数量的模型,还能确保模型在性能和效率方面达到更高的水平.
跨节点分布式推理 为了支持 Llama 3.1 405B、Llama 3.1 70B、Qwen2 72B 和其他大参数量模型,GPUStack 0.2 版本引入了跨节点分布式推理特性。当单个 Worker 无法满足模型资源需求时,GPUStack 可以将模型卸载到多个 Worker 中,实现跨主机的分布式推理.
此时,模型的推理性能会受到跨主机网络带宽的限制,可能会显著下降。因此,为了确保较好的推理性能,建议结合高性能网络方案,如 NVLink / NVSwitch、RDMA 等。在消费级场景中,也可以考虑使用 Thunderbolt 互联方案.
此外,由于 Hugging Face 模型仓库中各种大参数量模型的模型文件过大需要切分,为了支持此类模型,0.2版本中新增了对分片模型进行合并下载和运行的支持.
GPUStack 0.2版本现已支持 CPU 推理。在没有 GPU 资源或 GPU 资源不足的情况下,GPUStack 可以将 CPU 作为备用方案,将模型完全加载到内存并通过 CPU 执行推理。这样即便在没有 GPU 的环境中,管理员仍然能够运行一些小参数量的大模型,进一步提升 GPUStack 在边缘和资源受限环境中的适用性.
降低算力资源碎片化的 Binpack 放置策略 Binpack 放置策略是一种紧凑调度策略。在 GPUStack 的0.1版本中,默认采用 Binpack 策略部署模型。当单个 GPU 能够满足模型的资源需求时,该策略会尽量将模型的多个副本集中调度到该 GPU,以最大化其利用率,直到该 GPU 的剩余资源不足以支持新模型时,才会选择其他 GPU.
Binpack 策略的作用是减少资源碎片化,优化整体 GPU 资源的利用率。碎片化指的是各个 GPU 上存在少量未使用的资源,这些资源不足以支持新模型,导致算力资源浪费。通过 Binpack 策略,可以将模型尽可能集中到某些 GPU 上,使其他 GPU 保留完整的算力资源,用于处理更大的模型.
提升算力负载平衡的 Spread 放置策略 尽管 Binpack 策略能够减少算力碎片化,最大化单个 GPU 的利用率,但在某些情况下,可能会导致负载过于集中于少数几个 GPU 上,导致其他 GPU 闲置。为了解决这一问题,GPUStack 0.2版本新增了对 Spread 放置策略的支持.
Spread 策略与 Binpack 的紧凑型调度相反,旨在将模型均匀分布到多个 GPU 上,避免单一 GPU 的资源过度集中使用,确保每个 GPU 的负载更加均衡。这样可以减少资源争用所带来的性能瓶颈,从而提升模型的整体性能和稳定性.
在 Spread 策略下,任务会优先分配给负载较低的 GPU,使得所有 GPU 都能参与推理任务。这种策略特别适用于高并发或高性能场景,可以在资源充足的情况下提高集群的弹性,有效避免单个 GPU 过载。GPUStack 0.2默认采用 Spread 策略,管理员可根据实际需求灵活选择合适的策略.
指定 Worker 调度 。
在 GPUStack 0.2版本中,管理员可以为不同的 Worker 设置标签,并在模型部署时通过 Worker 选择器指定将模型实例调度到具有特定标签的 Worker 上。这使管理员能够更精准地控制模型的部署,优化资源分配,并满足特定的需求或策略.
这个能力特别适用于需要对计算资源进行细粒度管理的场景,例如在异构环境下,将模型调度到某一 GPU 厂商或某一 GPU 型号上。通过标签选择机制,GPUStack 允许在复杂的计算环境中实现更高效的资源管理,提升模型部署的灵活性和针对性.
手动指定 GPU 调度 。
GPUStack 的核心能力之一是提供了自动计算模型资源需求和根据资源需求自动调度的功能。这意味着管理员无需担心如何分配资源或手动调度模型。GPUStack 0.2版本还支持了 Binpack 和 Spread 放置策略、单机多卡分布式推理、跨主机分布式推理以及指定 Worker 调度等多种调度策略,从而让管理员可以控制模型的调度行为.
为了覆盖更多使用场景,GPUStack 的调度功能在持续丰富和完善中。为了满足一些特定调度需求,GPUStack 也在 0.2版本中提供了手动调度选项。管理员可以手动将模型调度到指定的 GPU 上运行,从而更精确地控制模型的调度行为.
控制是否允许 CPU 卸载 。
在0.1版本中,针对因 GPU 显存不足而无法将模型完全卸载至 GPU 的场景,GPUStack 会根据 GPU 可加载的模型层数,自动将部分层卸载至 GPU 进行加速,另一部分则加载到内存中通过 CPU 进行推理。这种方式称为 CPU 卸载、半卸载或部分卸载,即 CPU 和 GPU 混合推理.
这实现了在显存资源有限的情况下运行更大参数量模型的需求。然而,由于部分推理依赖 CPU,整体性能会受到影响。在对模型性能要求较高的场景中,管理员无法直接判断模型是否完全加载至 GPU,从而难以决定是否需要扩容 GPU 资源以提升性能.
在0.2版本中,管理员可以选择是否允许半卸载。该选项默认关闭,仅支持纯 GPU 推理。如果没有满足资源需求的 GPU,模型将不会被部署,而是进入 Pending 状态,直到有合适的 GPU 可用为止。如果管理员能够接受部分卸载带来的性能损失,也可以启用该选项,允许 CPU 和 GPU 进行混合推理.
新增 Compute Capability 6.0, 6.1, 7.0, 7.5的 Nvidia GPU 型号支持 。
在0.2版本中,GPUStack 进一步扩大了对 Nvidia GPU 的支持,新增了对 Compute Capability 6.0、6.1、7.0和7.5的 Nvidia GPU 型号的支持,包括 NVIDIA T4、V100、Tesla P100、P40、P4 以及 GeForce GTX 10系列和 RTX 20系列等型号。这让 GPUStack 能够覆盖更多数据中心及消费级场景的需求.
目前,GPUStack 支持 Compute Capability 6.0 ~ 8.9 的所有 Nvidia GPU 型号。具体支持的型号可以参考 Nvidia 官方的 GPU Compute Capability 说明:https://developer.nvidia.com/cuda-gpus 。
其他增强和修复请查看完整变更日志: https://github.com/gpustack/gpustack/releases/tag/0.2.0 。
想要知道更多关于 GPUStack 的信息,可以访问:https://gpustack.ai.
如果你在使用过程中遇到任何问题,或者对 GPUStack 有任何建议,欢迎随时加入我们的 Discord 社区 [https://discord.gg/VXYJzuaqwD],也可以添加 GPUStack 微信小助手(微信号:GPUStack)加入 GPUStack 微信交流群,获得 GPUStack 团队的技术支持,或与社区爱好者共同探讨交流.
我们正在快速迭代 GPUStack 项目,在开始体验 GPUStack 之前,我们非常欢迎你在我们的 GitHub 仓库 gpustack/gpustack 上点亮⭐️关注我们,以便可以即时地接收 GPUStack 未来的新版本通知。我们十分欢迎您一起参与这个开源项目的贡献.
最后此篇关于GPUStack0.2:开箱即用的分布式推理、CPU推理和调度策略的文章就讲到这里了,如果你想了解更多关于GPUStack0.2:开箱即用的分布式推理、CPU推理和调度策略的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
作者:小林coding 计算机八股文网站:https://xiaolincoding.com 大家好,我是小林。 今天跟大家聊聊,常见的缓存更新策略。 Cache Aside(旁路缓存)策略; Rea
我使用 git 多年,最近为了一个项目改用 mercurial。在过去的 6 个月里,我已经学会了如何通过命令行很好地使用 Mercurial。 这可能是我的想象,但在我看来,mercurial 在
这个问题适合任何熟悉的人 Node.js express Passport 带有 Passport 的 JWT 身份验证(JSON Web token ) Facebook OAuth2.0 或谷歌
在 Coq 中,当试图证明记录的相等性时,是否有一种策略可以将其分解为所有字段的相等性?例如, Record R := {x:nat;y:nat}. Variables a b c d : nat.
我正在处理的项目目前只有一个 Bootstrap 文件,用于初始化应用程序中的所有 javascript 对象。类似于下面的代码 if(document.getElementById('nav'))
我正在考虑使用 OpenLDAP 在首次登录时添加密码到期和强制更改密码。 似乎使用 ppolicy 覆盖来实现这一点。 当我在 ppolicy.schema 中看到这个时,我开始使用 ppolicy
这基本上是我昨天问的一个问题的重新陈述,因为我得到的一个答案似乎没有理解我的问题,所以我一定是不清楚。我的错。 因为 WPF 依赖于 DirectX,所以它对卡和驱动程序的内部非常敏感。我有一个案例,
我是单点登录(SSO)概念的新手。我开始知道 SAML 请求和响应是实现 SSO 流程的最佳方式。然后我开始阅读有关 SAML2.0 的信息。我来了一个术语 NameIdPolicy 在 saml1.
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 5年前关闭。 Improve this questi
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 9 年前。 Improv
在 Azure 上创建新的 SQL 数据库时,它将“计算+存储”选项设置为“2 vCore + 32GB 数据最大大小”作为默认配置,但我不想使用 vCore,我可以更改它。但问题是,是否可以通过策略
我希望创建一项策略,防止在未启用身份验证的情况下创建应用服务(仅审核它们是不够的)。 以下策略可以正确识别未启用身份验证的现有资源: { "mode": "All", "policyRule"
我正在尝试从现有 AuditIfNotExists 策略创建 DeployIfNotExists 策略。部署时不会出错,但会错误提示“没有相关资源与策略定义中的效果详细信息匹配”。当评估政策时。当我将
我正在尝试从现有 AuditIfNotExists 策略创建 DeployIfNotExists 策略。部署时不会出错,但会错误提示“没有相关资源与策略定义中的效果详细信息匹配”。当评估政策时。当我将
我正在使用 wunderground 的 json api 来查询我网站上的天气状况。 api 为我提供了一个包含所有必要数据的漂亮 json 对象,但我每天只能进行多次调用。存储这些数据的首选方式是
我有一个名为可视化数据结构的项目。我有这样的 OOP 设计。 Class VisualDataStructures extends JFrame Class ControlPanel extends
这个问题在这里已经有了答案: 关闭 14 年前。 副本: Use javascript to inject script references as needed? Javascript 没有任何指
Android 应用程序遇到了一些 ANR 问题,因此我实现了 StrictMode 策略。以前从未使用过这个,所以希望有人可以帮助解释以下内容: 为什么日志显示 2 个看似相似的违规行为,除了前 4
我目前正在尝试解决一个问题。假设我们在路上行驶,我们知道路上有 10 家酒店。每家酒店都有 0 到 6 星。我的问题是:找到选择星级酒店的最佳解决方案。唯一的问题是:您不能回头去参观您已经决定不去的酒
我正在将我的应用程序迁移到 MVP。从这个 konmik 中获得了有关静态演示者模式的提示 这是我的简要 MVP 策略。为简洁起见,删除了大部分样板和 MVP 监听器。这个策略帮助我改变了方向,证明了
我是一名优秀的程序员,十分优秀!