特定用途向け集積回路 (ASIC) は、計算能力および計算効率要件を満たすために特定のアルゴリズムに基づいてカスタム設計された集積回路である。 ASICは小さく、電力効率が良い。 ASICは、ワークロードの信頼性と機密性を確保し、コンピューティング効率を向上させます。 このトピックでは、Container Service for Kubernetes (ACK) コンソールでASIC高速化クラスターを作成する方法と、ASICデバイスを使用する方法について説明します。
前提条件
ACK ProクラスターまたはACK専用クラスターが作成されます。
ASICノードプールの作成
ASICノードプールを作成するときに、ASIC高速化インスタンスタイプを選択します。 たとえば、ecs.video-trans.26xhevcインスタンスタイプを選択できます。 ノードプールの作成方法の詳細については、「ノードプールの作成」をご参照ください。 インスタンスタイプの詳細については、「インスタンスファミリーの概要」をご参照ください。
利用可能なASIC高速化インスタンスタイプがない場合は、ノードプールのvSwitchを変更して、再試行してください。
ノードにマウントされたASICデバイスの表示
クラスターを作成した後、クラスター内のノードにマウントされているASICデバイスを表示できます。
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
ワーカーノードを見つけ、[操作] 列の
を選択して、ワーカーノードにマウントされているASICデバイスを表示します。
ASICデバイスの使用
Docker HubでNETINTが提供するベースイメージを使用して、コンテナイメージを構築できます。 NETINTが提供するベースイメージの詳細については、「netint/ni_xcoder_release」をご参照ください。 次のセクションでは、NETINT ASICデバイスを要求するジョブを送信する方法について説明します。
kubectlを使用してACKクラスターに接続します。 詳細については、「kubectl を利用した Kubernetes クラスターへの接続」をご参照ください。
次のコマンドを実行して、クラスター内のノードにマウントされている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 #Request two NETINT ASIC devices. restartPolicy: Never
次のコマンドを実行して、ジョブを送信します。
kubectl create -f test-asic.yaml
次のコマンドを実行して、ポッドが [実行中] 状態かどうかを確認します。
kubectl get po -l app=test-asic
次のコマンドを実行して、ポッドにログインします。
kubectl exec -ti test-asic-zt6ck -- bash
ポッドで次のコマンドを実行して、NETINT ASICデバイスを初期化します。
ni_rsrc_mon
次のコマンドを実行して、NETINT ASICデバイスを使用できるかどうかを確認します。
bash run_ffmpeg.sh