RTX4060Ti16GBでnvidia-smiが機能しない
前提
- CPU: Ryzen7 5700X(内臓GPU無)
- GPU: RTX4060Ti 16GB(グラフィックボード型式: GV-N406TWF2OC-16GD)
- MB: TUF GAMING B550-PLUS
- パーツ購入からの自身で組み立て
- OS: Ubuntu Server 22.04.4 LTS
試したこと1
とりあえず公式の言う通りにNVIDIAドライバーをインストール
以下のページで手動検索すると今回のケースでは推奨ドライバーバージョン(ブランチ)は550とのこと
以前同じようにUbuntu ServerにNVIDIAドライバーをインストールしたときに
公式が推奨するubuntu-drivers tool
を使ってはまってしまったことがあったので
今回もAPTをつかった手動インストールにしました
コマンドは以下
sudo apt install linux-modules-nvidia-550-server-generic
ドライバーは正常に入りました
次にNVIDIA Container Toolkitをインストールします。公式は以下です
こちらも正常にインストール完了→念のためreboot
DockerでGPUを使おうとしている方はConfiguring Dockerのパラグラフも忘れずに
※私は忘れました
nvidia-smi
を実行するために
sudo apt install nvidia-utils-550-server
を実行して、nvidia-smi
を実行
No devices were found
??
試したこと2
状況を整理しましょう
- 今回は自分で組み立てをしました、つまりグラフィックボードがちゃんとつけられていない可能性もあります
- ドライバーのバージョンが違う可能性も
- はたまた
nvidia-container-toolkit
が実は正常にインストールできていない?
一番疑わしいのは組み立ての不備です
グラフィックボードとして認識されているか確認します
lspci | grep -i nvidia
07:00.0 VGA compatible controller: NVIDIA Corporation Device 2803 (rev a1)
07:00.1 Audio device: NVIDIA Corporation Device 22bd (rev a1)
NVIDIA製のグラフィックボードということは認識されているようです
いや、そもそもBIOSの設定画面が写ってたんだからグラフィックボードはちゃんとつけられています
一旦これが原因だという線を外しましょう
次に怪しいのはNVIDIAドライバーのバージョンが違う可能性です
検索してみるとubuntu-drivers devices
というコマンドで適当なドライバーのバージョンが分かるようです
$ ubuntu-drivers devices
ERROR:root:aplay command not found
== /sys/devices/pci0000:00/0000:00:03.1/0000:07:00.0 ==
modalias : pci:v000010DEd00002803sv00001458sd00004123bc03sc00i00
vendor : NVIDIA Corporation
manual_install: True
driver : nvidia-driver-535-server-open - distro non-free
driver : nvidia-driver-535-server - distro non-free
driver : nvidia-driver-545 - distro non-free
driver : nvidia-driver-535-open - distro non-free
driver : nvidia-driver-535 - distro non-free recommended
driver : nvidia-driver-545-open - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin
え、そんなに前のやつがおすすめされるの?
とりあえずrecommendedとなっている535のserverバージョンを再インストールしてみましょう
sudo apt --purge remove '*nvidia*550*'
を実行すると既存の550バージョンのドライバー関係がアンインストールできます
では改めて
sudo apt install linux-modules-nvidia-535-server-generic
rebootしてnvidia-smiを実行
No devices were found
???
試したこと3
なにかおかしいとここで気づき、ネットの海にダイブします
参考記事1
以下の記事によるとNouveauドライバー
というものが悪さをする可能性があるとのこと
しかし、私の環境ではもともとこのドライバーは有効になっていませんでした
参考記事2
以下の記事では
Linuxカーネルのバージョンによってはnvidiaドライバをうまく読み込めないことがあります。
とあります。そうなれば私の手には負えません。。
参考記事3
以下の記事ではセキュアブートなるものが有効になっていると同じような現象になるとのこと
しかしまたも私の環境ではそもそも無効になっていました
Claudeに聞いてみる
藁にもすがる思いでClaude 3.5 Sonnetに聞いてみます
GPUが正しく認識されるようBIOS/UEFIの設定を確認する必要があるかもしれません。
とのこと。BIOSにはそのような設定は見当たりません。。
そもそもGPUはシステムには認識されているのです
答え(多分)
丸一日と少しが経過したあたりでひらめきます
これ、RTX4060Tiが原因なんじゃ?
試しに「rtx4060ti server nvidia driver」でググってみます
すると以下の記事がヒットしました
このフォーラムの投稿者も同じくRTX4060Ti 16GBでnvidia-smi
が反応しないようです(しかもドライバーのバージョンが535)
そしてどうやら問題が解決できたようで自身のブログ?記事のリンクを貼られています
この記事によると(意訳)
この記事を見ているということは、OSのインストールが完了してNVIDIAのドライバーをインストールしてもうまくいかなかったでしょう
実際、nvidia-smi
を実行してもグラフィックボードが表示されない
そうなんです、助けてください
下記のコマンドを入力して、Nvidia Corporationなどが表示されるが具体的な製品名(RTX4060Tiなど)が表示されなければ正確な情報を得られていないということ
lshw -numeric -C display
そう!そうなんです!
この場合、PCI ID リポジトリのアップデートでグラフィックスカードの情報を取得するようにします
sudo update-pciids
lspci -k
その後、グラフィックボードが正常に認識されたら安全なドライバーのバージョンを手動インストールします
正直PCI ID リポジトリ
という言葉も初めて聞きましたが半信半疑で実行してみます
nvidia-smiの実行結果のスクショがあるのですが、この方はドライバーのバージョンは550のようです
したがって同様に535をアンインストールしてもう一度550をインストールしてみます
rebootしました。nvidia-smi
を実行してみましょう
nvidia-smi
Thu Jul 18 08:32:24 2024
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.90.07 Driver Version: 550.90.07 CUDA Version: 12.4 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 4060 Ti Off | 00000000:07:00.0 Off | N/A |
| 30% 33C P0 25W / 165W | 1MiB / 16380MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+
長かった。。
追記
上の記事では、このように書かれています
元々RTX4060Tiは8GBのみ発売されていて、後発で16GBが発売されたが性能も落ちて人気のないモデルだ
しかし一部の開発者にとってはRTX4080などの代替品になり得る
つまり、かなりニッチな製品だ
だからこの製品にあう適当なドライバーはないのでは?と思った
実際ドライバーの適合が直接的な原因ではなかったようですが、もしかするとRTX4060Ti 16GBだけの問題にひっかかってしまったのかもしれません
何はともあれ、スタート地点に立てましたのでばりばり開発していきたいと思います
では!