活動報告 No.145 「活動報告No.137」に追記 ~ Ubuntu16にCUDA8を。
カテゴリ: 未分類

どうも、おはこんばんにちは、実験に中指を立てている二年のマエダです。
先週、FPGAを研究対象としているドクターの人と色々おしゃべりしました。FPGA面白そうです。
その人は10何年(それ以上?)もハードウェア言語書いている方なので、深層学習の組み込み研究について色々とお世話になりそうです。

さてさて、今回は「活動報告 No.137 Windows10 にTensorflow(GPU版)を入れるまで」について追記があります。
その記事の最後、余談の項にてUbuntu16.04LTSにNVIDIAのドライバ入れられないよ〜っていう嘆きをちんたら書いておりました。
時は経ち、ふと思い立って再調査を開始して、丸3日かけて試行錯誤した結果、ついに達成することができたので、それをここに記しておこうと思います。

やること


Ubuntu 16.04 LTSにNVIDIAのCUDA 8.0をぶち込む


公式のインストール方法について
公式のインストール方法ではインストールできません。Linux全体に言えることか分かりませんが、少なくともCent OS 7.3及びUbuntu 16.04 LTSではインストール出来ませんでした。
デフォルトインストールの一部が地雷なだけで、インストールの過程でその地雷源である一部のパッケージのインストールを拒否すること、うまくいきます。
基本的にコマンドオンリーでインストール作業を進めていきますが、地雷パッケージを拒否するには引数を与えてやるだけなので、そんな難しいことはないです。
ただ、何の地雷を拒否すれば良いのか、そこの吟味が悩ましいところです。これに関しては以下のサイトを参照しました。


https://www.linkedin.com/pulse/installing-nvidia-cuda-80-ubuntu-1604-linux-gpu-new-victor


海外の超有能ブロガーです。
ホントは公式がこれくらいしてくれるとありがたいのですが……無料で使わせてもらっている身が苦労するのは必然っちゃそうですかね。





インストール手順概要


1、X Server停止
2、システム更新
3、ビルド環境構築
4、nouveauブラックリスト化
5、カーネルに署名
6、Linuxのソースとヘッダインスコ
7、CUDA8インスコ
8、確認


手順が多めですが、ひとつずつやっていきましょう。

1、X Server停止
「CTRL」+「ALT」+「F1」で全面コマンドラインに入れます。ユーザ名とパスを入れればいつもの$マークがでてきます。
あと、コマンドの記述に関して、通常時のコマンドラインは$を最初に付けますが、rootの場合は#を付けます。

X Serverを止めます。


# service lightdm stop 


X Serverは複数のグラフィックディスプレイを管理するアプリケーションなので、OpenGL関連のパッケージ入れるときに干渉するのかな?


2、システム更新
まぁ、まずはこれよね。


# apt-get update 
# apt-get upgrade -y 
# apt-get dist-upgrade -y 



3、ビルド環境構築
# apt-get install build-essential 


CUDA ToolkitにはC/C++のビルド環境が必要なのでインストール。


4、nouveauブラックリスト化
nouveauとは?
「nouveau(ヌーヴォー)」は、NVIDIAが提供するオープンソースのグラフィックドライバです。 CUDAにはNVIDIAグラボのドライバも含まれているので、インストール時にnouveauが入っていると、その追加ドライバと干渉してしまいます。


nouveauの状態を確認


# lsmod | grep -i nouveau 


ここで何か表示されていれば、それはnouveauが有効であることを意味します。
ブラックリストに入れるには、以下のコマンドを頑張って打ち込みます。


# echo -e "blacklist nouveau\nblacklist lbm-nouveau\noptions nouveau modeset=0\nalias nouveau off\nalias lbm-nouveau off\n" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf 
# echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf 
# update-initramfs -u 


終わったら再起動します。


# reboot 


また全面コマンドラインに入って、サーバを止めます。


# service lightdm stop 
# lsmod | grep -i nouveau 


上のコマンド打って、何も出てこなかったら成功しています。


5、カーネルに署名
最近のLinuxはセキュリティが厳しくて、サードパーティー製のドライバを拒否します。なので、拒否しない設定にします。


# sudo apt install mokutil 
# sudo mokutil --disable-validation 


ここでパスワードの作成を要求されますが、これは恒久的なものではなく、一時的な使い捨てパスワードです。 rootパス以外でも構いません。
また再起動


# reboot 


再起動したら青い画面が出てくるので、何かキーを押します。

