LoginSignup
65
69

More than 5 years have passed since last update.

UbuntuにCUDAを入れようとしたらハマった

Last updated at Posted at 2015-07-29

背景

Deep Learning用に手元のcuda対応のグラボが指してあるLinuxPCにcudaを入れるべく、公式ドキュメントの通りにインストールしたらハマりました。

試した環境

  • 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 インストール

パッケージファイルのダウンロード

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
export 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のドライバを同時に使用すると、うまくいかない。
公式ドキュメントでは、2つのインストール方法が記載されており、1つは今回行った、パッケージマネージャーを利用する方法、もう一つはインストーラーを利用する方法である。
後者のほうでは、インストールを開始する前の手順にこのような記載があった

To install the Display Driver, the Nouveau drivers must first be disabled.

"ディスプレイドライバをインストールするときは、まずNouveauを無効にすべし"

CentOSで行った他の方の記事でも、同様の記載があったため、ここが怪しいと判断。

対応方法

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 使うと発狂して死ぬ
公式ドキュメント
UbuntuでNVIDIAのディスプレイドライバが動作しない場合のチェック項目

65
69
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
65
69