Я использую CUDA 7.5 на машине с Ubuntu Server 14.04 и 3 графическими процессорами: 2x Tesla K20C и 1x GeForce GT 630. Я попытался установить для CUDA_VISIBLE_DEVICES
соответствующие идентификаторы, чтобы код работал только на обоих графических процессорах Tesla. По какой-то причине программа, кажется, игнорирует переменную и пытается запустить код на всех 3 графических процессорах, что приводит к ошибке.
До сих пор я пытался установить переменную в /etc/environment
а также в файле bash.bashrc
(после перезагрузки). При использовании echo $CUDA_VISIBLE_DEVICES
правильные значения. Кроме того, при удаленном запуске программы из NSight через SSH с соответствующей установленной переменной среды, выполнение работает так, как задумано, и использует только два графических процессора Tesla. Но когда я запускаю программу локально (через терминал или через работника Gearman из веб-интерфейса), переменная окружения, похоже, игнорируется.
В качестве обходного пути я использую в setenv("CUDA_VISIBLE_DEVICES","0,2",1)
. Но это делает мою программу непереносимой.
Что мне здесь не хватает? Спасибо!