资讯动态

Olares AI 算力资源管理指南:加速器模式切换、显存分配与资源释放

发布时间:2026/10/16 3:08:19 来源:尧图企业网站定制
云原生后端运维【免费下载链接】TerminusOpen-Source Personal Cloud OS for Always-On Agents项目地址https://gitcode.com/gh_mirrors/terminus2/Terminus点击查看免费下载Olares 将 GPU 等加速设备作为集群共享资源统一管理为 AI 推理、图像与视频生成、转码和游戏等负载提供算力。本文以 Olares 系统设置的AI 算力模块为主线完整讲解加速器的资源分配原理、三种共享模式分时共享、容量切分、独占分配的选择与切换以及恢复应用时如何手动分配资源、如何从加速器中移除应用释放硬件资源并结合仓库源码剖析其背后的调度与设备插件实现。读完本文你将能在多节点集群中自主规划 GPU 显存配额、排查应用无法启动的资源问题并理解 Olares 前端、API 与设备插件之间的完整链路。了解加速器Olares 使用加速器来运行 AI 推理、图像与视频生成、转码和游戏等工作负载。加速器可以是 GPU、集成加速芯片也可以是作为兜底能力的 CPU 资源。在深入操作之前先理解 Olares 如何对加速器建模、如何分配资源以及支持哪些资源类型与共享模式。加速器如何分配资源Olares 会把各类加速设备如 GPU作为集群共享资源管理。应用不需要直接管理硬件Olares 会根据应用的加速器需求查找匹配的资源并在容量足够时将应用绑定到对应资源上。对于需要加速器的应用Olares 在分配资源时会综合判断资源类型例如 NVIDIA GPU。加速器模式例如分时共享、容量切分或独占分配。总显存与空闲显存。应用显示为单 GPU 还是多 GPU即应用只能绑定一块加速器还是可以同时绑定多块加速器。当前已经分配到同一资源上的应用。刚安装好的应用如果有足够且匹配的加速器Olares 会自动将它绑定到合适的资源上。后续如果应用停止运行或者你想选择其他资源或模式可以在恢复应用时手动分配资源。从源码结构看这套模型在前端以GPUInfo接口承载包含节点名、资源 ID、设备数量、独立显存devmem、计算核心devcore、资源类型、当前模式sharemode以及已分配应用列表等字段见 gpu.ts。其中allowedShareModes表示该加速器可用的模式集合前端模式下拉菜单正是依据它渲染选项。支持的资源类型Olares 可以展示以下加速器类型| 资源类型 | 说明 | | -- | -- | |NVIDIA| 通用 NVIDIA GPU。 | |NVIDIA GB10| NVIDIA GB10 SoC 设备。 | |Apple M 系列| Apple M 系列芯片。 | |AMD Strix Halo| AMD Strix Halo 设备。 | |CPU| 无可用加速设备时使用的兜底资源。 |:::info 当前版本暂不覆盖 AMD GPU 与 AMD APU。 :::这与 CLI 中维护的设备类型常量表基本对应cpu强制使用 CPU、nvidia独立 NVIDIA 显卡由 HAMi 接管、nvidia-gb10NVIDIA GB10 Superchip 及统一内存、apple-mApple M 系列 SoC、intelIntel 集成 GPU、amdAMD 集成 GPU、intel-gpuIntel 独立 GPU、amd-gpuAMD 独立 GPU、moore-soc摩尔线程 SoC详见 types.go。文档所列类型是当前界面可展示的加速器子集尚未覆盖 AMD GPU 与 AMD APU。加速器模式对于支持模式切换的加速器模式决定了应用如何共享资源。不是所有加速器都支持全部三种模式。模式下拉菜单只会显示当前加速器可用的模式。| 模式 | 描述 | 使用场景与说明 | | -- | -- | -- | |分时共享| 多个应用随时间共享同一块加速器。每个应用都可以看到完整资源但工作负载会轮流使用资源。 |适合同时运行多个需要加速器的应用。说明每个应用的配额固定为 GPU 的全部独立显存无法调整。节点内存检查也可能阻止启动详见下文。 | |容量切分| 多个应用共享同一块加速器并拥有固定的显存配额。 |适合同时运行多个需要加速器的应用并控制显存占用。说明启动应用时Olares 默认会为应用分配它所需的最低显存也可以调整配额。 | |独占分配| 单个应用使用整块加速器。 |适合需要最大性能的重负载任务例如大模型、渲染或高性能游戏。说明在释放该资源前其他应用无法绑定到这块资源。 |前端实现中三种模式由VRAMMode枚举定义Single 0独占分配、MemorySlicing 1容量切分、TimeSlicing 2分时共享对应的文案分别描述为单个应用独占 GPU多个应用共享单块 GPU 并分配固定显存多个应用轮流使用同一块 GPU见 index.ts。界面会依据加速器的allowedShareModes过滤出可选项因此不支持的模式不会出现在下拉菜单中。:::info 分时共享模式下的节点内存计算 在分时共享模式下Olares 当前按以下方式检查节点内存所需内存应用内存需求 GPU 独立显存调度阈值内的可用内存节点总内存 × 90% - 节点已用内存内存缺口所需内存 - 可用内存例如某个应用需要 20 GiB 内存GPU 独立显存为 16 GiB所需内存20 GiB 16 GiB 36 GiB节点总内存为 46.89 GiB、已用内存为 7.41 GiB 时可用内存为46.89 GiB × 90% - 7.41 GiB 34.79 GiB内存缺口36 GiB - 34.79 GiB 1.21 GiB由于内存缺口大于零Olares 无法将该应用调度到此节点。 :::注意分时共享模式下每个应用的显存配额固定为 GPU 的全部独立显存无法像容量切分那样按需调整这也是该模式下节点内存检查公式中需要把GPU 独立显存计入所需内存的原因——调度器要保证整机内存足以承载应用本身与其可见的整块显存。查看 AI 算力资源前往设置AI 算力可以查看集群中所有节点上的加速器资源。页面会展示每个可用资源的以下信息节点名称。资源类型例如NVIDIA GPU。节点的独立显存。加速器型号例如NVIDIA GeForce RTX 4060 Ti。当前模式例如分时共享、容量切分或独占分配。当前分配到该资源上的应用。页面数据来源于 GPU 资源接口前端通过 GPU Store 拉取并渲染为资源卡片见 gpu.ts。当集群中存在多个 GPU 节点时概览页会列出全部资源供你对比各节点的显存与模式后再做分配决策。切换资源模式:::warning 注意 切换模式会停止当前正在使用该加速器的所有应用并移除它们已分配的资源。如需再次使用这些应用需要重新分配资源并启动。 :::前往设置AI 算力点击资源卡片上的管理。在管理节点页面找到目标加速器打开模式下拉菜单然后选择分时共享、容量切分或独占分配。切换模式的请求由 GPU Store 的setGpuMode动作发出见 gpu.ts前端通过POST /api/gpu/mode提交新的模式成功后再刷新资源列表。由于切换模式会回收该资源上的全部应用操作前请确认已停止相关应用或做好重新分配的准备。恢复应用并分配资源可以从设置或应用商店恢复已停止的应用并手动分配资源。打开以下任一位置设置应用。应用商店我的 Olares。找到目标应用点击恢复。查看启动对话框顶部的应用需求包括资源类型、资源绑定能力和显存需求。在选择 GPU下选择一个资源。弹窗会显示该资源的独立显存、模式、当前应用配额和已分配的应用。如果应用无法启动请根据提示处理如果可用配额低于应用的最低需求展开已分配的应用点击应用旁的移除以释放资源或选择其他 GPU。如果 GPU 的独立显存总量低于应用的最低需求移除应用也无法解决需要选择其他 GPU。在分时共享模式下节点内存检查也可能阻止启动。提示信息会显示节点内存总量、已用内存和应用所需内存。请稍后重试或选择其他节点。对于容量切分模式当前应用配额默认为应用所需的最低显存。如需调整直接在配额输入框中输入新的值。该值不能超过可用配额。:::info 重新分配显存 应用分配完成后不能直接调整显存。如需稍后修改必须先从加速器中移除该应用再重新恢复应用。 :::点击启动。配额调整的前端校验逻辑可以在 gpu.ts 中看到当 GPU 处于容量切分模式时可选应用列表会过滤掉已在其他节点占用资源、以及最低显存需求超过当前可用显存的应用只有当应用的requiredGpu不超过memoryAvailable时才允许绑定。这也解释了为什么恢复对话框会把独立显存总量与可用配额分开展示——两者共同决定应用能否启动。容量切分模式下设置显存配额的界面如下配额输入框的取值上限即该资源的可用配额从 AI 算力资源中移除应用从加速器中移除应用会停止该应用并释放它占用的硬件资源。如果你只是想从设置中主动释放资源而不是立即启动其他应用可以使用此流程。如需稍后再次使用该应用需要重新分配资源并启动应用。:::warning 注意 如果应用绑定了多块加速器或绑定了跨节点的多块加速器从其中一个资源中移除该应用会同时释放该应用占用的全部加速器并停止该应用。 :::前往设置AI 算力点击资源卡片上的管理。在已分配的应用中找到目标应用然后点击移除。在确认对话框中点击移除。:::info 资源释放需要一点时间。如果移除后仍没有可分配给该应用的资源刷新资源列表后再查看。 :::移除动作对应 GPU Store 的unbindApplication通过POST /api/gpu/unassign/app提交见 gpu.ts跨资源迁移把应用从一块 GPU 换到另一块则走PUT /api/gpu/assignments/bulk的批量分配接口一次调用同时完成解除旧绑定 绑定新资源见 gpu.ts。源码视角Olares 如何管理 GPU 算力上文介绍的是面向用户的界面操作其背后是一条完整的设备插件 调度器 标签体系 CLI 安装管线链路。设备层基于 HAMi 实现。Olares 维护了自己的 HAMi 分支用于跨应用管理 GPU 资源见 infrastructure/gpu/README.md。集群中的 GPU 节点运行hami-device-plugin由gpu-scheduler位于os-gpu命名空间与hami-scheduler位于kube-system共同完成 GPU 的感知与调度这些组件在安装流程末尾由 CLI 通过 Helm Chart 部署Chart 位于wizard/config/gpu/hami见 tasks.go。调度器会将设备信息上报为可查询的指标如hami_container_vcore_allocated、hami_memory_used、hami_device_temperature等供仪表盘与 CLI 的 GPU 详情页展示实时分配率、显存用量、功耗与温度。节点能力通过标签向调度器通告。CLI 在启用 GPU 后会给节点打上gpu.bytetrade.io/modetrue形式的存在即支持标签例如gpu.bytetrade.io/nvidia、gpu.bytetrade.io/nvidia-gb10同时维护gpu.bytetrade.io/driver、gpu.bytetrade.io/cuda、gpu.bytetrade.io/cuda-supported等驱动信息标签见 types.go 与 tasks.go。一个节点可能同时携带多种加速器的模式标签卸载 NVIDIA 驱动栈时只清理 NVIDIA 相关的标签同一节点上的其他加速器如 Intel 集成 GPU不受影响见 tasks.go。从源码结构可以推断前端GPUInfo.allowedShareModes正是基于这类节点标签判断该资源支持哪些模式。驱动与插件由 CLI 命令编排。CLI 提供gpu enable、gpu disable、gpu install、gpu uninstall与gpu status等命令见 root.go。启用 GPU 的安装管线依次执行安装 CUDA 驱动runfile DKMS、配置 NVIDIA Container Toolkit 的 containerd runtime、重启 K3s 与 containerd、安装 HAMi 插件并更新节点 GPU 标签、最后轮询校验 device-plugin 进入 Running 状态见 module.go。NVIDIA 驱动的 containerd runtime 配置以 drop-in 文件/etc/containerd/conf.d/99-nvidia.toml承载避免直接改动 containerd 主配置从而不影响 Olares 管理的镜像仓库配置见 tasks.go 与 tasks.go。界面与监控联动。设置页的 AI 算力模块与仪表盘的 GPU 概览共用同一套 HAMi 数据源在仪表盘中还可以跟踪每块 GPU 与每个任务的实时分配率、显存用量趋势等见 监控资源使用情况。当显存不足导致 GPU 应用无法获得所需显存时可进一步参考显存不足排查指南见 GPU 应用安装或恢复后处于暂停状态。资源监控资源使用情况在仪表盘中跟踪 GPU 和系统使用情况。赞分享云原生后端运维【免费下载链接】TerminusOpen-Source Personal Cloud OS for Always-On Agents项目地址https://gitcode.com/gh_mirrors/terminus2/Terminus点击查看免费下载相关推荐Olares 加速器资源管理实战GPU 模式切换、应用调度与 VRAM 释放Olares 加速器资源管理实战GPU 模式切换、应用调度与 VRAM 释放 Olares 将 GPU、集成加速芯片与 CPU 兜底资源统一视为集群中的共享加云原生后端运维GASDocumentation内存管理资源加载与释放GASDocumentation内存管理资源加载与释放 概述 在Unreal Engine 5的Gameplay Ability SystemGAS项目中游戏开发示例工程Armbian on Amlogic S9xxx设备完整实施方案从TV盒子到专业服务器的转型之路Armbian on Amlogic S9xxx设备完整实施方案从TV盒子到专业服务器的转型之路 项目概述与技术定位 Amlogic S9xxx系列Armbi嵌入式固件开发工具上一篇practical-aspnetcore 实战在 ASP.NET Core gRPC 中使用 Protocol Buffers Map 类型传输字典数据grpc-7 示例详解下一篇终极SwiftLint配置指南10分钟实现Swift代码规范自动化检查创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