Как использовать только один графический процессор для сессии тензорного потока? - PullRequest
2 голосов
/ 06 июня 2019

У меня есть два графических процессора. Моя программа использует TensorRT и Tensorflow.

Когда я запускаю только часть TensorRT, это нормально. Когда я работаю вместе с частью Tensorflow, я получаю сообщение об ошибке

[TensorRT] ERROR: engine.cpp (370) - Cuda Error in ~ExecutionContext: 77 (an illegal memory access was encountered)
terminate called after throwing an instance of 'nvinfer1::CudaError'
  what():  std::exception

Проблема в том, что сеанс Tensorflow начинается следующим образом

self.graph = tf.get_default_graph()
self.persistent_sess = tf.Session(graph=self.graph, config=tf_config)

Он загружает два графических процессора как

2019-06-06 14:15:04.420265: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1115] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 6965 MB memory) -> physical GPU (device: 0, name: Quadro P4000, pci bus id: 0000:04:00.0, compute capability: 6.1)
2019-06-06 14:15:04.420713: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1115] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:1 with 7159 MB memory) -> physical GPU (device: 1, name: Quadro P4000, pci bus id: 0000:05:00.0, compute capability: 6.1)

Я пытался загрузить только один графический процессор как

(1) Помещение поверх кода Python

import os
os.environ["CUDA_VISIBLE_DEVICES"]="0"

(2)

with tf.device('/device:GPU:0'):
    self.graph = tf.get_default_graph()
    self.persistent_sess = tf.Session(graph=self.graph, config=tf_config)

Оба не работают.

Как решить проблему?

1 Ответ

2 голосов
/ 06 июня 2019

Мне удалось загрузить только один графический процессор, поместив следующие строки в первую строку кода Python.

import sys, os
os.environ["CUDA_VISIBLE_DEVICES"]="0"
...