У меня есть план использовать распределенный TensorFlow, и я увидел, что TensorFlow может использовать графические процессоры для обучения и тестирования. В кластерной среде каждая машина может иметь 0 или 1 или более графических процессоров, и я хочу запустить свой график TensorFlow в графических процессорах на максимально возможном количестве машин.
Я обнаружил, что при запуске tf.Session()
TensorFlow выдает информацию о графическом процессоре в сообщениях журнала, как показано ниже:
I tensorflow/core/common_runtime/gpu/gpu_init.cc:126] DMA: 0
I tensorflow/core/common_runtime/gpu/gpu_init.cc:136] 0: Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:838] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080, pci bus id: 0000:01:00.0)
У меня вопрос, как мне получить информацию о текущем доступном графическом процессоре от TensorFlow? Я могу получить загруженную информацию GPU из журнала, но я хочу сделать это более изощренным, программным способом. Я также мог бы намеренно ограничить использование графических процессоров, используя переменную среды CUDA_VISIBLE_DEVICES, поэтому я не хочу знать способ получения информации о графических процессорах из ядра ОС.
Короче говоря, я хочу, чтобы такая функция tf.get_available_gpus()
возвращалась, ['/gpu:0', '/gpu:1']
если в машине есть два GPU. Как я могу это реализовать?