### 전체적 설치 참고: https://tech.amikelive.com/node-669/guide-installing-cuda-toolkit-9-1-on-ubuntu-16-04/
Guide: Installing Cuda Toolkit 9.1 on Ubuntu 16.04
With advances in GPU technologies, performing complex computation is not an exclusive feat of multicore CPUs anymore. It is not uncommon to perform computation for linear algebra, image and video p…
tech.amikelive.com
1. apt 패키지 업데이트
euler@euler:~$ sudo apt-get update
[sudo] password for euler:
Hit:1 http://kr.archive.ubuntu.com/ubuntu xenial InRelease
Hit:2 http://kr.archive.ubuntu.com/ubuntu xenial-updates InRelease
Hit:3 http://kr.archive.ubuntu.com/ubuntu xenial-backports InRelease
Get:4 http://security.ubuntu.com/ubuntu xenial-security InRelease [109 kB]
Fetched 109 kB in 2s (54.1 kB/s)
Reading package lists... Done
euler@euler:~$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
libllvm5.0 snapd-login-service
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
[Error 1]
E: Could not get lock /var/lib/dpkg/lock - open (11 Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/) is another process using it?
[solution] (참고: https://www.hahwul.com/2016/08/debian-apt-get-could-not-get-lock.html )
#> rm /var/lib/dpkg/lock
2. GPU가 CUDA를 지원하는지 확인 ( 치포스 750Ti, 1080Ti)
euler@euler:~$ lspci | grep -i nvidia
01:00.0 VGA compatible controller: NVIDIA Corporation GM107 [GeForce GTX 750 Ti] (rev a2)
01:00.1 Audio device: NVIDIA Corporation Device 0fbc (rev a1)
02:00.0 VGA compatible controller: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1)
02:00.1 Audio device: NVIDIA Corporation GP102 HDMI Audio Controller (rev a1)
3. Ubuntu 버전 확인
euler@euler:~$ uname -m && cat /etc/*release
x86_64
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.6 LTS"
NAME="Ubuntu"
VERSION="16.04.6 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.6 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
4. GCC 버전확인
euler@euler:~$ gcc --version
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
5. kernel 버전 확인
euler@euler:~$ uname -r
4.13.0-36-generic
6. kernel header 설치
euler@euler:~$ sudo apt-get install linux-headers-$(uname -r)
Reading package lists... Done
Building dependency tree
Reading state information... Done
linux-headers-4.13.0-36-generic is already the newest version (4.13.0-36.40~16.04.1).
The following packages were automatically installed and are no longer required:
libllvm5.0 snapd-login-service
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
7. Cuda 다운로드
https://developer.nvidia.com/cuda-downloads에서 deb (network) 버전을 다운로드함
8. Cuda 툴킷 설치
euler@euler:~/Downloads$ sudo dpkg -i cuda-repo-ubuntu1604_10.1.105-1_amd64.deb Selecting previously unselected package cuda-repo-ubuntu1604.
(Reading database ... 214063 files and directories currently installed.)
Preparing to unpack cuda-repo-ubuntu1604_10.1.105-1_amd64.deb ...
Unpacking cuda-repo-ubuntu1604 (10.1.105-1) ...
Setting up cuda-repo-ubuntu1604 (10.1.105-1) ...
The public CUDA GPG key does not appear to be installed.
To install the key, run this command:
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
설치하는 중에 CUDA GPG 키를 설치하라고 함. 나온대로 설치를 진행
euler@euler:~/Downloads$ sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
Executing: /tmp/tmp.fnXOs1IEOM/gpg.1.sh --fetch-keys
http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
gpg: key 7FA2AF80: public key "cudatools <cudatools@nvidia.com>" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
apt 패키지 인덱스를 다시 업데이트
euler@euler:~/Downloads$ sudo apt-get update
Hit:1 http://kr.archive.ubuntu.com/ubuntu xenial InRelease
Hit:2 http://kr.archive.ubuntu.com/ubuntu xenial-updates InRelease
Hit:3 http://kr.archive.ubuntu.com/ubuntu xenial-backports InRelease
Ign:4 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64 InRelease
Get:5 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64 Release [564 B]
Get:6 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64 Release.gpg [801 B]
Get:7 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64 Packages [209 kB]
Get:8 http://security.ubuntu.com/ubuntu xenial-security InRelease [109 kB]
Fetched 320 kB in 1s (216 kB/s)
Reading package lists... Done
Cuda 설치
euler@euler:~/Downloads$ sudo apt-get install cuda
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
libllvm5.0 snapd-login-service
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
bbswitch-dkms ca-certificates-java cuda-10-1 cuda-command-line-tools-10-1
cuda-compiler-10-1 cuda-cudart-10-1 cuda-cudart-dev-10-1 cuda-cufft-10-1
cuda-cufft-dev-10-1 cuda-cuobjdump-10-1 cuda-cupti-10-1 cuda-curand-10-1
cuda-curand-dev-10-1 cuda-cusolver-10-1 cuda-cusolver-dev-10-1
...............................
시스템 reboot
nvidia 그래픽드라이버 설치확인
(참고: https://hiseon.me/2018/02/17/install_nvidia_driver/)
euler@euler:~$ cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 418.67 Sat Apr 6 03:07:24 CDT 2019
GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.11)
euler@euler:~$ lspci -k
....
01:00.0 VGA compatible controller: NVIDIA Corporation GM107 [GeForce GTX 750 Ti] (rev a2)
Subsystem: Gigabyte Technology Co., Ltd GM107 [GeForce GTX 750 Ti]
Kernel driver in use: nvidia
Kernel modules: nvidiafb, nouveau, nvidia_418_drm, nvidia_418
01:00.1 Audio device: NVIDIA Corporation Device 0fbc (rev a1)
Subsystem: Gigabyte Technology Co., Ltd Device 36e2
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
02:00.0 VGA compatible controller: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1)
Subsystem: Gigabyte Technology Co., Ltd Device 3752
Kernel driver in use: nvidia
Kernel modules: nvidiafb, nouveau, nvidia_418_drm, nvidia_418
02:00.1 Audio device: NVIDIA Corporation GP102 HDMI Audio Controller (rev a1)
Subsystem: Gigabyte Technology Co., Ltd Device 3752
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
.....
드라이버 버전 확인
euler@euler:~$ sudo cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 418.67 Sat Apr 6 03:07:24 CDT 2019
GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.11)
euler@euler:~$ nvidia-smi
Tue Jun 11 20:45:23 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.67 Driver Version: 418.67 CUDA Version: 10.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 750 Ti Off | 00000000:01:00.0 Off | N/A |
| 45% 37C P8 1W / 46W | 1MiB / 981MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 1 GeForce GTX 108... Off | 00000000:02:00.0 On | N/A |
| 0% 54C P2 58W / 250W | 350MiB / 11177MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 1 1062 G /usr/lib/xorg/Xorg 184MiB |
| 1 1839 G compiz 163MiB |
+-----------------------------------------------------------------------------+
CUDA 경로 설정
euler@euler:~$ nano ~/.profile
PATH="/usr/local/cuda-10.1/bin:$HOME/bin:$HOME/.local/bin:$PATH"
NVIDIA persistence service 설정
( 참고사이트와 달리 /usr/lib/... 가 아니라 /lib/ 에 있음)
euler@euler:~$ cd /lib/systemd/system && sudo touch nvidia-persistenced
euler@euler:/lib/systemd/system$ sudo nano nvidia-persistenced
[Unit]
Description=NVIDIA Persistence Daemon
Wants=syslog.target
[Service]
Type=forking
PIDFile=/var/run/nvidia-persistenced/nvidia-persistenced.pid
Restart=always
ExecStart=/usr/bin/nvidia-persistenced --verbose
ExecStopPost=/bin/rm -rf /var/run/nvidia-persistenced
[Install]
WantedBy=multi-user.target
persistence 실행
euler@euler:/lib/systemd/system$ sudo systemctl enable nvidia-persistenced
euler@euler:/lib/udev/rules.d$ sudo nano 40-vm-hotadd.rules
.....
# Memory hotadd request
SUBSYSTEM=="memory", ACTION=="add", DEVPATH=="/devices/system/memory/memory[0-9]*", TEST=="state", ATTR{state}="online"
......
시스템 reboot
euler@euler:~$ sudo reboot
Nvidia driver버전 확인
euler@euler:~$ cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 418.67 Sat Apr 6 03:07:24 CDT 2019
GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.11)
nvidia CUDA toolkit 버전 확인
euler@euler:~$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Apr_24_19:10:27_PDT_2019
Cuda compilation tools, release 10.1, V10.1.168
(이상한 점)
CUDA toolkit 을 설치중 아래와 같은 에러 발생
----
Errors were encountered while processing:
/var/cache/apt/archives/nvidia-cuda-dev_7.5.18-0ubuntu1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
----
일단 확인하기는 아래와 같이 해서 재설치
mslee21@euler:~/Downloads$ sudo dpkg --configure -a
[sudo] password for mslee21:
dpkg: dependency problems prevent configuration of nvidia-cuda-toolkit:
nvidia-cuda-toolkit depends on nvidia-cuda-dev (= 7.5.18-0ubuntu1); however:
Package nvidia-cuda-dev is not installed.
dpkg: error processing package nvidia-cuda-toolkit (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
nvidia-cuda-toolkit
mslee21@euler:~/Downloads$ sudo apt-get clean