デフォルトでは順番がGPU応答順で決まる
デフォルトは、早く応答したGPUに0、次のGPUに1...と付与されていく。(単純な経験則によるものと公式ドキュメントに記述)
つまり、実行する度にIDが変わる。
GPUを利用したプログラム実行時に確認しにくいため、PCI BUSのIDに紐付けて管理するよう設定する。
環境変数CUDA_DEVICE_ORDER
により、nvidia-smiが表示するGPUの順番を設定できる。
PCI BUSのIDに紐付けて管理
環境変数CUDA_DEVICE_ORDER
に値を設定する。
ログインユーザー全員に適用する場合は、/etc/profile
に追記する。
echo "CUDA_DEVICE_ORDER=PCI_BUS_ID" >> /etc/profile
個人の場合は、個人のシェル設定ファイルへ追記する。
これにより、nvidia-smi(CUDA API)を使うアプリケーションからGPUを確認する際に、IDが固定される。
ちなみに、デフォルトの値はFASTEST_FIRST
である。