作業メモ(ubuntu16にCUDAインストール)

21 6月

RTX2070をubuntuで使用したいと思って、いろいろとやってみました。

ubnutu18では先にも書きましたが、NVIDIA-Linux-x86_64-418.56.runというファイルをとってきて、インストールしました。しかしなぜか起動の際にVGAの解像度に戻ります。updateをするとよくそうなっていました。それでubunut16を試してみました。最終的にどうするかは決まっていないのですが、作業を記録しておきます。

まず、このサイトからCUDAツールキットなるものを持ってきます(ここにはubnutu18用もあります。あとで試してみたい)。冒頭の図のようなサイトなのですが、debファイルを選択しました。ドライバーのインストールではなくいきなりCDUAのインストールです。ドライバーも同時に入るという記事をみて、そうしました。コマンドを記録します。

Installation Instructions:
`sudo dpkg -i cuda-repo-ubuntu1604-10-1-local-10.1.168-418.67_1.0-1_amd64.deb`
`sudo apt-key add /var/cuda-repo-version/7fa2af80.pub`
`sudo apt-get update`
`sudo apt-get install cuda`

version のところを実際に展開されたフォルダー名をみて変更しました。再起動をかけたら解像度がおおきくなりました。今のところ安定しています。pathを通せということで,.bashrc に下記を加えた。

export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"

pip をインストールする必要あり。synaptic で,python3 の pip を入れた。その後,pip でcupy をインストールした。CUDA とバージョンを合わせて,インストール。

(For CUDA 10.1)
% pip install cupy-cuda101

残念ながら,まだ cupy が上手く動いていない。まだ続くもよう。

デモに関するサイトが在った。自分の環境だと下記のコマンドでホームにソースファイルがコピーされて、NVIDIA_CUDA-10.1_Samples フォルダーが作成された。

/usr/local/cuda/bin/cuda-install-samples-10.1.sh ~

このあと、NVIDIA_CUDA-10.1_Samples フォルダーに入って make コマンドを打つ。

make

bin/x86_64/linux/release フォルダーが作られて、その中に実行ファイルが出来上がった。oceanFFT などを試してみた。

今のところすべてのデモが動いているので CUDA は上手くインストールされているのではないかと思う。

(7月25日)cupy のインストールの続きです。だいたいはこのサイトにあるとおりにやってみました。コマンドとレスポンスをだいたいすべて下記に載せます。

friend@RTX2070:~$ pi
pi1toppm         pilconvert       pinentry-curses  pip3
pi3topbm         pildriver        pinentry-gnome3  pivot_root
pic              pilfile          pinentry-x11     pixeltool
pico             pilfont          ping             
piconv           pilprint         ping6            
pidof            pinentry         pinky            
friend@RTX2070:~$ pip3 install -U setuptools pip
Collecting setuptools
  Downloading https://files.pythonhosted.org/packages/ec/51/f45cea425fd5cb0b0380f5b0f048ebc1da5b417e48d304838c02d6288a1e/setuptools-41.0.1-py2.py3-none-any.whl (575kB)
    100% |████████████████████████████████| 583kB 1.9MB/s 
Collecting pip
  Downloading https://files.pythonhosted.org/packages/62/ca/94d32a6516ed197a491d17d46595ce58a83cbb2fca280414e57cd86b84dc/pip-19.2.1-py2.py3-none-any.whl (1.4MB)
    100% |████████████████████████████████| 1.4MB 1.2MB/s 
Installing collected packages: setuptools, pip
Successfully installed pip-19.2.1 setuptools-41.0.1
friend@RTX2070:~$ pip
pip     pip3    pip3.5  
friend@RTX2070:~$ pi
pi1toppm         pilconvert       pinentry-curses  pip
pi3topbm         pildriver        pinentry-gnome3  pip3
pic              pilfile          pinentry-x11     pip3.5
pico             pilfont          ping             pivot_root
piconv           pilprint         ping6            pixeltool
pidof            pinentry         pinky            
friend@RTX2070:~$ pip freeze | grep cupy
cupy-cuda101==6.1.0
friend@RTX2070:~$ pip install cupy
Collecting cupy
  Downloading https://files.pythonhosted.org/packages/4d/08/2b25443d31ea34cdd259a689d67bc20f19df0c079e1f517ca1bd5bd7e6e2/cupy-6.2.0.tar.gz (3.1MB)
     |████████████████████████████████| 3.1MB 2.0MB/s 
