Операции CUDA IPC не поддерживаются в Windows? Есть ли обходной путь? - PullRequest
0 голосов
/ 27 апреля 2019

При попытке обучить нейронную сеть с помощью специального загрузчика данных:

train_dataset = datasets.VectorizedDataset(x_train,y_train)
train_loader = datasets.DataLoader(shuffle=True,num_workers=4)

Это сразу приводит к ошибкам при загрузке данных с:

RuntimeError: cuda runtime error (71) : operation not supported at c:\a\w\1\s\tmp_conda_3.6_090826\conda\conda-bld\pytorch_1550394668685\work\torch\csrc\generic\StorageSharing.cpp:232

И это (CUDA IPC ops) задокументировано здесь :

Они не поддерживаются в Windows. Что-то вроде делать многопроцессорная обработка на тензорах CUDA не может быть успешной, есть два альтернативы этому.

  1. Не использовать многопроцессорность. Установите num_worker DataLoader на ноль.

  2. Вместо этого делитесь тензорами процессора. Убедитесь, что ваш пользовательский DataSet возвращает тензоры процессора.

Я использую графический процессор GTX 1070 на Windows 10 через PyTorch 1.0.1 и CUDA 10.0.

Разве нельзя буквально разгрузить загрузку тензорных данных CUDA в несколько процессоров на машинах с Windows в Pytorch? Есть ли обходной путь? Должны ли мы сделать что-то более сложное, например, написать собственную многопоточность? Или мы вынуждены сохранять всю загрузку данных в основном процессе?

Спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...