Цепочка — Python — CUDA_ERROR_INVALID_SOURCE

#python #chainer #cupy

#python #цепочка #cupy

Вопрос:

У меня есть машина с двумя разными графическими процессорами (один RTX и один Titan V), и часто на ней не удается выполнить задачи. Такое поведение в основном наблюдается в графическом процессоре с id = 1.

Одна и та же задача может быть успешно запущена на другом компьютере или графическом процессоре с id = 0.

Точный стек следующий:

   File "cupy/core/core.pyx", line 1689, in cupy.core.core.ndarray.__setitem__
  File "cupy/core/core.pyx", line 3598, in cupy.core.core._scatter_op
  File "cupy/core/_kernel.pyx", line 828, in cupy.core._kernel.ufunc.__call__
  File "cupy/util.pyx", line 48, in cupy.util.memoize.decorator.ret
  File "cupy/core/_kernel.pyx", line 617, in cupy.core._kernel._get_ufunc_kernel
  File "cupy/core/_kernel.pyx", line 51, in cupy.core._kernel._get_simple_elementwise_kernel
  File "cupy/core/carray.pxi", line 164, in cupy.core.core.compile_with_cache
  File "[miniconda]/envs/[env_name]/lib/python3.5/site-packages/cupy/cuda/compiler.py", line 161, in compile_with_cache
    mod.load(cubin)
  File "cupy/cuda/function.pyx", line 181, in cupy.cuda.function.Module.load
  File "cupy/cuda/function.pyx", line 183, in cupy.cuda.function.Module.load
  File "cupy/cuda/driver.pyx", line 185, in cupy.cuda.driver.moduleLoadData
  File "cupy/cuda/driver.pyx", line 81, in cupy.cuda.driver.check_status
cupy.cuda.driver.CUDADriverError: CUDA_ERROR_INVALID_SOURCE: device kernel image is invalid

  

Моя настройка заключается в следующем:

 chainer                   5.2.0                     <pip>
chainercv                 0.12.0                    <pip>
cupy-cuda100              5.2.0                     <pip>
  

Та же проблема обнаруживается в chainer 5.3 (я создал новую среду conda с нуля).

Я полагаю, что это каким-то образом связано с многопоточностью, но я не смог найти, как отключить это в cupy или как вообще избежать проблемы.

Некоторая потенциально неактуальная информация: Это довольно случайный процесс. В графическом процессоре id = 1 в восьми случаях из десяти он не запускается с вышеупомянутой ошибкой.

Есть идеи?

Комментарии:

1. GPU id=1 Указывает ли на RTX? Не могли бы вы попробовать еще раз, используя версию 5.4.0?

2. Нет, идентификатор графического процессора = 1, указывает на Titan X. Действительно, проблема решена с помощью версии 5.4. Не могли бы вы, пожалуйста, описать, в чем была проблема, для дальнейшего использования?