LogoTensorFusion 文档
LogoTensorFusion 文档
首页

快速开始

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

应用操作

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

自定义AI基础设施

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

维护与优化

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

故障排除

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

参考

工作负载配置

对比

与NVIDIA vGPU比较与MIG/MPS对比与趋动科技对比与 Run.AI 对比与HAMi的对比
终端用户参考

工作负载配置

本文档解释了如何使用Pod Annotation和WorkloadProfile自定义资源为AI应用分配vGPU资源。

添加 Pod 注解

在Pod metadata中可以添加以下注解。

注意:如果一个 Pod 内有多个容器需要使用 GPU,请提供每个容器的 GPU 使用数量,建议使用 tensor-fusion.ai/container-gpu-count 指定各容器的卡数。 tensor-fusion.ai/container-gpus 为系统写回的容器与 GPU ID 映射,一般无需手动设置,不建议用户手动填写。

启用 TensorFusion 的标签

tensor-fusion.ai/enabled 是一个 label(不是 annotation),用于显式启用或禁用 TensorFusion。通常配置在 metadata.labels 中:

metadata:
  labels:
    tensor-fusion.ai/enabled: "true"

与 tensor-fusion.ai/enabled-replicas 的关系:enabled 负责在工作负载层面开启/关闭 TensorFusion;enabled-replicas 用于在开启后控制启用的副本数量以实现灰度发布。当 enabled 为 false 时,enabled-replicas 不生效。

注解参考

基础注解

注解描述示例值
tensor-fusion.ai/tflops-request每个 vGPU worker 每个 GPU 设备请求的 TFLOPs(FP16) 算力'10'
tensor-fusion.ai/vram-request每个 vGPU worker 每个 GPU 设备请求的 VRAM(显存或帧缓冲)4Gi
tensor-fusion.ai/tflops-limit每个 vGPU worker 每个 GPU 设备允许的最大 TFLOPs(FP16) 算力'20'
tensor-fusion.ai/vram-limit每个 vGPU worker 每个 GPU 设备允许的最大 VRAM(显存或帧缓冲)4Gi
tensor-fusion.ai/inject-container要注入 GPU 资源的容器,多个容器可用逗号分隔python
tensor-fusion.ai/qos服务质量等级low medium high critical
tensor-fusion.ai/is-local-gpu将工作负载调度到运行 vGPU worker 的同一台 GPU 服务器以获得最佳性能,默认为 false'true'
tensor-fusion.ai/gpu-count请求的 GPU 设备数量,每个 vGPU worker 将映射到此字段设置的 N 个物理 GPU 设备,VRAM/TFLOPs 资源消耗将按此字段缩放,默认为 1,您的 AI 工作负载可以获取 cuda:0 设备'4'
tensor-fusion.ai/gpupool指定目标 GPU 池default-pool
tensor-fusion.ai/vendor指定 GPU/NPU 厂商:NVIDIA AMD Ascend Intel Hygon MetaX MThreads Cambricon Enflame Qualcomm Cerebras AWSNeuron GoogleNVIDIA

高级注解

