Запуск нескольких моделей параллельно с разными графическими процессорами в Tensorflow для прогнозирования в C ++ - PullRequest
0 голосов
/ 30 апреля 2018

Опишите проблему Я использую 2 графических процессора GTX 1080 TI, 11 ГБ, с версией CUDA / cuDNN 9.1. cudnn 7.1 на ОС (Debian 9).

Я хотел бы запустить две модели для прогнозирования в двух разных графических процессорах, чтобы ускорить время выполнения (создав два экземпляра сеансов в двух графических процессорах). первая модель вычисляет на первом GPU, а вторая - на втором GPU, выполняя каждый сеанс для определенного устройства, что-то вроде этого в python "с tf.device ('/ gpu: 0')"

Исходный код

int GPUID = std::stoi(params->getGpuDeviceStr());
setenv("CUDA_VISIBLE_DEVICES", "", GPUID);

std::cout << "Initial  visible_device_list : "<<session_options.config.gpu_options().visible_device_list() << std::endl;
session_options.config.mutable_gpu_options()->set_allow_growth(true);
session_options.config.mutable_gpu_options()->set_per_process_gpu_memory_fraction(
        params->getGpuMemoryRatio());

выход

2018-04-30 10:18:56.625199: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1208] Found device 0 with properties:
name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate(GHz): 1.683
pciBusID: 0000:09:00.0
totalMemory: 10,91GiB freeMemory: 10,75GiB
2018-04-30 10:18:56.750435: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1208] Found device 1 with properties:
name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate(GHz): 1.683
pciBusID: 0000:42:00.0
totalMemory: 10,91GiB freeMemory: 10,42GiB
2018-04-30 10:18:56.751296: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1223] Device peer to peer matrix
2018-04-30 10:18:56.751324: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1229] DMA: 0 1
2018-04-30 10:18:56.751332: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1239] 0: Y Y
2018-04-30 10:18:56.751337: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1239] 1: Y Y
2018-04-30 10:18:56.751345: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1308] Adding visible gpu devices: 0, 1
2018-04-30 10:18:57.110046: I tensorflow/core/common_runtime/gpu/gpu_device.cc:989] Creating TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 10055 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1080 Ti, pci bus id: 0000:09:00.0, compute capability: 6.1)
2018-04-30 10:18:57.110819: I tensorflow/core/common_runtime/gpu/gpu_device.cc:989] Creating TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:1 with 10050 MB memory) -> physical GPU (device: 1, name: GeForce GTX 1080 Ti, pci bus id: 0000:42:00.0, compute capability: 6.1)
Running tensorflow in Version 1.5.0

Обсуждение

Я не вижу никакого улучшения в затратах времени при одновременном запуске двух моделей путем создания двух потоков для запуска двух моделей в двух графических процессорах. Время, затрачиваемое на запуск двух моделей на двух графических процессорах, примерно такое же, как на использовании только одного графического процессора.

...