【備忘録】 Ubuntu 11.04(32bit)におけるCUDAセットアップ手順

今回は卒研絡みの話。
卒研室のシミュレーション用PCで動かすことを目的として、GPGPU用開発環境であるCUDAの開発環境構築をこれまで何度か行ってきました。今まで何度も何かしらの形で失敗してきましたが、昨日(7月6日)再構築を行ったときにやっと自分一人で完璧な環境構築が行えたので、メモも兼ねてセットアップ手順をまとめてみることにしました。

環境

はじめに

  • ここではUbuntu 11.04(32bit)にCUDA 4.0をインストールする手順について記しています。64bitの場合は参考の項目で挙げたページを参照してみてください。
  • 設定ファイルの編集用のテキストエディタとしてはgeditを使うものとします。
  • この記事で公開している各種情報を利用したことによって生じた、いかなる損害についても、執筆者は責任を負いかねますのでご了承下さい。

CUDA 4.0のセットアップ手順

1.CUDAを動かす上で必要なパッケージ(gcc 4.4など)をインストールする。
$ sudo apt-get install build-essential linux-source linux-headers-`uname -r` g++-4.4
$ sudo apt-get install xserver-xorg-dev freeglut3-dev libglu1-mesa-dev libxi-dev libxmu-dev
$ sudo apt-get install glew-utils libglew1.5-dev libglewmx1.5-dev libncurses5-dev
$ sudo apt-get install libqt4-gui libqtassistantclient4
2.termcapを設定する。

termcapとは

UNIXで使用されている端末(TTY)機能を記述したデータベース。

termcap - 意味・説明・解説 : ASCII.jpデジタル用語辞典

のことだそうです。
ここでは次のように設定します。

$ cd /usr/lib
$ sudo ln -s libtermcap.so libtermcap.so.2
$ sudo /sbin/ldconfig
3.Ubuntu用のドライバ、Toolkit、SDKをダウンロードする。

CUDA ZONEにアクセスし、ページの右側にある「CUDA Downloads」をクリックし、表示されたページの中の「GET LATEST CUDA TOOLKIT PRODUCTION RELEASE」をクリックし、環境に合ったファイルをダウンロードして下さい。
今回はUbuntu 11.04へのインストールですので、ダウンロードするファイルは次のような名称となっています。

  • devdriver_4.0_linux_32_270.41.19.run
  • cudatools_4.0.17_linux_32.run
  • cudatoolkit_4.0.17_linux_32_ubuntu10.10.run
  • gpucomputingsdk_4.0.17_linux.run

ダウンロードするファイルの置き場所について特に指定はありませんが、CUI環境(仮想コンソール)での作業が必要な場面がありますので、
http://www.k5.dion.ne.jp/~r-f/sicklylife/memo/ubuntu1104/setting_and_install.html
の『デスクトップ』『音楽』などの日本語フォルダ名を英語表記にする の項目を参照にディレクトリ名を予め変更しておくことをお勧め致します。
こうしておくことで仮想コンソールでの作業が楽になります。

4.nouveauドライバを削除する。

Ubuntuにはnouveauドライバと呼ばれるオープンソースのドライバが最初から入っていますが、NVIDIAの純正ドライバを入れるため削除します。

$ sudo gedit /etc/modprobe.d/nvidia-installer-disable-nouveau.conf

を端末に打ち込み、開かれたファイルの中身に

blacklist nouveau
options nouveau modeset=0

を入力します。その後

$ sudo reboot

と入力してコンピュータを再起動して下さい。

5.NVIDIAの純正ドライバをインストールする。

この作業はGUI環境(Unity, GNOME)では行うことが出来ません。そこでまずは「Ctrl+Alt+F1」で仮想コンソールを起動します。
仮想コンソールを起動して自分のアカウントでログインした後

$ sudo service gdm stop

と打ち、gdm(GNOME Display Manager)を停止します。その後

$ sudo sh ./devdriver_4.0_linux_32_270.41.19.run

と打ちます。すると次のような画面がCUI上に出力されます。

        NVIDIA Accelerated Graphics Driver for Linux-x86(270.41.19)        


  Please read the following LICENSE and then select either "Accept" to accept
  the license and continue with the installation, or select "Do Not Accept" to
  abort the installation.

                     Accept                     Do Not Accept 

            License For Customer Use of NVIDIA Software


 IMPORTANT NOTICE -- READ CAREFULLY: This License For Customer Use of
 NVIDIA Software ("LICENSE") is the agreement which governs use of
 the software of NVIDIA Corporation and its subsidiaries ("NVIDIA")
 downloadable herefrom, including computer software and associated
 printed materials ("SOFTWARE").  By downloading, installing, copying,
 or otherwise using the SOFTWARE, you agree to be bound by the terms
 of this LICENSE.  If you do not agree to the terms of this LICENSE,
 do not download the SOFTWARE.


  NVIDIA Software License                                                  Top 

