为集群添加ASIC节点

应用型专用集成电路ASIC(Application-Specific Integrated Circuit)芯片的计算能力和计算效率是直接根据特定算法的需要进行定制的,所以具备体积小、功耗低、高可靠性、保密性强、计算性能高、计算效率高等优势。本文介绍如何为集群添加ASIC节点以及ASIC芯片的使用示例。

前提条件

创建ASIC节点池

  1. 登录容器服务管理控制台,在左侧导航栏选择集群列表

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择节点管理 > 节点池

  3. 单击创建节点池,您可以选择实例规格ecs.video-trans.26xhevc,并设置期望节点数为所需节点数量。更多参数,请参见创建和管理节点池

    说明

    当在实例规格列表里没有可用实例时,可选择其他交换机进行尝试。

查看节点挂载的ASIC设备

节点创建成功后,可查看节点挂载的ASIC设备。

  1. 登录容器服务管理控制台,在左侧导航栏选择集群列表

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择节点管理 > 节点

  3. 在目标节点所在行,单击操作列的详情,查看该节点挂载的ASIC设备。image

使用ASIC设备

  1. 执行以下命令,查看集群某个节点中的NETINT ASIC设备数。

    kubectl get nodes <NODE_NAME> -o yaml | grep netint.ca/ASIC

    预期输出:

    netint.ca/ASIC: "12"

    预期输出表明,该节点中包含12NETINT ASIC卡。

  2. 提交一个申请NETINT ASIC设备的任务。

    1. 使用以下YAML示例创建test-asic.yaml文件。

      apiVersion: batch/v1
      kind: Job
      metadata:
        name: test-asic
      spec:
        parallelism: 1
        template:
          metadata:
            labels:
              app: test-asic
          spec:
            containers:
            - name: test-asic
              image: registry.cn-beijing.aliyuncs.com/ai-samples/asic_258:asic
              command:
              - sleep
              - "500"
              resources:
                limits:
                  netint.ca/ASIC: 2 #申请两张NETINT ASIC设备。
            restartPolicy: Never
    2. 执行以下命令,提交任务。

      kubectl create -f test-asic.yaml
  3. 执行以下命令,查看Pod的运行状态是否处于Running。

    kubectl get po -l app=test-asic
  4. 执行以下命令,登录到Pod中。

    kubectl exec -ti test-asic-xxxxx -- bash
  5. Pod中执行以下命令,初始化NETINT ASIC设备。

    ni_rsrc_mon
  6. 执行以下命令,验证NETINT ASIC设备是否可用。

    bash run_ffmpeg.sh