Difference between revisions of "Tensorflow with gpu"
From ElphelWiki
| (13 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
| − | == | + | ==Requirements== |
| − | * | + | * Kubuntu 16.04.4 LTS |
| − | ~$ lspci | grep NVIDIA | + | ==Setup== |
| + | * Check device | ||
| + | <font size='2'><b>~$ lspci | grep NVIDIA</b> | ||
81:00.0 VGA compatible controller: NVIDIA Corporation GF119 [GeForce GT 610] (rev a1) | 81:00.0 VGA compatible controller: NVIDIA Corporation GF119 [GeForce GT 610] (rev a1) | ||
| − | 81:00.1 Audio device: NVIDIA Corporation GF119 HDMI Audio Controller (rev a1) | + | 81:00.1 Audio device: NVIDIA Corporation GF119 HDMI Audio Controller (rev a1)</font> |
| − | * | + | |
| − | ~$ cat /proc/driver/nvidia/version | + | * Check driver version: |
| + | <font size='2'><b>~$ cat /proc/driver/nvidia/version</b> | ||
NVRM version: NVIDIA UNIX x86_64 Kernel Module 387.26 Thu Nov 2 21:20:16 PDT 2017 | NVRM version: NVIDIA UNIX x86_64 Kernel Module 387.26 Thu Nov 2 21:20:16 PDT 2017 | ||
| − | GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.9) | + | GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.9)</font> |
| − | |||
| − | |||
| − | |||
| − | |||
| − | https:// | + | * Install cuda 9.2 with patch(es): |
| − | + | <font size='2'>https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=deblocal: | |
| − | ~$ | + | <b>~$ sudo dpkg -i cuda-repo-ubuntu1604-9-2-local_9.2.88-1_amd64.deb |
| − | ~$ | + | ~$ sudo apt-key add /var/cuda-repo-9-2-local/7fa2af80.pub |
| − | + | ~$ sudo apt-get update | |
| − | ~$ nvidia-smi | + | ~$ sudo apt-get install cuda</b> |
| − | + | <b># INSTALL THE PATCH(ES)</b></font> | |
| + | |||
| + | * Might need to reboot PC. If cuda 9.2 got installed over other version, nvidia tools will be throwing errors about driver versions mismatching, try | ||
| + | <font size='2'><b>~$ nvidia-smi</b></font> | ||
| + | Good looking output: | ||
| + | <font size='2'>Wed Jun 13 15:55:44 2018 | ||
+-----------------------------------------------------------------------------+ | +-----------------------------------------------------------------------------+ | ||
| − | | NVIDIA-SMI | + | | NVIDIA-SMI 396.26 Driver Version: 396.26 | |
|-------------------------------+----------------------+----------------------+ | |-------------------------------+----------------------+----------------------+ | ||
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | ||
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | ||
|===============================+======================+======================| | |===============================+======================+======================| | ||
| − | | 0 GeForce | + | | 0 GeForce GTX 750 Ti Off | 00000000:01:00.0 On | N/A | |
| − | | | + | | 33% 36C P8 1W / 46W | 229MiB / 2000MiB | 0% Default | |
+-------------------------------+----------------------+----------------------+ | +-------------------------------+----------------------+----------------------+ | ||
| Line 34: | Line 38: | ||
| GPU PID Type Process name Usage | | | GPU PID Type Process name Usage | | ||
|=============================================================================| | |=============================================================================| | ||
| − | | 0 | + | | 0 1305 G /usr/lib/xorg/Xorg 136MiB | |
| − | +-----------------------------------------------------------------------------+ | + | | 0 3587 G /usr/bin/krunner 1MiB | |
| + | | 0 3590 G /usr/bin/plasmashell 67MiB | | ||
| + | | 0 3693 G /usr/bin/plasma-discover 20MiB | | ||
| + | +-----------------------------------------------------------------------------+</font> | ||
| + | |||
| + | * Check out post installation docs: | ||
| + | <font size='2'>https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#post-installation-actions: | ||
| + | # Export paths | ||
| + | <b>~$ export PATH=/usr/local/cuda-9.2/bin${PATH:+:${PATH}} | ||
| + | ~$ export LD_LIBRARY_PATH=/usr/local/cuda-9.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}</b></font> | ||
| − | * install | + | * Install TensorFlow: |
| + | <font size='2'># docs: | ||
| + | # - https://www.tensorflow.org/install/install_linux | ||
| + | # some instructions: | ||
~$ sudo apt-get install python3-pip # if it is not already installed | ~$ sudo apt-get install python3-pip # if it is not already installed | ||
| − | |||
~$ sudo pip3 install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.7.0-cp35-cp35m-linux_x86_64.whl | ~$ sudo pip3 install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.7.0-cp35-cp35m-linux_x86_64.whl | ||
Revision as of 15:25, 13 June 2018
Requirements
- Kubuntu 16.04.4 LTS
Setup
- Check device
~$ lspci | grep NVIDIA 81:00.0 VGA compatible controller: NVIDIA Corporation GF119 [GeForce GT 610] (rev a1) 81:00.1 Audio device: NVIDIA Corporation GF119 HDMI Audio Controller (rev a1)
- Check driver version:
~$ cat /proc/driver/nvidia/version NVRM version: NVIDIA UNIX x86_64 Kernel Module 387.26 Thu Nov 2 21:20:16 PDT 2017 GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.9)
- Install cuda 9.2 with patch(es):
https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=deblocal: ~$ sudo dpkg -i cuda-repo-ubuntu1604-9-2-local_9.2.88-1_amd64.deb ~$ sudo apt-key add /var/cuda-repo-9-2-local/7fa2af80.pub ~$ sudo apt-get update ~$ sudo apt-get install cuda # INSTALL THE PATCH(ES)
- Might need to reboot PC. If cuda 9.2 got installed over other version, nvidia tools will be throwing errors about driver versions mismatching, try
~$ nvidia-smi
Good looking output:
Wed Jun 13 15:55:44 2018
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 396.26 Driver Version: 396.26 |
|-------------------------------+----------------------+----------------------+
| 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 On | N/A |
| 33% 36C P8 1W / 46W | 229MiB / 2000MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1305 G /usr/lib/xorg/Xorg 136MiB |
| 0 3587 G /usr/bin/krunner 1MiB |
| 0 3590 G /usr/bin/plasmashell 67MiB |
| 0 3693 G /usr/bin/plasma-discover 20MiB |
+-----------------------------------------------------------------------------+
- Check out post installation docs:
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#post-installation-actions: # Export paths ~$ export PATH=/usr/local/cuda-9.2/bin${PATH:+:${PATH}} ~$ export LD_LIBRARY_PATH=/usr/local/cuda-9.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
- Install TensorFlow:
# docs: # - https://www.tensorflow.org/install/install_linux # some instructions: ~$ sudo apt-get install python3-pip # if it is not already installed ~$ sudo pip3 install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.7.0-cp35-cp35m-linux_x86_64.whl
- testing: unsupported card GeForce GT 610
~$ python3
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, World!')
>>> sess = tf.Session()
2018-04-26 13:00:19.050625: I tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2018-04-26 13:00:19.181581: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1344] Found device 0 with properties:
name: GeForce GT 610 major: 2 minor: 1 memoryClockRate(GHz): 1.62
pciBusID: 0000:81:00.0
totalMemory: 956.50MiB freeMemory: 631.69MiB
2018-04-26 13:00:19.181648: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1394] Ignoring visible gpu device (device: 0, name: GeForce GT 610, pci bus id: 0000:81:00.0, compute capability: 2.1) with Cuda compute capability 2.1. The minimum required Cuda capability is 3.5.
2018-04-26 13:00:19.181669: I tensorflow/core/common_runtime/gpu/gpu_device.cc:911] Device interconnect StreamExecutor with strength 1 edge matrix:
2018-04-26 13:00:19.181683: I tensorflow/core/common_runtime/gpu/gpu_device.cc:917] 0
2018-04-26 13:00:19.181695: I tensorflow/core/common_runtime/gpu/gpu_device.cc:930] 0: N
>>> print(sess.run(hello))
b'Hello, World!'
- testing: supported card GeForce GTX 750 Ti
~$ python3
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, World!')
>>> sess = tf.Session()
2018-04-26 18:14:05.427668: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:898] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning
NUMA node zero
2018-04-26 18:14:05.428033: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1344] Found device 0 with properties:
name: GeForce GTX 750 Ti major: 5 minor: 0 memoryClockRate(GHz): 1.1105
pciBusID: 0000:01:00.0
totalMemory: 1.95GiB freeMemory: 1.53GiB
2018-04-26 18:14:05.428061: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1423] Adding visible gpu devices: 0
2018-04-26 18:14:05.927106: I tensorflow/core/common_runtime/gpu/gpu_device.cc:911] Device interconnect StreamExecutor with strength 1 edge matrix:
2018-04-26 18:14:05.927149: I tensorflow/core/common_runtime/gpu/gpu_device.cc:917] 0
2018-04-26 18:14:05.927163: I tensorflow/core/common_runtime/gpu/gpu_device.cc:930] 0: N
2018-04-26 18:14:05.927313: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1041] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 1289 MB memory) -> physical GPU (device: 0,
name: GeForce GTX 750 Ti, pci bus id: 0000:01:00.0, compute capability: 5.0)
>>> print(sess.run(hello))
b'Hello, World!'
- Supported cards:
https://developer.nvidia.com/cuda-gpus
- As a quickfix had to install CuDNN 7.0.5 instead of latest:
https://stackoverflow.com/questions/49960132/cudnn-library-compatibility-error-after-loading-model-weights