caffe multi-gpu CUDNN_STATUS_EXECUTION_FAILED

Я работаю в проекте C ++ (VS2105) в среде Windows, которая запускает несколько потоков. На ПК установлено два NVIDIA GeForce GTX 1080. Каждый поток использует свой классификатор caffe в режиме GPU.

Если все потоки используют один графический процессор, программа работает хорошо. Он хорошо работает как с GPU 0, так и с GPU1. Проблема возникает, когда я использую разные GPU для каждого потока. Например, если программа запускает два шага, а классификатор в потоке 1 использует графический процессор 0 (Caffe::SetDevice(0);) и классификатор в потоке 2 использует графический процессор 1 (Caffe::SetDevice(1);), прогноз начинает работать, но вдруг я получаю ошибку cudnn_conv_layer.cu:28] Check failed: status == CUDNN_STATUS_SUCCESS (8 vs. 0) CUDNN_STATUS_EXECUTION_FAILED

Я видел подобные ошибки от людей, работающих в многопоточных проектах с интерфейсом Python, связанных с проблемами безопасности потоков CuDNN, работающих с одним GPU, но в одном GPU программа работает нормально.

Мои модели обучаются на одном GPU. Стоит ли тренировать отдельные модели в GPU 0 и GPU 1? Должен ли я настроить классификаторы каким-либо особым образом, чтобы использовать его в многопоточной среде multiGPU ?.

Я использую ветвь windows caffe с cuda 8.0 и использую c ++ интерфейс caffe, связанный как статическая библиотека с проектом.

0

Решение

Обнаружил ту же проблему … решил «блокировку», теперь работает за один раз с одним gpu

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]