Ошибка графического процессора Google Cloud ML Engine
Я создал несколько заданий для обучения CNN с использованием Google Cloud ML Engine, каждый раз, когда задание успешно завершалось с ошибкой графического процессора. Размещение на печатном устройстве включало некоторую активность графического процессора, но в деталях / использовании задания не использовалось графическое ядро.
Вот команда, которую я использую для создания вакансии:
Задания gcloud beta ml-engine отправлены на обучение fei_test34 --job-dir gs://tfoutput/joboutput - тренер пути пакета --module-name=trainer.main --region европа-west1 --staging-bucket gs://tfoutput --scale-level BASIC_GPU -- -data=gs://crispdata/cars_128 --max_epochs=1 --train_log_dir=gs://tfoutput/joboutput --model=trainer.crisp_model_2x64_2xBN --validation= верно - верно Икс
Вот журнал размещения устройства: журнал размещения устройства. Ошибка графического процессора: детализация ошибки графического процессора
Больше информации:
Когда я запускал свой код в Google Cloud ML Engine, средняя скорость обучения с использованием одного Tesla K80 составляла 8,2 примера / сек, средняя скорость без использования графических процессоров составляла 5,7 примера / сек, с размером изображения 112x112. Тот же код, который я получил 130.4 примера / сек, используя один GRID K520 на Amazon AWS. Я думал, что использование Tesla K80 должно получить более высокую скорость. Кроме того, я получил ошибку графического процессора, которую я отправил вчера. Кроме того, в квотах Compute Engine я вижу использование ЦП> 0%, но использование графических процессоров остается 0%. Мне было интересно, действительно ли GPU работает.
Я не знаком с облачными вычислениями, поэтому не уверен, что предоставил достаточно информации. Не стесняйтесь спрашивать более подробную информацию.
Я только что попытался установить значение complex_model_m_gpu, скорость обучения примерно такая же, как у одного GPU (потому что мой код для одного GPU), но в журнале больше информации. Вот копия журнала:
Я успешно открыл библиотеку CUDA libcudnn.so.5 локально
Я успешно открыл библиотеку CUDA libcufft.so.8.0 локально
Я успешно открыл библиотеку CUDA libcuda.so.1 локально
Я успешно открыл библиотеку CUDA libcurand.so.8.0 локально
Сводное имя cross_entropy (raw) недопустимо; вместо этого используется cross_entropy__raw_.
Сводное имя total_loss (raw) недопустимо; используя вместо этого total_loss__raw_.
W Библиотека TensorFlow не была скомпилирована для использования инструкций AVX2, но они доступны на вашем компьютере и могут ускорить вычисления ЦП.
W Библиотека TensorFlow не была скомпилирована для использования инструкций FMA, но они доступны на вашем компьютере и могут ускорить вычисления ЦП.
У меня успешное чтение узла NUMA из SysFS имело отрицательное значение (-1), но должен быть хотя бы один узел NUMA, поэтому возвращается ноль узла NUMA
Я нашел устройство 0 со свойствами:
E имя: Tesla K80
Ми мажор: 3 минор: 7 memoryClockRate (ГГц) 0,8235
E pciBusID 0000: 00: 04.0
E Общая память: 11,20 ГБ
E Свободная память: 11,13 ГБ
W создает контекст, когда вы активны в данный момент; существующий: 0x39ec240
У меня успешное чтение узла NUMA из SysFS имело отрицательное значение (-1), но должен быть хотя бы один узел NUMA, поэтому возвращается ноль узла NUMA
Нашел устройство 1 со свойствами:
E имя: Tesla K80
Ми мажор: 3 минор: 7 memoryClockRate (ГГц) 0,8235
E pciBusID 0000: 00: 05.0
E Общая память: 11,20 ГБ
E Свободная память: 11,13 ГБ
W создает контекст, когда вы активны в данный момент; существующий: 0x39f00b0
У меня успешное чтение узла NUMA из SysFS имело отрицательное значение (-1), но должен быть хотя бы один узел NUMA, поэтому возвращается ноль узла NUMA
Нашел устройство 2 со свойствами:
E имя: Tesla K80
Ми мажор: 3 минор: 7 memoryClockRate (ГГц) 0,8235
E pciBusID 0000: 00: 06.0
E Общая память: 11,20 ГБ
E Свободная память: 11,13 ГБ
W создает контекст, когда вы активны в данный момент; существующий: 0x3a148b0
У меня успешное чтение узла NUMA из SysFS имело отрицательное значение (-1), но должен быть хотя бы один узел NUMA, поэтому возвращается ноль узла NUMA
Нашел устройство 3 со свойствами:
E имя: Tesla K80
Ми мажор: 3 минор: 7 memoryClockRate (ГГц) 0,8235
E pciBusID 0000: 00: 07.0
E Общая память: 11,20 ГБ
E Свободная память: 11,13 ГБ
I Одноранговый доступ не поддерживается между порядковыми номерами устройств 0 и 1.
I Одноранговый доступ не поддерживается между порядковыми номерами устройств 0 и 2.
I Одноранговый доступ не поддерживается между порядковыми номерами устройств 0 и 3.
I Одноранговый доступ не поддерживается между порядковыми номерами устройств 1 и 0
I Одноранговый доступ не поддерживается между порядковыми номерами устройств 1 и 2.
I Одноранговый доступ не поддерживается между порядковыми номерами устройств 1 и 3
I Одноранговый доступ не поддерживается между порядковыми номерами устройств 2 и 0
I Одноранговый доступ не поддерживается между порядковыми номерами устройств 2 и 1
I Одноранговый доступ не поддерживается между порядковыми номерами устройств 2 и 3
I Одноранговый доступ не поддерживается между порядковыми номерами устройств 3 и 0
I Одноранговый доступ не поддерживается между порядковыми номерами устройств 3 и 1.
I Одноранговый доступ не поддерживается между порядковыми номерами устройств 3 и 2.
Я DMA: 0 1 2 3
Я 0: Y N N N
Я 1: N Y N N
Я 2: N N Y N
Я 3: NNNY
I Создание устройства TensorFlow (/gpu:0) -> (устройство: 0, имя: Tesla K80, идентификатор шины pci: 0000: 00: 04.0)
I Создание устройства TensorFlow (/gpu:1) -> (устройство: 1, имя: Tesla K80, идентификатор шины PCI: 0000: 00: 05.0)
I Создание устройства TensorFlow (/gpu:2) -> (устройство: 2, имя: Tesla K80, идентификатор шины PCI: 0000: 00: 06.0)
I Создание устройства TensorFlow (/gpu:3) -> (устройство: 3, имя: Tesla K80, идентификатор шины PCI: 0000:00:07.0)
I Создание устройства TensorFlow (/gpu:0) -> (устройство: 0, имя: Tesla K80, идентификатор шины pci: 0000: 00: 04.0)
I Создание устройства TensorFlow (/gpu:1) -> (устройство: 1, имя: Tesla K80, идентификатор шины PCI: 0000: 00: 05.0)
I Создание устройства TensorFlow (/gpu:2) -> (устройство: 2, имя: Tesla K80, идентификатор шины PCI: 0000: 00: 06.0)
I Создание устройства TensorFlow (/gpu:3) -> (устройство: 3, имя: Tesla K80, идентификатор шины PCI: 0000:00:07.0)
Мне 361
Я ведро = crispdata, папка = cars_128 / train
I path = gs: // crispdata / cars_128 / train
I Num примеров = 240
Я ведро = crispdata, папка = cars_128 / val
I path = gs: // crispdata / cars_128 / val
I Num примеров = 60
I {'flop': False, 'learning_rate_decay_factor': 0,005, 'train_log_dir': 'gs://tfoutput/joboutput/20170411_144221', 'valid_score_path': '/home/ubuntu/tensorflow/cifar10/validation_score.csores). saturate_epoch': 200, 'test_score_path': '', 'max_tries': 75, 'max_epochs': 10, 'id': '20170411_144221', 'test_data_size': 0, 'memory_usage': 0.3, 'load_size': 128, 'test_batch_size': 10, 'max_out_norm': 1.0, 'email_notify': False, 'skip_training': False, 'log_device_placement': False, 'learning_rate_decay_schedule': '', 'cpu_only': False, 'standardize': False, 'num_epochs_per_decay': 1, 'zoom_out': 0.0, 'val_data_size': 100, 'learning_rate': 0.1, 'grayscale': 0.0, 'train_data_size': 250, 'minimal_learning_rate': 1e-05, 'save_valid_scores': False, 'train_batch_size': 50, ' вращение ': 0.0, 'val_epoch_size': 2, 'data': 'gs://crispdata/cars_128', 'val_batch_size': 50, 'num_classes': 2, 'learning_rate_decay': 'linear', 'random_seed': 5, 'num_threads': 1, 'num_gpus': 1, 'test_dir': '', 'shuffle_traindata': False, 'pca_jitter': 0.0, 'moving_average_decay': 1.0, 'sample_size': 128, 'job-dir': 'gs://tfoutput/joboutput', 'learning_algorithm': 'sgd', 'train_epoch_size': 5, 'model': 'trainer.crisp_model_2x64_2xBN', 'validation': False, 'tower_name': 'tower'}
Я заполняю очередь 100 изображениями CIFAR перед началом тренировки. Это займет несколько минут.
Я называю: "поезд"
Я оп: "NoOp"
Я ввожу: "^GradientDescent"
Я ввожу: "^ExponentialMovingAverage"
Я 128 128
I 2017-04-11 14: 42: 44.766116: эпоха 0, потери = 0,71, lr = 0,100000 (5,3 примера / с; 9,429 с / партия)
I 2017-04-11 14: 43: 19.077377: эпоха 1, потери = 0,53, lr = 0,099500 (8,1 примера / с; 6,162 с / партия)
I 2017-04-11 14: 43: 51.994015: эпоха 2, потери = 0,40, LR = 0,099000 (7,7 примера / с; 6,479 с / партия)
I 2017-04-11 14: 44: 22.731741: эпоха 3, потеря = 0,39, л = 0,098500 (8,2 примера / с; 6,063 с / партия)
I 2017-04-11 14: 44: 52.476539: эпоха 4, потери = 0,24, lr = 0,098000 (8,4 примера / с; 5,935 с / партия)
I 2017-04-11 14: 45: 23.626918: эпоха 5, потери = 0,29, л = 0,097500 (8,1 примера / с; 6,190 с / партия)
I 2017-04-11 14: 45: 54.489606: эпоха 6, потеря = 0.56, lr = 0.097000 (8.6 примеров / сек; 5.802 сек / партия)
I 2017-04-11 14: 46: 27.022781: эпоха 7, потери = 0,12, lr = 0,096500 (6,4 примера / с; 7,838 с / партия)
I 2017-04-11 14: 46: 57.335240: эпоха 8, потери = 0,25, lr = 0,096000 (8,7 примера / с; 5,730 с / партия)
I 2017-04-11 14: 47: 30.425189: эпоха 9, потери = 0,11, lr = 0,095500 (7,8 примера / с; 6,398 с / партия)
Значит ли это, что используются графические процессоры? Если да, есть ли какие-либо идеи о том, почему с Grid K520 существует огромная разница в скорости при выполнении одного и того же кода?
1 ответ
Таким образом, сообщения журнала указывают, что графические процессоры доступны. Чтобы проверить, действительно ли используются графические процессоры, вы можете включить регистрацию размещения устройств, чтобы увидеть, какие OP назначены графическим процессорам.
Консоль Cloud Compute не будет отображать какие-либо показатели использования, связанные с Cloud ML Engine. Если вы посмотрите на пользовательский интерфейс Cloud Console для своих рабочих мест, вы увидите графики памяти и процессора, но не графики GPU.