ここではAcceptを選択してください。その後

    NVIDIA Accelerated Graphics Driver for Linux-x86(270.41.19)        






  The distribution-provided pre-install script failed!  Continue installation
  anyway?

                               Yes           No











  NVIDIA Software Installer for Unix/Linux                      www.nvidia.com

と出てきますが、ここではYesを選択します。すると

        NVIDIA Accelerated Graphics Driver for Linux-x86(270.41.19)        





  ERROR: The Nouveau kernel driver is currently in use by your system.  This
         driver is incompatible with the NVIDIA driver, and must be disabled
         before proceeding.  Please consult the NVIDIA driver README and your
         Linux distribution's documentation for details on how to correctly
         disable the Nouveau kernel driver.

                                       OK  









  NVIDIA Software Installer for Unix/Linux                      www.nvidia.com 

というような画面がCUI上に表示されます。ですがOKを押すと問題なくインストール作業が始まります。インストールが完了したら

$ sudo service gdm start
$ sudo reboot

と打ってコンピュータを再起動してください。

6.GNOME端末上でToolkit及びToolsのインストールを行う。
$ sudo sh ./cudatoolkit_4.0.17_linux_32_ubuntu10.10.run
$ sudo sh ./cudatools_4.0.17_linux_32.run

途中で

Enter install path (default /usr/local/cuda, '/cuda' will be appended):

というようにインストール先ディレクトリをどうするか聞かれますが、Enterキーを打ちデフォルトのままにしておいて下さい。

7.GPU Computing SDK(サンプル)のインストールを行う。
$ sh ./gpucomputingsdk_4.0.17_linux.run

途中でインストール先ディレクトリをどうするか聞かれますが、Enterキーを打ってデフォルトのままにしておいて下さい。

8..bashrcを編集し、パスを通す。

先程までの手順でインストールすべきものは全てインストールを終えましたが、これで終わりではなく「パスを通す」作業が必要となります。まず

$ sudo gedit ~/.bashrc

と入力して、次の内容を開かれたファイルの末端に追記します。

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

.bashrcの保存後、変更内容を直ちに反映させるために

$ source ~/.bashrc

を入力してください。

9.libcudart.so.2対策を行う。
$ sudo gedit /etc/ld.so.conf

と入力し、開いたファイルに次の内容を追記します。

/usr/local/cuda/lib64
/usr/local/cuda/lib

追記して保存後、

$ sudo /sbin/ldconfig

と入力してください。

10.gcc/g++の設定を行う。

Ubuntu 11.04ではgcc 4.5が標準で利用されることになっていますが、CUDA 4.0ではgcc 4.5がサポートされていません。そのため手順1でCUDA 4.0がサポートしているgcc 4.4のインストールを行いました。
次のようにコマンドを入力し、gcc 4.4が優先で利用されるよう設定を行います。

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.4
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.5 50 --slave /usr/bin/g++ g++ /usr/bin/g++-4.5
$ sudo update-alternatives --display gcc
11.ユーティリティライブラリのmakeを行う。

サンプルをmakeする前に、次の作業を行っておいてください。

$ cd ~/NVIDIA_GPU_Computing_SDK/shared
$ make
$ cd ~/NVIDIA_GPU_Computing_SDK/C/common
$ make
$ make dbg=1
$ cd ~/NVIDIA_GPU_Computing_SDK/CUDALibraries
$ make
12.サンプルのmakeを行う。

GPU Computing SDKに収録されているサンプルのmakeを行います。

$ cd ~/NVIDIA_GPU_Computing_SDK/C
$ make

makeには多少の時間を要しますので注意してください。

13.サンプルのmakeが出来ているか確認する。
$ cd ./bin/linux/release
$ ls
$ ./oceanFFT

などのようにたくさんあるサンプルの中から好きなものを選んで実行してみてください。(まずはoceanFFTやsmokeParticlesのようなグラフィックを含むサンプルを選ぶことをお勧め致します)
oceanFFTの場合だと、エラーなしで別画面が開き、別画面上に青色の波の揺らぎがあるアニメーションが表示されればOKです。

14.deviceQueryを使ってみる。

GPU Computing SDKにはdeviceQueryというものが用意されており、これを用いることで当該GPUの性能などを確認することが出来ます。

$ ./deviceQuery

と入力してみてください。

以上でCUDAのセットアップは完了です。もしここで記した内容に間違いなどが有りましたらコメントなどでお知らせ頂けると幸いです。