はじめに
本記事では、私が最近購入したRTX2080マシンに、GPU対応のxgboostやPyTorchなどのPythonライブラリをインストールした際の手順を示します。
本記事の前提とする環境
本記事では、以下のハード・ソフトを使う前提とします。
- GPU: NVIDIA GeForce RTX 2080
- CPU: Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz
- OS : Ubuntu Linux 18.04
- Python環境: Anaconda3-2018.12-Linux-x86_64
(追記)19/3/18現在、Ubuntu 18.10でもCUDA 10が正式に対応するようになりましたが、本資料では18.04を使う前提として説明します。
本資料の執筆時点(19/01/31)では、xserverに関連するモジュールが新しすぎて、CUDAなどのライブラリがサポートしていなかったためです。
NVIDIA Driverのインストール
まず、GPUドライバの型番とOSに対応したNVIDIA Driverを公式サイトからインストールしてください。
サイトのプルダウンメニューから、お使いのドライバやOSを選択して"SEARCH"ボタンを押すと、最適なドライバのダウンロードページに遷移できます。
https://www.nvidia.com/Download/index.aspx?
CUDA Toolkitのインストール
次に、CUDA Toolkitをインストールします。
CUDAはGPUでの計算処理を扱うライブラリであり、これからインストールするGPU対応のPythonライブラリは、基本的にCUDAを利用します。
バージョン10.0のインストール
CUDA Toolkitにはいくつかのバージョンがありますが、今回はバージョン10.0のものを使います。
理由は、NVIDIAのフォーラムで推奨されていたためです。推奨の根拠はおそらく、2000系のRTXの"Turing architecture"をCUDA Toolkit 10.0からサポートするようになったことと推察されます。
(追記)19/3/18現在は、公式サイトでダウンロードできるデフォルトのCUDA 10はバージョン10.1です。
おそらく10.1でも、10.0と同じく導入可能なはずですが、筆者は動作確認していないことをご了承ください。
インストール手順の確認
CUDA Toolkit 10.0のインストール手順は、下記のページで確認します。
このページでは、利用環境やインストール方法の文字列をページ上で順番に選択していくと、適切なインストール方法を示してくれます。
https://developer.nvidia.com/cuda-downloads
今回は、Ubuntu Linux 18.04でネットワークインストールするので、そのとおりの選択肢を選びました。
選んだ内容は、下記URLのとおりです。
https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1804&target_type=debnetwork
選択肢を選び終わると、19/1/31の時点では以下のとおり、インストールに必要なコマンドが示されます。
ただし、以前に別のバージョンのCUDAやNVIDIA Driverを入れたことがある環境では、ライブラリの競合を避けるため、予めそれらをアンインストールしておくべきです。
$ sudo dpkg -i cuda-repo-ubuntu1804_10.0.130-1_amd64.deb
$ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
$ sudo apt-get update
$ sudo apt-get install cuda
ただ、上記のインストールコマンドは、バージョンアップなどにより適宜変更されるものです。
下記はあくまでも参考にとどめ、正式なものは必ず公式サイトにて確認ください。
一連のコマンドが正常実行できたら、一旦マシンをリブートして次の手順に進みます。
Anaconda3の導入とPython仮想環境の構築
以下の手順でAnaconda3とPython仮想環境を構築します。
- Anacondaの公式環境から、Anaconda3-2018.12-Linux-x86_64.shをダウンロードして実行します。
- Python3.6の仮想環境を作ります。以下、仮想環境の名前は"py36"とします。念の為、仮想環境を作るコマンドを示します。
$ conda create -n py36 python=3.6 anaconda
Pythonライブラリのインストール
下記のとおりにpy36の仮想環境を有効にしたのち、必要なライブラリをインストールしていきます。
$ conda activate py36
例えば、GPU対応のxgboostをインストールするコマンドは、下記のとおりです。
(py36)$ conda install py-xgboost-gpu
他のライブラリのインストール方法の詳細は、下記に示すAnacondaの公式マニュアルを参照ください。
https://docs.anaconda.com/anaconda/user-guide/tasks/gpu-packages/
ただし、PyTorchに関しては、別途PyTorchの公式サイトに示す手順でインストールします。
その具体的な手順は、次章で説明します。
CUDA Toolkit 10.0対応のPyTorchのインストール方法
PyTorchのインストールは、公式サイトのインストール手順が確実です。
PyTorchのインストール方法は下記の公式サイトにあります。
CUDAのときと同じく、利用環境やインストールするバージョンを順次にクリックしていけば、最後に適切なインストール方法が示されます。
これを素直に実行すればOKです。
https://pytorch.org/get-started/locally/
今回は、利用環境などを下記のとおり選択しました。
- PyTorch Build: Stable(1.0)
- Your OS: Linux
- Package: Conda
- Language: Python 3.6
- CUDA: 10.0
19/1/31の時点では、上記の選択を行うと、最後にインストールに必要なコマンドが下記の通り示されます。
ただし、こちらのコマンドもCUDAと同様に参考に留め、最新のコマンドはPyTorch公式サイトより確認ください。
(py36)$ conda install pytorch torchvision cuda100 -c pytorch
最後に
これまでの手順で、必要なライブラリは一通りインストールできているはずですので、あとは好きに使えばOKです。
ただ、GPU対応のライブラリを使ったプログラムでは、GPUリソースの取扱いに関連するいくつかのことを意識しないと、意図通りに実行することができないこともしばしばです。
どういったことを意識し、対策していかねばならないかについては、適宜別の資料にあたっていただければと思います。