5.7. GPU Operator の設定
GPU Operator は、NVIDIA ドライバー、GPU のデバイスプラグイン、NVIDIA Container Toolkit、および GPU プロビジョニングに必要なその他のコンポーネントの管理を自動化します。
前提条件
- GPU Operator がインストールされている。
手順
次のコマンドを実行して、Operator Pod が実行されていることを確認し、namespace 配下の Pod を確認します。
oc get pods -n nvidia-gpu-operator
$ oc get pods -n nvidia-gpu-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE gpu-operator-b4cb7d74-zxpwq 1/1 Running 0 32s
NAME READY STATUS RESTARTS AGE gpu-operator-b4cb7d74-zxpwq 1/1 Running 0 32sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例のような GPU クラスターポリシーのカスタムリソースファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow GPU
ClusterPolicyカスタムリソースが生成されたら、次のコマンドを実行してクラスターにリソースを作成します。oc create -f gpu-cluster-policy.yaml
$ oc create -f gpu-cluster-policy.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
clusterpolicy.nvidia.com/gpu-cluster-policy created
clusterpolicy.nvidia.com/gpu-cluster-policy createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Operator がインストールされ、実行されていることを確認します。
oc get pods -n nvidia-gpu-operator
$ oc get pods -n nvidia-gpu-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: Pod が実行中であることを確認したら、NVIDIA ドライバーの daemonset Pod でリモートシェルを起動し、NVIDIA モジュールがロードされていることを確認します。具体的には、
nvidia_peermemがロードされていることを確認します。oc rsh -n nvidia-gpu-operator $(oc -n nvidia-gpu-operator get pod -o name -l app.kubernetes.io/component=nvidia-driver)
$ oc rsh -n nvidia-gpu-operator $(oc -n nvidia-gpu-operator get pod -o name -l app.kubernetes.io/component=nvidia-driver) sh-4.4# lsmod|grep nvidiaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
オプション:
nvidia-smiユーティリティーを実行して、ドライバーとハードウェアの詳細を表示します。
nvidia-smi
sh-4.4# nvidia-smi
+ 出力例
ドライバーの Pod に接続したまま、
nvidia-smiコマンドを使用して GPU クロックを最大に設定します。oc rsh -n nvidia-gpu-operator nvidia-driver-daemonset-416.94.202410172137-0-ndhzc
$ oc rsh -n nvidia-gpu-operator nvidia-driver-daemonset-416.94.202410172137-0-ndhzc sh-4.4# nvidia-smi -i 0 -lgc $(nvidia-smi -i 0 --query-supported-clocks=graphics --format=csv,noheader,nounits | sort -h | tail -n 1)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
GPU clocks set to "(gpuClkMin 1740, gpuClkMax 1740)" for GPU 00000000:61:00.0 All done.
GPU clocks set to "(gpuClkMin 1740, gpuClkMax 1740)" for GPU 00000000:61:00.0 All done.Copy to Clipboard Copied! Toggle word wrap Toggle overflow nvidia-smi -i 1 -lgc $(nvidia-smi -i 1 --query-supported-clocks=graphics --format=csv,noheader,nounits | sort -h | tail -n 1)
sh-4.4# nvidia-smi -i 1 -lgc $(nvidia-smi -i 1 --query-supported-clocks=graphics --format=csv,noheader,nounits | sort -h | tail -n 1)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
GPU clocks set to "(gpuClkMin 1740, gpuClkMax 1740)" for GPU 00000000:E1:00.0 All done.
GPU clocks set to "(gpuClkMin 1740, gpuClkMax 1740)" for GPU 00000000:E1:00.0 All done.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、リソースが利用可能であることをノードの詳細情報で確認します。
oc describe node -l node-role.kubernetes.io/worker=| grep -E 'Capacity:|Allocatable:' -A9
$ oc describe node -l node-role.kubernetes.io/worker=| grep -E 'Capacity:|Allocatable:' -A9Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow