1. bohemian916

    Posted

    bohemian916
Changes in title
+UbuntuにCUDAを入れようとしたらハマった
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,145 @@
+# 背景
+Deep Learning用に手元のcuda専用のグラボが指してあるLinuxPCにcudaを入れるべく、[公式ドキュメント](http://developer.download.nvidia.com/compute/cuda/7_0/Prod/doc/CUDA_Getting_Started_Linux.pdf)の通りにインストールしたらハマりました。
+
+# 試した環境
+* ubuntu 14.04
+* GeForce GTX 560
+* CUDA 7.0
+
+# 行った手順
+## nvidiaの環境の確認
+```
+lspci | grep -i nvidia
+=====================
+01:00.0 VGA compatible controller: NVIDIA Corporation GF114 [GeForce GTX 560] (rev a1)
+01:00.1 Audio device: NVIDIA Corporation GF114 HDMI Audio Controller (rev a1)
+```
+
+## ubuntuの環境確認
+```
+uname -m && cat /etc/*release
+===================================
+x86_64
+DISTRIB_ID=Ubuntu
+DISTRIB_RELEASE=14.04
+DISTRIB_CODENAME=trusty
+DISTRIB_DESCRIPTION="Ubuntu 14.04.2 LTS"
+NAME="Ubuntu"
+VERSION="14.04.2 LTS, Trusty Tahr"
+ID=ubuntu
+ID_LIKE=debian
+PRETTY_NAME="Ubuntu 14.04.2 LTS"
+VERSION_ID="14.04"
+HOME_URL="http://www.ubuntu.com/"
+SUPPORT_URL="http://help.ubuntu.com/"
+BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
+```
+
+## gcc環境設定
+```
+sudo apt-get install build-essential
+gcc --version
+```
+
+## CUDA 7.0 toolkit インストール
+
+### インストーラーのダウンロード
+```
+wget http://developer.download.nvidia.com/compute/cuda/7_0/Prod/local_installers/rpmdeb/cuda-repo-ubuntu1404-7-0-local_7.0-28_amd64.deb
+```
+
+### インストール
+```
+sudo dpkg -i cuda-repo-ubuntu1404-7-0-local_7.0-28_amd64.deb
+sudo apt-get update
+sudo apt-get install cuda
+```
+
+### 環境変数設定
+```
+export PATH=/usr/local/cuda-7.0/bin:$PATH
+LD_LIBRARY_PATH=/usr/local/cuda-7.0/lib64:$LD_LIBRARY_PATH
+source .bashrc
+sudo init 6
+```
+
+### 再起動
+```
+sudo init 6
+```
+
+### 確認
+```
+cat /proc/driver/nvidia/version
+
+NVRM version: NVIDIA UNIX x86_64 Kernel Module 346.46 Tue Feb 17 17:56:08 PST 2015
+GCC version: gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04)
+```
+
+```
+nvcc -V
+
+nvcc: NVIDIA (R) Cuda compiler driver
+Copyright (c) 2005-2015 NVIDIA Corporation
+Built on Mon_Feb_16_22:59:02_CST_2015
+Cuda compilation tools, release 7.0, V7.0.27
+```
+
+```
+dpkg -l | grep nvidia
+
+ii nvidia-346 346.46-0ubuntu1 amd64 NVIDIA binary driver - version 346.46
+ii nvidia-346-dev 346.46-0ubuntu1 amd64 NVIDIA binary Xorg driver development files
+ii nvidia-346-uvm 346.46-0ubuntu1 amd64 NVIDIA Unified Memory kernel module
+ii nvidia-modprobe 346.46-0ubuntu1 amd64 Load the NVIDIA kernel driver and create device files
+ii nvidia-opencl-icd-346 346.46-0ubuntu1 amd64 NVIDIA OpenCL ICD
+ii nvidia-prime 0.6.2 amd64 Tools to enable NVIDIA's Prime
+ii nvidia-settings 346.46-0ubuntu1 amd64 Tool for configuring the NVIDIA graphics driver
+```
+
+## サンプルファイル実行
+```
+cd /usr/local/cuda-7.0/sample
+sudo make
+cd bin
+sudo ./deviceQuery
+
+cd ../0_Simple/bandwidthTest
+sudo ./bandwidthTest
+```
+
+# ハマったところ
+サンプルファイルの実行の際に、deviceQueryを実行させても、何も返ってこずフリーズする。
+ためしに以下のコマンドを打って、gpuの状態を確認しようとしても、同じくフリーズする。
+```nvidia-smi
+```
+
+またx-windowが表示されなくなった。
+
+# 原因
+nouveauとNVidiaのドライバを同時に使用すると、うまくいかない。
+[公式ドキュメント](http://developer.download.nvidia.com/compute/cuda/7_0/Prod/doc/CUDA_Getting_Started_Linux.pdf)では、2つのインストール方法が記載されており、1つは今回行った、パッケージマネージャーを利用する方法、もう一つはインストーラーを利用する方法である。
+後者のほうでは、インストールを開始する前の手順にこのような記載があった
+> To install the Display Driver, the Nouveau drivers must first be disabled.
+
+"ディスプレイドライバをインストールするときは、まずNouveauを無効にすべし"
+
+[CentOSで行った他の方の記事](http://moznion.hatenadiary.com/entry/2015/02/23/160016)でも、同様の記載があったため、ここが怪しいと判断。
+
+# 対応方法
+ubuntuでNouveauを無効にする方法は公式ドキュメントに書いてあり、
+
+/etc/modprobe.d/blacklist-nouveau.confを作成
+以下を記載
+```blacklist nouveau
+options nouveau modeset=0
+```
+```sudo /sbin/mkinitrd```
+```sudo init 6```
+
+でいける。これを行った後、x-windowが復帰し、サンプルファイルの実行でフリーズすることがなくなった。
+
+
+# 参考
+[CentOS 6.6 上で NVIDIA の GPU (の一部) と共に nouveau 使うと発狂して死ぬ](http://moznion.hatenadiary.com/entry/2015/02/23/160016)
+[公式ドキュメント](http://developer.download.nvidia.com/compute/cuda/7_0/Prod/doc/CUDA_Getting_Started_Linux.pdf)