Как отладить код CUDA на удаленном сервере?

Я хочу отладить код CUDA на удаленном сервере. Мое оборудование выглядит следующим образом:

Pc: Ubuntu 16.04,CUDA 8.0.61,nvcc v8.0.61,Geforce MX150 and integrated graphics

Сервер: Ubuntu 14.04,CUDA 8.0.61,nvcc v8.0.61,Tesla P100-PCIE*2

Я установил Nsight Eclipse Edition 7.5 на свой компьютер. Я хочу использовать функцию удаленной отладки, чтобы я мог использовать окно визуальной отладки на моем компьютере и удаленном gdbserver, но я столкнулся с некоторыми проблемами.

Когда я настраиваю удаленную отладку, чтобы попытаться подключиться к удаленному серверу, из соединения возвращается Connection timed out.

Не знаю, связано ли это с портом. Когда я захожу на сервер, это выглядит так:

SSH -P 50034 [email protected]

При настройке соединения я заметил, что порт 2345, кажется, используется, поэтому я не знаю, есть ли конфликт. Страница настройки выглядит так: введите здесь описание изображения

До сих пор я пробовал следующее:

  1. Переустановите Nsight Eclipse Edition и отладьте образец кода на сервере в командной строке, которая работает правильно.
  2. На некоторых форумах упоминается, что порт 2345 должен быть открыт, AFAIK, вы можете использовать этот порт, если он не занят при запросе, но я не уверен в этом.
  3. Учитывая, что сервер имеет определенные ограничения на IP-адрес посетителя, поэтому я несколько раз пытался изменить сеть, но в конце концов это не удалось.

Есть идеи?


person FavonianKong    schedule 12.07.2018    source источник
comment
Переключитесь на другой порт.   -  person talonmies    schedule 12.07.2018
comment
@talonmies Я изменил 2345 на какой-то другой порт, например 4545, который, похоже, не работает.   -  person FavonianKong    schedule 12.07.2018


Ответы (1)


Наконец-то эта проблема была решена, и я вздохнул с облегчением.

Поскольку мой сервер находится в кластере, порты сопоставлены. Например, команда при подключении к серверу должна сопровождаться идентификатором порта (iessh -p 50034 [email protected]), поэтому, когда порт 2345 версии nsight eclipse (по умолчанию) обращается к серверу, он не распознает порт, тогда задержка времени ожидания равна Учитывая, поэтому я сопоставил порт 2345 с портом 2345 сервера. Карта примерно такая, как показано ниже:

-A PREROUTING -d xxx.xxx.xxx.xxx -p tcp -m tcp --dport 2345 -j DNAT --to-destination xxx.xxx.xxx.xxx:2345

Первый xxx.xxx.xxx.xxx — это IP-адрес сервера, а последний — реальный адрес вашего сервера в кластере, например 11.11.11.24, что обусловлено различными условиями.

person FavonianKong    schedule 16.07.2018