上から2番目を選択し、メッセージ通りに2ウィンドウほど進み、先ほど作成したパスワードに関して質問されます。 これは、パスワードの ○文字目 は何か、という形式で複数回質問されるので、パスワード全てを打ち込まないようにしましょう。
ちなみに、サードパーティー製のドライバを通すために、BIOSのセキュアブートを無効にする方法もありますが、これは危険です。BIOSレベルで変えると、インストールディスクが異なるWindowsなどの他のOSでさえ悪影響を受けかねません。


6、Linuxのソースとヘッダインスコ
# service lightdm stop 
# apt-get install linux-source 
# apt-get source linux-image-$(uname -r) 
# apt-get install linux-headers-$(uname -r) 


これは「カーネルソースを見つけることができません」というメッセージを避けるために必要です。


7、CUDA8インスコ
# wget https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda_8.0.61_375.26_linux-run 
# sudo sh cuda_8.0.61_375.26_linux-run --override --no-opengl-lib 


ここで、wegetではなく事前にダウンロードしたrunファイルがあるなら、「-run」ではなく、「.run」になります。
長い利用承諾書が現れるので、「Enter」キー長押しで100%になるまで読み進めましょう。
読み終わったらログに対していくつかアクションしなければなりません。 以下に従ってください。


Do you accept the previously read EULA? 
(accept/decline/quit): accept 


Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26? 
((y)es/(n)o/(q)uit): y 


Do you want to run nvidia-xconfig? 
This will update the system X configuration file so that the NVIDIA 
X driver is used. The pre-existing X configuration file will be backed up. 
This option shoud be used on systems that require a custom 
X configuration, such as systems with multiple GPU vendors. 
((y)es/(n)o/(q)uit) [ default is no ]:


Install the CUDA 8.0 Toolkit? 
((y)es/(n)o/(q)uit): y 


Enter Toolkit Location [ default is /usr/local/cuda-8.0 ]: 


Do you want to install a symbolic linkat /usr/local/cuda? 
((y)es/(n)o/(q)uit): y 


Install the CUDA 8.0 Samples? 
((y)es/(n)o/(q)uit): y 


Enter CUDA Samples Location [ default is /home/user ]: /usr/local/cuda-8.0 


「ツールキット:インストールに失敗しました。サポートされていないコンパイラを使用しています」というエラーが表示されないように、「--override」が必要です。
「--no-opengl-lib」は、NVIDIAのGLライブラリをインストールするドライバのインストールを防ぎます。  これは、「ログインループ」にぶつからないようにするために非常に重要です。


8、確認
再起動すると解像度が元に戻っているはずです。 ログインして、以下のコマンドを打ちます。


$ nvidia-smi 

これで何か表が表示されていれば、グラボドライバとCUDAのインストールに成功しています。 お疲れ様でした。






途中でOpenGL関連のインストールを拒否していますが、これによってマインクラフトなどのOpenGLを使うグラフィックゲームを快適に遊ぶことができなくなるんじゃないかな。
まぁどういうわけかLinuxには大手の2D・3DCADが出てないですし、ディープラーニング機にするならGPGPUだけ使えればまぁ良し(だろう)。

そういえば、先週ら辺から最新のCUDAが公開されたっぽいです。詳しく見ていないですが、多分新しいGPUアーキテクチャに対応するためでしょう。先日CEOの方が新アーキテクチャVolta(だっけ?)を片手にドヤってましたし。
にしても新アーキテクチャのチップでかいですよね。今後はムーアの法則の終焉に伴い、ワンチップ内の処理を上げるのではなく、もっと小分けされたチップを複数合わせて、ワンチップでSLIみたいなことをする方針で開発が進められているようです。もっとチップがでかくなるなぁ(笑)
これじゃAMDのハイエンドCPUじゃないですかヤダー

あと、新アーキテクチャはGPGPUに特化しているらしく、完全にディープラーニングの計算資源として用いられることを想定しているっぽいです。その分計算速度は従来より飛躍的に向上してるようです。



スポンサーサイト
編集 / 2017.10.06 / コメント: 0 / トラックバック: 0 / PageTop↑
プロフィール

ヒュー研の中の人

Author:ヒュー研の人
このブログは東京電機大学理工学部ヒューマノイド研究部の公式ブログです。2012年から部に昇格しました!
その日の活動や大会の記録をできるだけ更新していきたいです!!

☆だいたい金曜日前後に更新します☆

FC2カウンター
カレンダー
09 | 2017/10 | 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
リンク
ブロとも申請フォーム
携帯でみるには↓
QR