Requirement already satisfied: numpy>=1.9.0 in ./.local/lib/python3.5/site-packages (from cupy) (1.16.4)
Requirement already satisfied: six>=1.9.0 in ./.local/lib/python3.5/site-packages (from cupy) (1.12.0)
Requirement already satisfied: fastrlock>=0.3 in ./.local/lib/python3.5/site-packages (from cupy) (0.4)
Building wheels for collected packages: cupy
  Building wheel for cupy (setup.py) ... done
  Created wheel for cupy: filename=cupy-6.2.0-cp35-cp35m-linux_x86_64.whl size=24912682 sha256=9027a62f136c4600c08726ef6023747cb986b635f09120091110587a420d0ff0
  Stored in directory: /home/friend/.cache/pip/wheels/88/ee/ed/4b7d86efc252bb757081e4e20233aed65d5638d2c1762bc75f
Successfully built cupy
Installing collected packages: cupy
ERROR: Could not install packages due to an EnvironmentError: [Errno 13] 許可がありません: '/usr/local/lib/python3.5/dist-packages/cupy-6.2.0.dist-info'
Consider using the `--user` option or check the permissions.

friend@RTX2070:~$ sudo pip install cupy
[sudo] friend のパスワード: 
sudo: pip: コマンドが見つかりません
friend@RTX2070:~$ whereis pip
pip: /home/friend/.local/bin/pip /home/friend/.local/bin/pip3.5
friend@RTX2070:~$ sudo /home/friend/.local/bin/pip install cupy
WARNING: The directory '/home/friend/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
WARNING: The directory '/home/friend/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting cupy
Requirement already satisfied: six>=1.9.0 in ./.local/lib/python3.5/site-packages (from cupy) (1.12.0)
Requirement already satisfied: numpy>=1.9.0 in ./.local/lib/python3.5/site-packages (from cupy) (1.16.4)
Requirement already satisfied: fastrlock>=0.3 in ./.local/lib/python3.5/site-packages (from cupy) (0.4)
Installing collected packages: cupy
Successfully installed cupy-6.2.0
friend@RTX2070:~$ 

 確か synaptic から pip をインストールしたと記憶していますが,最初 pip ではなくて pip3 というコマンド名になっていました。それで pip3 を使って,setuptools と pip のアップデートをしました。そうすると今度は pip もコマンドに追加されました。
 次は cupy のインストールです。しかし最終段階でインストール先のフォルダーに書き込めず失敗。それで sudo でやろうとしたのですが,今度は pip にパスが通っていなくて,pip の場所を探して再度実行しました。権限が無くてテンポラリーフォルダーに書き込めませんとエラーが出たのですが,なぜかインストールは完了したとのメッセージが返って来ました。先ほどコンパイルをしていたようなのでそのファイルを利用したのだろうか?そんなことってあるのかな?ともかくこれで cupy を使った簡単なコードが動くようになりました。

 『ゼロから作る Deep Learning 2』の4章のコード(ch04/train.py)を動かしてみました。「config.GPU = True」を有効にするという本の記述に加えて,多少のコードの修正が必要となりました。下記に記事があります。

コードを写します。

  • common.np中の np.add.at = np.scatter_add をコメントアウト
  • common.layer中の Embedding 逆伝播の中を以下のif文に書き換え
      if GPU:
      np.scatter_add(dW, self.idx, dout)
      else:
      np.add.at(dW, self.idx, dout)

これでやっと動きました。かなり速い。