При использовании TensorFlow 2.0.0: Ошибка: устройство CUDA:0 не поддерживается службой XLA при настройке номера устройства XLA_GPU_JIT 0
Я пытаюсь запустить слой CuDNNLSTM на графическом процессоре Tesla V100-SXM2, но появляется ошибка из-за установленного TensorFlow-gpu 2.0.0 (невозможно перейти на более раннюю версию, потому что это общий сервер).
Параметры ConfigProto устарели в tf 2.0.0, поэтому предыдущие потоки, подобные этому, не помогают.
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = "2" # Or 2, 3, etc. other than 0
tf.config.gpu.set_per_process_memory_growth(True)
tf.config.set_soft_device_placement(True)
Если я использую эти строки кода, появляется другая ошибка:
module notfoundError: нет модуля с именем 'tensorflow.contrib'
1 ответ
Дело в том, что память первого GPU уже была выделена другим напарником. Мне удалось выбрать другой бесплатный графический процессор, просто используя следующий код, т.е. input = 'gpu:3'
def config_device(computing_device):
if 'gpu' in computing_device:
device_number = computing_device.rsplit(':', 1)[1]
os.environ["CUDA_VISIBLE_DEVICES"] = device_number
# with tf.device(computing_device):
gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus:
try:
# Currently, memory growth needs to be the same across GPUs
for gpu in gpus:
tf.config.experimental.set_memory_growth(gpu, True)
logical_gpus = tf.config.experimental.list_logical_devices('GPU')
print(len(gpus), "Physical GPUs,", len(logical_gpus), "Logical GPUs")
except RuntimeError as e:
# Memory growth must be set before GPUs have been initialized
print(e)