更新时间:2024-12-04 GMT+08:00
NPU调度
CCE支持在容器中使用NPU资源。
前提条件
- 创建NPU类型节点,具体请参见创建节点。
- 安装huawei-npu插件,具体请参见CCE AI套件(Ascend NPU)。
使用NPU
创建工作负载申请NPU资源,可按如下方法配置,指定显卡的数量。
kind: Deployment
apiVersion: apps/v1
metadata:
name: npu-test
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: npu-test
template:
metadata:
labels:
app: npu-test
spec:
containers:
- name: container-0
image: nginx:perl
resources:
limits:
cpu: 250m
huawei.com/ascend-310: '1'
memory: 512Mi
requests:
cpu: 250m
huawei.com/ascend-310: '1'
memory: 512Mi
imagePullSecrets:
- name: default-secret
通过huawei.com/ascend-310指定申请NPU的数量。
使用huawei.com/ascend-310参数指定NPU数量时,requests和limits值需要保持一致。
指定huawei.com/ascend-310后,在调度时不会将负载调度到没有NPU的节点。如果缺乏NPU资源,会报类似“0/2 nodes are available: 2 Insufficient huawei.com/ascend-310.”的Kubernetes事件。
在CCE控制台使用NPU资源,只需在创建工作负载时,勾选NPU配额,并指定使用NPU芯片的数量。
NPU节点标签
创建NPU节点后,CCE会给节点打上对应标签,如下所示。
$ kubectl get node -L accelerator/huawei-npu NAME STATUS ROLES AGE VERSION HUAWEI-NPU 10.100.2.59 Ready <none> 2m18s v1.19.10-r0-CCE21.11.1.B006-21.11.1.B006 ascend-310
在使用NPU时,可以根据标签让Pod与节点亲和,从而让Pod选择正确的节点,如下所示。
kind: Deployment
apiVersion: apps/v1
metadata:
name: npu-test
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: npu-test
template:
metadata:
labels:
app: npu-test
spec:
nodeSelector:
accelerator/huawei-npu: ascend-310
containers:
- name: container-0
image: nginx:perl
resources:
limits:
cpu: 250m
huawei.com/ascend-310: '1'
memory: 512Mi
requests:
cpu: 250m
huawei.com/ascend-310: '1'
memory: 512Mi
imagePullSecrets:
- name: default-secret
父主题: 调度