2016-12-13 5 views
3

Я пытаюсь запустить tf.one_hot, получить CUDA_ERROR_LAUNCH_FAILED ошибку. Вот подробности:TensorFlow GPU, CUDA_ERROR_LAUNCH_FAILED на tf.one_hot()

Пример кода:

import tensorflow as tf 
idx_0 = tf.placeholder(tf.int64, [None]) 
mask = tf.one_hot(idx_0, 3, axis=-1) 
sess = tf.Session() 
sess.run(tf.global_variables_initializer()) 
a = sess.run([mask],feed_dict={idx_0:[0,1,2]}) 
print(a) 

Ожидаемый результат:

[array([[ 1., 0., 0.], 
     [ 0., 1., 0.], 
     [ 0., 0., 1.]], dtype=float32)] 

Фактический результат:

E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_driver.cc:1177] could not synchronize on CUDA context: CUDA_ERROR_LAUNCH_FAILED :: No stack trace available 
E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_event.cc:49] Error polling for event status: failed to query event: CUDA_ERROR_LAUNCH_FAILED 
F c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_util.cc:370] GPU sync failed 

Config ПК:

  • TensorFlow 0.12.0-rc1
  • Python 3.5
  • CUDA 8,0
  • cuDNN 5,1
  • ОС: Windows 10
  • GPU: GeForce GTX 970

tf.one_hot работать нормально, когда работающих на Linux-процессоре, графическом процессоре Linux (GeForce GTX 660), процессоре Windows 10. Не совсем на графическом процессоре Windows 10.

На графике Windows 10, tf.matmul, tf.reduce_mean, tf.reduce_sum запускаются нормально. Но tf.one_hot не в порядке.

Это ошибка, или я что-то пропустил? Благодарю.

(Edit 2016-12-16)

Я запустить код на той же машине, в Xubuntu, GPU. Код работает нормально. Поэтому я думаю, что это проблема в TensorFlow-Windows.

ответ

0

Я комментирую как «ответ», так как мой отзыв слишком подробно, как комментарий.

Я побежал ваш образец и получил следующие результаты:

I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:906] DMA: 0 
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:916] 0: Y 
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 745, pci bus id: 0000:01:00.0) 
E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_event.cc:49] Error polling for event status: failed to query event: CUDA_ERROR_LAUNCH_FAILED 
F c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_event_mgr.cc:198] Unexpected Event status: 1 

Моя конфигурация:

  • TensorFlow 0.12.0-rc1 для GPU
  • Python 3.5.2/4.2.0 Anaconda
  • CUDA 8.0
  • cuDNN 5.1
  • ОС: Windows 10
  • GPU: GeForce GTX 745 (OEM)

У меня есть другой код, который производит вышеуказанные ошибки. Запуск его на другом компьютере с аналогичной конфигурацией, но с TensorFlow 0.12.0-rc1 для выпуска только центрального процессора. Я предлагаю вам протестировать свой код с помощью этой версии TensorFlow.

3

Также оставляя комментарий в качестве ответа, в моем случае, потому что у меня недостаточно репутации для комментариев.

Вы сообщили об этом как об ошибке в GitHub?Я тоже могу подтвердить это поведение с той же Tensorflow/OS/видеокарте/и т.д.

Просто переместив tf.one_hot() к CPU решает вопрос для меня, то есть что-то вроде

with tf.device('/cpu:0'): b = tf.one_hot(a, 123)

+0

Спасибо , Добавлено в https://github.com/tensorflow/tensorflow/issues/6783. – luzi82

Смежные вопросы