应用型专用集成电路ASIC(Application-Specific Integrated Circuit)芯片的计算能力和计算效率是直接根据特定算法的需要进行定制的,所以具备体积小、功耗低、高可靠性、保密性强、计算性能高、计算效率高等优势。本文介绍如何通过容器服务管理控制台创建ASIC集群,及ASIC芯片的使用示例。
前提条件
创建ASIC节点池
创建ASIC节点池时,选择的节点机型需为ASIC规格。创建节点池,请参见创建节点池,例如您可以选择实例规格ecs.video-trans.26xhevc。关于实例规格的更多信息,请参见实例规格族。
当在实例规格列表里没有可用实例时,可选择其他虚拟交换机进行尝试。
查看节点挂载的ASIC设备
集群创建成功后,可查看节点挂载的ASIC设备。
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在创建集群时配置的Worker节点所在行,单击操作列的
,查看该节点挂载的ASIC设备。
使用ASIC设备
NETINT公司在Docker Hub提供了Base镜像,您可以使用这些镜像构建您的镜像。关于NETINT镜像地址,请参见netint/ni_xcoder_release。以下介绍如何提交一个申请NETINT ASIC设备的任务。
使用Kubectl工具连接ACK集群。具体操作,请参见获取集群KubeConfig并通过kubectl工具连接集群。
执行以下命令,查看集群某个节点总的NETINT ASIC设备数。NETINT ASIC设备的扩展资源名称为netint.ca/ASIC。
kubectl get nodes <NODE_NAME> -o yaml
在输出中有以下预期内容:
netint.ca/ASIC: "12"
预期输出表明,该节点中包含12张NETINT ASIC卡。
提交一个申请NETINT ASIC设备的任务。
使用以下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
执行以下命令,提交任务。
kubectl create -f test-asic.yaml
执行以下命令,查看Pod的运行状态是否处于Running。
kubectl get po -l app=test-asic
执行以下命令,登录到Pod中。
kubectl exec -ti test-asic-zt6ck -- bash
在Pod中执行以下命令,初始化NETINT ASIC设备。
ni_rsrc_mon
执行以下命令,验证NETINT ASIC设备是否可用。
bash run_ffmpeg.sh