© 2020 WebHive

Ставим TensorFlow на Arch c Optimus без извращений

В предыдущей статье я описал несколько способов установки tensorflow. Процесс установки был долгим и мучительным, но как оказалось я ходил по граблям и можно всё сделать гораздо проще.

Итак — есть ещё способ установки напрямую пайтоновским пакетом, который как оказалось прекрасно работает. Причём одинаково хорошо в обоих версиях пайтона. Собственно процесс прекрасно описан тут

Для python 3.6

1
$ sudo pip3 install tensorflow-gpu

Для python 2.7

1
sudo pip2 install tensorflow-gpu

Тестовая программа работает хотя и ругается на отсутствие GPU.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 ~ python
Python 2.7.13 (default, Dec 21 2016, 07:16:46)
[GCC 6.2.1 20160830] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcublas.so.8.0 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcudnn.so.5 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcufft.so.8.0 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcurand.so.8.0 locally
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE3 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
NVIDIA: no NVIDIA devices found
E tensorflow/stream_executor/cuda/cuda_driver.cc:509] failed call to cuInit: CUDA_ERROR_UNKNOWN
I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:145] kernel driver does not appear to be running on this host (roman-notebook): /proc/driver/nvidia/version does not exist
>>> print(sess.run(hello))
Hello, TensorFlow!
>>>

Ну чего — давайте дадим ей вожделенный NVIDIA device.

1
$ sudo tee /proc/acpi/bbswitch <<< ON

И попробуем ещё раз. Бинго! Теперь мы видим после запуска сессии

1
2
3
4
5
6
7
8
9
10
11
12
13
...
>>> sess = tf.Session()
name: GeForce GT 640M
major: 3 minor: 0 memoryClockRate (GHz) 0.7085
pciBusID 0000:01:00.0
Total memory: 1.95GiB
Free memory: 1.93GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0: Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 640M, pci bus id: 0000:01:00.0)
>>> print(sess.run(hello))
Hello, TensorFlow!
>>>

Из чего делаем вывод, что оно прекрасно запустилось на GPU, что и требовалось получить.

Комментарии