После успеха с запуском NVidia Nexus на двух машинах, я загорелся сделать это на одной.
Стандартные системные требования в этом случае простые: две G92/G200 видеокарты, к одной подключается монитор (мониторы, если их несколько), вторая настраивается как "ускоритель PhysX" (без подключенного монитора) и все должно работать.
У меня в рабочей машине - две видеокарты, но одна из них NVidia, а вторая - ATI и сделать так, как написано выше - невозможно, если отключить от NVidia-карты мониторы, то она пропадает из системы, запустить CUDA-программу даже локально (без Nexus) не выходит. Вынимать ATI (менять на NVidia) не хотелось, для третьей двухслотовой карты места в машине нет, покупать еще одну видеокарту хотелось еще меньше.
Первая попытка: локальный запуск (epic fail)
Если работать локально, то все работает.... до первой остановки на breakpoint внутри kernel. Даже если все активные окна расположены на мониторе, подключенном к ATI, в момент остановки на точке остановки все зависает.
Судя по особенностям процесса установки в локальном режиме ("рабочая" карта должна стать PhysX-ускорителем), в любых других режимах и должно виснуть.
Вторая попытка: виртуальная машина
В то же время, при удаленной отладке ATI-шный монитор остается живым и активным, а значит зависания - не обязательное свойство.
Завожу второй Windows в виртуальной машине (VMWare), ставлю туда Visual Studio, ставлю туда Host-часть Nexus, настраиваю удаленную работу......все работает, включая и пошаговую отладку. Естественно, окно виртуальной машины располагаю на ATI-шном мониторе.
Я не уверен, что все работает "100-% устойчиво", но пару десятков сессий пошаговой отладки удалось провести без малейших проблем.
Получается, что с виБрртуальной машиной (со второго компьютера) у меня в первый раз не завелось по причине общей жизненной неустроенности каких-то проблем с установкой Nexus Monitor, тогда же у меня вообще почти ничего не завелось, ни синхронизация, ни secure access.
Мораль
Требование двух G92/G200 видеокарт является необязательным, вполне можно обойтись одной G92/G200 (для запуска CUDA) и одной какой-нибудь.
Аппаратные подробности
- Windows7/x64, Core i7, много дисков и памяти.
- Primary Display (в терминах Windows) - подключен к ATI HD5870, драйвера ATI последние (10.1)
- Второй монитор - подключен к GTX280, драйвера рекомендованные для Nexus (195.62)
- На самой машине пускаем Nexus Monitor
- В виртуальной машине (тоже Windows 7) пускаем Nexus Host, подключаемся к настоящей машине "по сети".
- Окно виртуальной машины на primary display, поэтому неотрисовки и т.п. на втором мониторе (при висении в отладчике) - не волнуют.
- Виртуальная машина - VMWare Workstation, 7.0.1, VMWare tools установлены (включая дисплейный адаптер)
- Из возможно важных настроек (но менять не пробовал) - сеть в VMware bridged.
И еще
Отсутствие conditional breakpoints очень сильно уменьшает полезность. Если мне нужен не пошаговый режим, а именно остановка в случае "А меньше 5, Б больше 8", то придется такой if() рисовать, перекомпилировать и в нем и останавливаться. Прям девятнадцатый век...
Comments
*THUMBS_UP*