Debian 12でCUDA環境を更新したところ、GPU自体はPCIデバイスとして認識されているのに、nvidia-smiコマンドが見つからなくなる事象に遭遇しました。
lspci | grep -i nvidiaではGPUが表示される一方で、
nvidia-smi
bash: nvidia-smi: コマンドが見つかりませんとなる状態です。
1、CUDA 13.4からToolkitとドライバが分離された
CUDA 13.4から、CUDA ToolkitとNVIDIA Linuxドライバは独立して管理されるようになりました。cuda-toolkit-13-4をインストールしても、NVIDIAドライバ本体は自動では導入されません。
そのため、次のようにToolkitだけを入れた状態ではnvidia-smiが存在しないことがあります。
sudo apt-get install -y cuda-toolkit-13-42、pinningパッケージはドライバ本体ではない
ドライバのバージョンを固定するためのpinningパッケージを入れていても、それだけでドライバ本体が導入されるわけではありません。
sudo apt install nvidia-driver-pinning-615実際の復旧では、現在動作中のカーネルに対応するヘッダーと、NVIDIA Open Kernel Modulesを明示的に導入しました。
sudo apt update
sudo apt install linux-headers-$(uname -r)
sudo apt install nvidia-driver-pinning-615
sudo apt -V install nvidia-open
sudo reboot再起動後に確認します。
nvidia-smi3、apt autoremoveにも注意する
CUDA 13.4以降はToolkitとドライバの依存関係が分離されたため、以前のCUDAからアップグレードした環境では注意が必要です。
過去にドライバがCUDAパッケージの自動依存として入っていた場合、パッケージ管理上「不要な自動導入パッケージ」と判断され、apt autoremoveでドライバ一式が削除される可能性があります。
GPUサーバーでautoremoveを実行する前には、削除対象を必ず確認する方が安全です。
apt autoremove --dry-run4、GPUが見えることとドライバが使えることは別
lspciでNVIDIA GPUが見えるのは、PCIデバイスとしてOSが認識していることを示すだけです。CUDAやnvidia-smiが利用できることまでは保証しません。
切り分ける際は、lspci、dpkg、nvidia-smiを分けて確認すると原因を追いやすくなります。
lspci | grep -i nvidia
dpkg -l | grep -E "nvidia|cuda"
which nvidia-smi
nvidia-smi5、まとめ
CUDAのメジャー・マイナー更新では、単にToolkitのバージョンだけを見るのではなく、ドライバの配布方法やパッケージ依存関係の変更も確認する必要があります。
今回のようにGPUは見えているのにnvidia-smiが消えた場合は、ハードウェア故障を疑う前に、ドライバ本体がインストールされているかを確認するのが近道です。


