LogoTensorFusion 文档
LogoTensorFusion 文档
首页

快速开始

TensorFusion 概览在 Kubernetes 安装在虚拟机/服务器安装(K3S)Helm 快速安装在宿主机/虚拟机安装TensorFusion 架构

应用操作

创建 AI 应用注解使用场景配置自动扩缩容迁移现有应用最佳实践

自定义AI基础设施

生产级部署指南QoS 级别与计价云厂商集成(BYOC)管理许可证

维护与优化

组件更新配置告警GPU 热迁移预加载模型优化 GPU 效率

故障排除

问题处理手册链路追踪/性能分析查询指标和日志

参考

对比

与 NVIDIA vGPU 对比与 MIG/MPS 对比与趋动科技对比与 NVIDIA Run:ai 对比与 HAMi 的对比

GPU 热迁移

GPU 上下文快照和热迁移目前能做什么,以及没有热迁移时怎么挪动 GPU 工作负载

GPU 热迁移是指把运行中的 GPU 工作负载挪到另一张 GPU 或另一个节点,进程不重启:先给 GPU 上下文做快照,在目标位置恢复,应用接着跑。TensorFusion 的开源组件不包含这项功能,它属于商业版。本页说明现在有什么、没有什么,以及在此之前怎么挪动工作负载。

目前有什么

能力现状
对运行中的 GPU 上下文做快照和恢复开源的 controller 和 hypervisor 不支持。hypervisor API 里有 POST /api/v1/workers/<id>/snapshot 和 POST /api/v1/workers/<id>/resume 两个接口,但都返回 501 Not Implemented。也没有任何 CRD 字段或注解可以发起迁移
通过重启来挪动工作负载支持。节点合并和碎片整理会驱逐 Pod,让调度器把它放到别处。进程会重启,模型要重新加载
让某个节点不被自动挪动支持,给 GPUNode 打 tensor-fusion.ai/do-not-disrupt 标签

需要热迁移,请联系我们了解商业版。

没有热迁移时怎么挪动工作负载

没有热迁移,挪动就等于换个地方重启。要按“会重启”来安排。

  1. 让工作负载经得起重启。在 Service 后面至少跑两个副本,或者接受短暂中断。同时加上 PodDisruptionBudget:节点上只要有一个 TensorFusion worker Pod 没有被 PodDisruptionBudget 覆盖,碎片整理就会跳过这个节点。

  2. 选择挪动方式:

    • 自动。 在资源池上开启碎片整理。它按 cron 定时腾空在用 GPU 较少的节点,一次只驱逐一个 Pod,而且先模拟调度,确认节点上每个 Pod 都有去处才动手。见优化 GPU 效率。

    • 手动。 把节点设为不可调度,然后删除占着 GPU 的 Pod。本地 GPU 工作负载删的是应用 Pod;远程 GPU 工作负载删的是 worker Pod,它带有 tensor-fusion.ai/component=worker 标签。这个 Pod 必须由会重建它的控制器管理。

      kubectl cordon <node>
      kubectl delete pod <pod> -n <namespace>
      kubectl get pods -n <namespace> -o wide
      kubectl uncordon <node>

      新建的 Pod 会出现在另一个节点上。

  3. 不希望某个节点被节点合并和碎片整理处理时,给它的 GPUNode 打标签:

    kubectl label gpunode <node> tensor-fusion.ai/do-not-disrupt=true

下一步

  • 优化 GPU 效率:节点合并和碎片整理的配置。
  • 预加载模型:缩短挪动之后的重启时间。

配置告警

把 TensorFusion 的告警发到你的通知渠道,并调整或新增告警规则

预加载模型

TensorFusion 在缩短模型冷启动上做了什么、没做什么,以及怎么用 Kubernetes 标准卷缓存模型权重

目录

目前有什么
没有热迁移时怎么挪动工作负载
下一步