注解描述示例值
tensor-fusion.ai/gpu-model指定 GPU/NPU 型号A100 H100 L4 L40s
tensor-fusion.ai/dedicated-gpu与 tensor-fusion.ai/gpu-model 注解一起使用,为当前工作负载独占整卡'true'
tensor-fusion.ai/isolation包括 shared soft hard partitioned 四种隔离模式soft
tensor-fusion.ai/compute-percent-request计算资源请求百分比 (0-100),与 TFLOPS request 互斥,仅需设置其一'100'
tensor-fusion.ai/compute-percent-limit计算资源限制百分比 (0-100),与 TFLOPS limit 互斥,仅需设置其一'100'
tensor-fusion.ai/gpu-indices指定 GPU 设备索引 (0-N),限制可调度设备范围,请求多卡时逗号分隔'0,1'
tensor-fusion.ai/container-gpu-count多容器 Pod 中每个容器的 GPU 数量(JSON 字符串,容器名到数量的映射)。若不设置,默认所有容器共享同一组 GPU'{"container-a":1,"container-b":2}'
tensor-fusion.ai/container-gpus容器到 GPU ID 的映射(JSON 字符串)。由系统在调度后写回,用于记录每个容器绑定的 GPU ID'{"container-a":["gpu-1","gpu-2"],"container-b":["gpu-3"]}'
tensor-fusion.ai/workload指定 TensorFusionWorkload 名称,如存在则共享同一组 vGPU workerpytorch-example
tensor-fusion.ai/workload-profile引用 WorkloadProfile 以重用预定义参数default-profile
tensor-fusion.ai/enabled-replicas设置为不大于 ReplicaSet 副本数的任意值,用于 TensorFusion 灰度发布'1','42'
tensor-fusion.ai/autoscale启用自动伸缩(基于历史用量自动设置 GPU 资源)'true'
tensor-fusion.ai/autoscale-target自动伸缩目标资源:compute(算力卡百分比/TFLOPs)、vram(显存)或 all(同时)'all'
tensor-fusion.ai/standalone-worker-mode当 is-local-gpu 为 true 时,若该选项为 false,则 vGPU worker 会注入到 init container 中以获得最佳性能,但可能存在用户绕过 vGPU worker 直接使用物理 GPU 的风险;当 is-local-gpu 为 false 时,此选项无效'true'
tensor-fusion.ai/disable-features关闭 TensorFusion 内置功能的开关,可用逗号分隔多个功能'gpu-limiter,gpu-opt,mem-manager'

示例配置

kind: Deployment
apiVersion: apps/v1
metadata: {}
spec:
  template:
    metadata:
      labels:
        tensor-fusion.ai/enabled: "true"
      annotations:
        tensor-fusion.ai/inject-container: python # 如果多个容器使用 GPU,可以用逗号分隔
        tensor-fusion.ai/tflops-limit: '20'
        tensor-fusion.ai/tflops-request: '10'
        tensor-fusion.ai/vram-limit: 4Gi
        tensor-fusion.ai/vram-request: 4Gi
        tensor-fusion.ai/qos: medium
        tensor-fusion.ai/workload-profile: default-profile # WorkloadProfile 作为模板,优先级低于annotation
        tensor-fusion.ai/is-local-gpu: 'true'
        tensor-fusion.ai/gpu-count: '1' # 每个 TensorFusion Worker 的 GPU 设备数量
    spec: {}

配置 WorkloadProfile 自定义资源

如需使用自动扩缩容等高级功能,要创建一个WorkloadProfile并在 Pod Annotation中引用。

apiVersion: tensor-fusion.ai/v1
kind: WorkloadProfile
metadata:
  name: example-workload-profile
  namespace: 与您的工作负载相同的命名空间
spec:
  # AI算力资源需求
  resources:
    requests:
      tflops: "5"
      vram: "3Gi"
    limits:
      tflops: "15"
      vram: "3Gi"
  # Worker的数量,通常与Deployment的replicas相同
  replicas: 1

  # 将Pod调度到和GPU Worker同一台GPU服务器提升性能(可选)
  isLocalGPU: true

  # 指定池名称(可选)
  poolName: default-pool

  # 指定 QoS 等级(默认为 medium)
  qos: medium

  # 指定每个Worker的GPU设备数量(可选,默认为1)
  gpuCount: 1

  # 指定特定GPU/NPU机型(可选)
  gpuModel: A100

  # 自动扩缩容配置选项(可选)
  autoScalingConfig: {}

然后在Pod Annotation中引用,若Annotation中存在相同配置,WorkloadProfile优先级较低:

tensor-fusion.ai/workload-profile: example-workload-profile

更多内容请参考WorkloadProfile详细配置选项。

查询指标和日志

从GreptimeDB查询原始监控指标和日志数据

TensorFusionWorkload

TensorFusionWorkload is the Schema for the tensorfusionworkloads API.

目录

添加 Pod 注解
启用 TensorFusion 的标签
注解参考
示例配置
配置 WorkloadProfile 自定义资源