A
Установка библиотеки
tfjs-node-gpu и ее
зависимостей
Приложение A. Установка библиотеки tfjs-node-gpu и ее зависимостей
545
3. В каталоге, куда вы скачали упомянутый файл, выполните команду
chmod
, чтобы
сделать его исполняемым. Например:
chmod +x cuda_10.0.130_410.48_linux.run
4. Запустите этот файл с помощью команды
sudo
. Учтите, что установочному про
цессу CUDA Toolkit может понадобиться установить или обновить драйвер
NVIDIA на вашей машине, если его установленная версия устарела или ее вообще
нет. В этом случае необходимо остановить сервер X, перейдя в режим исполь
зования только командной оболочки. В дистрибутивах Ubuntu и Debian войти
в консоль можно с помощью сочетания клавиш
Ctrl
+
Alt
+
F1
.
Следуйте подсказкам на экране для установки CUDA Toolkit, после чего машина
будет перезагружена. Если вы работали в режиме командной оболочки, можете
после перезагрузки вернуться в обычный режим GUI.
5. В случае успешного завершения шага 3 системный путь будет включать команду
nvidia-smi
, с помощью которой можно проверить состояние GPU. Она выводит,
помимо версии текущего драйвера NVIDIA, такую информацию, как названия,
показания датчиков температуры, скорость вентиляторов, а также коэффициен
ты загрузки процессоров и памяти установленных в системе GPU. Это удобная
утилита для мониторинга GPU в режиме реального времени при использовании
tfjsnodegpu для обучения глубоких нейронных сетей. Типичное сообщение,
выводимое командой
nvidia-smi
, выглядит следующим образом (для машин
с двумя GPU NVIDIA):
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.111 Driver Version: 384.111 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Quadro P1000 Off | 00000000:65:00.0 On | N/A |
| 41% 53C P0 ERR! / N/A | 620MiB / 4035MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 1 Quadro M4000 Off | 00000000:B3:00.0 Off | N/A |
| 46% 30C P8 11W / 120W | 2MiB / 8121MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 3876 G /usr/lib/xorg/Xorg 283MiB |
6. Добавьте путь к 64битным файлам библиотеки CUDA в переменную среды
LD_LIBRARY_PATH
. В случае использования командной оболочки bash можно до
бавить следующую строку в файл
.bashrc
:
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:${PATH}"
tfjsnodegpu ищет необходимые для запуска динамические файлы библиотеки
по путям из переменной среды
LD_LIBRARY_PATH
.
546
Приложения
7. Скачайте CuDNN с сайта
https://developer.nvidia.com/cudnn
. Зачем нужно еще
и CuDNN, помимо CUDA? Потому, что CUDA — универсальная вычислительная
библиотека, применяемая и в других сферах, помимо глубокого обучения (на
пример, в гидродинамике). CuDNN — основанная на CUDA библиотека NVIDIA
для ускорения операций с глубокими нейронными сетями.
z
z
Для скачивания CuDNN вам может понадобиться создать учетную запись
NVIDIA и ответить на несколько вопросов анкеты. Убедитесь, что скачали версию
CuDNN, соответствующую установленной на предыдущих шагах версии CUDA
Toolkit. Например, CuDNN 7.6 подходит для совместного использования с CUDA
Toolkit 10.0.
8. В отличие от CUDA Toolkit, CuDNN поставляется не в виде исполняемого
файла средства установки, а в виде сжатого архива tar, содержащего несколько
файлов динамических библиотек и заголовков C/C++. Необходимо извлечь эти
файлы и скопировать их по соответствующему пути установки. Для этого можно
использовать последовательность команд наподобие следующей:
tar xzvf cudnn-10.0-linux-x64-v7.6.4.38.tgz
cp cuda/lib64/* /usr/local/cuda/lib64
cp cuda/include/* /usr/local/cuda/include
9. Теперь, после установки всех требуемых драйверов и библиотек, можно быстро
проверить CUDA и CuDNN, импортировав tfjsnodegpu в node:
npm i @tensorflow/tfjs @tensorflow/tfjs-node-gpu
node
Далее в интерфейсе командной строки Node.js вы увидите:
> const tf = require('@tensorflow/tfjs');
> require('@tensorflow/tfjs-node-gpu');
В случае успеха вы увидите несколько строк журнального вывода, подтвержда
ющих, что GPU (или несколько GPU, в зависимости от конфигурации вашей
системы) обнаружен (ы) и tfjsnodegpu может их использовать:
2018-09-04 13:08:17.602543: I
tensorflow/core/common_runtime/gpu/gpu_device.cc:1405] Found device 0
with properties:
name: Quadro M4000 major: 5 minor: 2 memoryClockRate(GHz): 0.7725
pciBusID: 0000:b3:00.0
totalMemory: 7.93GiB freeMemory: 7.86GiB
2018-09-04 13:08:17.602571: I
tensorflow/core/common_runtime/gpu/gpu_device.cc:1484] Adding visible
gpu devices: 0
2018-09-04 13:08:18.157029: I
tensorflow/core/common_runtime/gpu/gpu_device.cc:965] Device
interconnect StreamExecutor with strength 1 edge matrix:
2018-09-04 13:08:18.157054: I
tensorflow/core/common_runtime/gpu/gpu_device.cc:971] 0
2018-09-04 13:08:18.157061: I
tensorflow/core/common_runtime/gpu/gpu_device.cc:984] 0: N
2018-09-04 13:08:18.157213: I
Приложение A. Установка библиотеки tfjs-node-gpu и ее зависимостей
547
tensorflow/core/common_runtime/gpu/gpu_device.cc:1097] Created
TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with
7584 MB memory) -> physical GPU (device: 0, name: Quadro M4000, pci bus
id: 0000:b3:00.0, compute capability: 5.2)
10. Все готово для использования всех возможностей tfjsnodegpu. Достаточно
включить в
package.json
следующие зависимости (или последующие их версии):
...
"dependencies": {
"@tensorflow/tfjs": "^0.12.6",
"@tensorflow/tfjs-node": "^0.1.14",
...
}
...
Импортируйте в файле
main.js
основные зависимости, включая
@tensorflow/tfjs
и
@tensorflow/tfjs-node-gpu
. Первая из них содержит общий API TensorFlow.js,
а вторая подключает операции TensorFlow.js к быстродействующим вычисли
тельным ядрам, реализованным на CUDA и CuDNN:
const tf = require('@tensorflow/tfjs');
require('@tensorflow/tfjs-node-gpu');
A.2. Установка tfjs-node-gpu в Windows
1. Убедитесь, что ваша версия Windows удовлетворяет системным требованиям
CUDA Toolkit. CUDA Toolkit не поддерживает некоторые выпуски Windows
и 32битные архитектуры вычислительных систем. См. подробности по адресу
https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html#system-
requirements
.
2. Мы предполагаем, что в вашей системе уже установлены Node.js и npm, а пути
к node и npm включены в системную переменную
Path
. Если нет — скачать уста
новочные пакеты вы можете по адресу
https://nodejs.org/en/download/
.
3. Установите Microsoft Visual Studio — она нужна для установки CUDA Toolkit.
Какую версию Microsoft Visual Studio выбрать, можно узнать по той же ссылке,
что и в шаге 1.
4. Скачайте и установите CUDA Toolkit для Windows. На момент написания данной
книги для работы tfjsnodegpu (текущая версия 1.2.10) требуется CUDA 10.0.
Выберите соответствующий вашей версии Windows установочный пакет. До
ступны установочные пакеты для Windows 7 и Windows 10. Этот шаг требует
прав администратора.
5. Скачайте CuDNN. Убедитесь, что версия CuDNN соответствует версии CUDA.
Например, CuDNN 7.6 подходит для совместного использования с CUDA
Toolkit 10.0. Прежде чем скачать CuDNN, вам может понадобиться создать учет
ную запись NVIDIA и ответить на несколько вопросов анкеты.
548
Приложения
6. В отличие от установочного пакета CUDA Toolkit, CuDNN поставляется в виде
не исполняемого установочного файла, а файла архива ZIP. Распакуйте его, и вы
увидите внутри три каталога:
cuda/bin
,
cuda/include
и
cuda/lib/x64
. Найдите
каталог установки CUDA Toolkit (по умолчанию чтото вроде
C:/Program
Files/
NVIDIA
CUDA
Toolkit
10.0/cuda
). Скопируйте извлеченные файлы в соответству
ющие подкаталоги с теми же названиями. Например, извлеченные из архива
файлы из каталога
cuda/bin
необходимо скопировать в
C:/Program
Files/NVIDIA
CUDA
Toolkit
10.0/cuda/bin
. Для этого шага могут также потребоваться права
администратора.
7. После установки CUDA Toolkit и CuDNN перезагрузите операционную систему
Windows. Мы выяснили, что это необходимо для правильной загрузки (для ис
пользования в tfjsnodegpu) всех только что установленных библиотек.
8. Установите пакет npm
window-build-tools
, необходимый для установки пакета
npm
@tensorflow/tfjs-node-gpu
на следующем шаге:
npm install --add-python-to-path='true' --global windows-build-tools
9. Установите с помощью npm пакеты
@tensorflow/tfjs
и
@tensorflow/tfjs-node-gpu
:
npm -i @tensorflow/tfjs @tensorflow/tfjs-node-gpu
10. Для проверки успешности установки откройте командную строку node и выпол
ните:
> const tf = require('@tensorflow/tfjs');
> require('@tensorflow/tfjs-node-gpu');
Убедитесь, что обе команды завершились без ошибок. После второй команды вы
увидите несколько строк журналов, выведенных разделяемой библиотекой GPU
TensorFlow. В них перечисляются GPU с поддержкой CUDA, которые были обна
ружены tfjsnodegpu и будут использоваться в последующих программах глубокого
обучения.
Это приложение посвящено прочим, не относящимся к
tf.Model
, частям API
TensorFlow.js. И хотя
tf.Model
содержит полный набор методов, необходимых для
обучения/оценки моделей и для получения на их основе дальнейшего вывода, за
частую для работы с объектами
tf.Model
необходимы прочие части TensorFlow.js.
Основные сценарии:
z
z
преобразование данных в тензоры для передачи в объекты
tf.Model
;
z
z
выдача выполняемых
tf.Model
предсказаний (изначально находящихся в фор
мате тензоров) в виде, подходящем для использования прочими частями про
граммы.
Как вы увидите, вставка данных в тензоры и извлечение данных оттуда не пред
ставляет сложностей, но имеет смысл отметить некоторые общепринятые шаблоны
действий и нюансы.
Б.1. Создание тензоров и соглашения
по поводу их осей координат
Не забывайте, что
Do'stlaringiz bilan baham: |