GeForce 1060搭載ノートPCにUbuntu 17.10 + NVIDIAドライバ + CUDA + Mathematia 8をインストール
MathematicaからCUDAを使いたかったので、GPU搭載のノートPCを購入してセットアップした。
購入PC
PC工房のGeForce 1060搭載ノートPC(OSなし) : STYLE-15FX093-i7-RNFR [OS LESS]
- CPU: Intel Core i7-7700HQ 2.8GHz
- Memory: 16GB
- Storage: SSD 240GB + HDD 2TB
- GPU: NVIDIA GeForce 1060 6GB
Ubuntu 17.10 日本語Remixをダウンロード
旧PC(Ubuntu 16.04)で
Ubuntu Desktop 日本語 Remixのダウンロードから、ubuntu-ja-17.10-desktop-amd64.iso
をダウンロード。
ddでUSBメモリに書き込む。
sudo dd if=ubuntu-ja-17.10-desktop-amd64.iso of=/dev/sde status=progress
ファームウェア設定
新PCに電源を入れ、ファームウェア設定画面に入り、起動モードをUEFIからBIOSに変更する。
Ubuntuインストール
USBメモリを挿入してPCを再起動し、インストールする。
- 言語は日本語を選択
- サードパーティー製のドライバを・・・にチェック
- SSD(
/dev/sda
)を「/」(ext4)に、HDD(/dev/sdb
)を「/home」にマウント - ブートローダを
/dev/sda
にインストール - ホームディレクトリを暗号化にチェック(お好みで)
インストールができたらUSBメモリを抜いて再起動。
Ubuntuが無事に起動し、ログインできたら、まずはディレクトリ名を日本語から英語に直してから作業開始。
LANG=C xdg-user-dirs-gtk-update
DKMSがうまく動かないので、カーネルのバージョンを固定する。
sudo apt-mark hold linux-generic linux-image-generic linux-headers-generic
NVIDIA Driver
公式リポジトリにあるnvidia-387をインストールする。
デフォルトのnouveau
の無効化は不要だった。
sudo apt update
sudo apt install nvidia-387
CUDA 9.1
CUDA Toolkit 9.1 DownloadからUbuntu 17.04用の「deb (network)」をダウンロード。
sudo dpkg -i cuda-repo-ubuntu1704_9.1.85-1_amd64.deb
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1704/x86_64/7fa2af80.pub
sudo apt update
sudo apt install cuda
環境変数を設定する。
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda:$LD_LIBRARY_PATH
Mathematica 8.0.4 Home Edition
代理店の手順に従い、 Wolframシステム移行フォームで、新しいアクティベーションキーを取得する。
アクティベーションキーが記載されたメールが届いたら、インストールスクリプトを起動する。 インストール途中に届いたアクティベーションコードを入力。
sudo ./Mathematica_8.0.4_Japanese_LINUX.sh
そのままでは日本語を扱えないので修正する。
/usr/local/Wolfram/Mathematica/8.0/Executables/Mathematica
の9行目付近を下記のように修正する。
#LANG=ja_JP.eucJP
LANG=ja_JP.UTF-8
ISO8859-1.m
は書き換えなくても大丈夫だった。
CUDALinkの設定
Wolframのドキュメントには環境変数NVIDIA_DRIVER_LIBRARY_PATH
とCUDA_LIBRARY_PATH
を設定すれば良い、と書いてあるが、実際には読みに行ってくれない。
(なぜか環境変数をMathematicaが読み込めていない)
なので、デフォルトの位置にシンボリックリンクを作成する。
sudo mkdir /usr/lib64
sudo ln -s /usr/lib/nvidia-387/tls/libnvidia-tls.so.387.26 /usr/lib64/libnvidia-tls.so.387.26
sudo ln -s /usr/lib/x86_64-linux-gnu/libcuda.so /usr/lib64/libcuda.so
Mathematicaを起動して確認する。
In[7]:= Needs["CUDALink`"]
In[8]:= CUDAQ[]
Out[8]= True
In[9]:= CUDAInformation[]
Out[9]= {1 -> {"Name" -> "GeForce GTX 1060", "Clock Rate" -> 1733000,
"Compute Capabilities" -> 6.1, "GPU Overlap" -> 1,
"Maximum Block Dimensions" -> {1024, 1024, 64},
"Maximum Grid Dimensions" -> {2147483647, 65535, 65535},
"Maximum Threads Per Block" -> 1024,
"Maximum Shared Memory Per Block" -> 49152,
"Total Constant Memory" -> 65536, "Warp Size" -> 32,
"Maximum Pitch" -> 2147483647,
"Maximum Registers Per Block" -> 65536, "Texture Alignment" -> 512,
"Multiprocessor Count" -> 10, "Core Count" -> 320,
"Execution Timeout" -> 1, "Integrated" -> False,
"Can Map Host Memory" -> True, "Compute Mode" -> "Default",
"Texture1D Width" -> 131072, "Texture2D Width" -> 131072,
"Texture2D Height" -> 65536, "Texture3D Width" -> 16384,
"Texture3D Height" -> 16384, "Texture3D Depth" -> 16384,
"Texture2D Array Width" -> 32768,
"Texture2D Array Height" -> 32768,
"Texture2D Array Slices" -> 2048, "Surface Alignment" -> 512,
"Concurrent Kernels" -> True, "ECC Enabled" -> False,
"TCC Enabled" -> False, "Total Memory" -> 6367739902}}