GPU共享调度(1) 本文介绍GPU共享调度,实现GPU的共享和隔离能力。 前提条件 已创建Kubernetes集群,安装好智算套件,并且集群包含NVIDIA GPU节点。 使用限制 共享GPU调度目前支持仅申请显存和同时申请显存和算力两种任务,这两种任务不能同时存在于一个节点上,即一个节点只运行仅申请显存的任务,或者只运行同时申请显存和算力的任务。 为工作负载申请算力和显存时,有如下限制: 每一张GPU提供的算力按100计量,代表这张卡的100%算力,例如申请50代表使用GPU卡的50%算力。 显存的计算单位为MiB,比如申请1000,则代表工作负载需要1000MiB的显存资源。 共享GPU调度标签说明 用户可根据实际使用场景,选择 【仅申请显存】和 【同时申请显存和算力】其中一种的调度能力,给节点打上标签,启用共享调度的能力。 标签 标签值 说明 ack.node.gpu.schedule egpu 仅显存隔离,不限制算力 ack.node.gpu.schedule coremem 显存隔离和算力限制 场景一:仅显存隔离,不限制算力 步骤1:节点配置共享GPU调度标签。 shell kubectl label no ccse.node.gpu.scheduleegpu 步骤2:提交任务,任务YAML如下: shell apiVersion: apps/v1 kind: Deployment metadata: name: gpusharetest namespace: default spec: replicas: 1 selector: matchLabels: app: gpusharetest template: metadata: labels: app: gpusharetest spec: containers: name: gpusharetest image: registryvpccrshangzhou7.cnspinternal.ctyun.cn/library/nvidiasamples:vectoraddcuda11.6.0ubi8 command: sleep 1h resources: limits: ctyun.cn/gpumemory: '2000'
来自: