Как запустить несколько тренировочных заданий на разных графических процессорах? - PullRequest
0 голосов
/ 05 марта 2020

У меня есть 2 графических процессора на моем сервере, которые я хочу запускать на них различные обучающие задачи.

В первой задаче, пытаясь заставить Tensorflow использовать только один графический процессор, я добавил следующий код в начало моего скрипта:

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

После запуска первой задачи, когда я пытаюсь запустить вторую задачу на другом графическом процессоре, (с теми же двумя строками кода) я получаю ошибку "No device GPU:1".

В чем проблема?

1 Ответ

1 голос
/ 05 марта 2020

Q : «В чем проблема?»

Система должна видеть карточки - проверить текущее состояние сервер, используя вызов (hwloc -tool) lstopo:

$ lstopo --only osdev
GPU L#0 "card1"
GPU L#1 "renderD128"
GPU L#2 "card2"
GPU L#3 "renderD129"
GPU L#4 "card3"
GPU L#5 "renderD130"
GPU L#6 "card0"
GPU L#7 "controlD64"
Block(Disk) L#8 "sda"
Block(Disk) L#9 "sdb"
Net L#10 "eth0"
Net L#11 "eno1"
GPU L#12 "card4"
GPU L#13 "renderD131"
GPU L#14 "card5"
GPU L#15 "renderD132"

Если отображается больше, чем просто вышеупомянутый card0, перейдите к правильному именованию / id# -s
и
обязательно установить его перед выполнением любых других import -s, таких как pycuda и tensorflow.

import os
os.environ['CUDA_VISIBLE_DEVICES'] = '1'   # MUST PRECEDE ANY IMPORT-s
#---------------------------------------------------------------------
import pycuda     as pyCUDA
import tensorflow as tf
...
#----------------------------------------------------------------------
...