kWatanabe 記事一覧へ

kWatanabe の 技術帖

某企業でOSや仮想化の研究をやっているインフラ系エンジニア。オンプレとクラウドのコラボレーションなど、興味ある技術を綴る。

Debian10でGeForce RTX 3080を使ってCUDAするための準備

先日、激戦を勝ち抜き GeForce RTX 3080 を買いました。

とはいいつつも、私はPCでゲームを殆どしないので、メインマシンは75W級グラボの最高傑作だと思っている Quadro P2200 をそのまま使います。

では、なぜ GeForce RTX 3080 を調達したかなんですが、自宅のなんちゃって IaaS の GPUコンテナ で CUDA するためです。しかし、GeForce RTX 3080 はリリースされたばかり。debian-backportsでもSidでもドライバが古く、3080 を動かせません。

なので、3080 を動かせるドライバに入れ替えることにしました。

2021/02/03 追記

  • 半年の歳月を経て、buster-backports にも、GeForce RTX 3080 対応のドライバがリリースされました。現在は、以下の記事に頼らなくても、debian-backports リポジトリで対応できます。

GeForce RTX 3080 を動かせるLinuxドライバ

GeForce RTX 3080 を使うためには、455.23 以上でなければなりません。2020/10/15現在、Debian の各リポジトリnvidia-driver のバージョンは以下の通りです。

リポジトリ バージョン
stable (buster) 418.152.00-1
backports (buster-backports) 450.66-1~bpo10+1
testing (bullseye) 450.66-1
unstable (sid) 450.66-1

不安定版のSidを以てしても、まだ足りません。NVIDIAから公式バイナリを入手する手もあるのですが、できれば apt で一元管理したい。そこで experimental リポジトリを使うことにしました。

experimental リポジトリ

要するに、Sid (不安定版)に取り込む前の開発用リポジトリです。ページには「一般ユーザはこのリポジトリのパッケージを使ってくれるな」(意訳)と書いてあります。

また、各種パッケージのページにも以下の警告が記述されています。

  • 警告: このパッケージは experimental ディストリビューションのものです。つまり、おそらく不安定でバグがあり、それどころかデータの損失を起こすかもしれません。使用前には、変更履歴やその他の参照可能なドキュメントを必ず調べてください。

wiki.debian.org

2020/10/15現在、experimental リポジトリnvidia-driver は455.23です。ちょうど GeForce RTX 3000 をサポートし始めたバージョンです。

導入

手順自体は、debian-backports や Sid を使う時と変わりません。/etc/apt/sources.listにexperimentalリポジトリを追加して、apt するだけです。

$ sudo vim /etc/apt/sources.list
deb http://deb.debian.org/debian/ experimental main non-free contrib

$ sudo apt update

$ sudo apt -t experimental install nvidia-driver

運が良ければ、ちゃんと稼働してくれることでしょう。

2020/11/28 追記

  • もし依存パッケージが解決できないようなら testingbuster-backports リポジトリも追加してください。
  • testing を登録した際、システム全体 testing にアップグレードされることを防ぐために /etc/apt/apt.confAPT::Default-Release "stable"; を付けると良いと思います。

2021/01/20 追記

  • ついに、testing に 460 のドライバが降りてきました。
  • なので、危ない橋を渡って experimental リポジトリを使わなくても、testing リポジトリを足すだけで大丈夫になりました。
  • また、今年の夏頃にリリース予定の Debian 11 では、何もしなくても RTX 3080 が使えるようになります。

2021/02/03 追記

  • 半年の歳月を経て、buster-backports にも、460 のドライバが降りてきました。
  • なので、今は Debian10 でも、buster-backports リポジトリを足すだけで、RTX 3080 が使えるようになりました。

結果

まだ、GeForce RTX 3080 は組み込んでいませんが、ドライバだけ入れ替えました。GPUをパススルーしたコンテナからも、ちゃんと新しいドライバが動いています。

$ sudo nvidia-smi
Thu Oct 15 00:43:32 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 455.23.04    Driver Version: 455.23.04    CUDA Version: 11.1     |
|-------------------------------+----------------------+----------------------+
| 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  GeForce GTX 105...  On   | 00000000:0A:00.0 Off |                  N/A |
| 29%   31C    P8    N/A /  75W |      1MiB /  4040MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

あとは、GeForce RTX 3080 を組み込んで CUDA が動けば問題なしですね。

2020/10/16追記

GeForce RTX 3080 組み込み完了しました。 コンテナの中から、ちゃんと GeForce RTX 3080 を認識できています。バッチリですね。

f:id:kWatanabe:20201016214235p:plain
nvidia-smiにてGeForce RTX 3080を認識している様子

参考

大元のGPUコンテナを作った時の記事はこちら。 kwatanabe.hatenablog.jp