iCrosss Facebook page

пятница, 5 марта 2010 г.

NVIDIA Parallel Nsight ("Nexus")

Компания NVIDIA решила создать продукт, который позволить производить отладку, профайлинг и анализ приложений написанных с использованием технологии CUDA. Для чего это нужно, ведь в CUDA уже предусмотрен режим эмуляции для того чтоб можно было отладить все функции и ядро которые выполняются на GPU? Да, действительно, в CUDA есть режим эмуляции, предусматривающий компиляцию кода, таким образом, что его выполнение будет производиться на центральном процессоре и эмулировать потоки, создавая их средствами операционной системы. Но такой подход имеет множество недостатков, которые существенно затрудняют отладку. Об этом написана отдельная статья «Подводные камни -deviceemu».
Вернемся к теме статьи. Для того чтобы побороть все недостатки режима эмуляции NVIDIA разрабатывает продукт который продвинет технологию в массы и позволит сделать отладку более комфортной. На сегодняшний день доступна «бэта» версия, ознакомится с которой, можно по ссылке. На прошлой неделе NVIDIA проводила веб семинар по использованию Nexus, показывали презентацию, основные фишки отладки и анализа. Отвечали на вопросы. Продукт состоит из 2 частей Host и Monitor и построена на базе клиент-сервер. Системные требования продукта:
  • Windows Vista SP1 или Window 7.
  • .NET framework 3.5
  • Microsoft Visual Studio 2008 (все кроме Express) с SP1.
  • Драйвер с поддержкой CUDA 3.0  (версии 195.62 и выше)
По аппаратному обеспечению тоже выдвигаются определённые требования. Графический процессор должен быть не младше G92 (список поддерживаемых устройств приведён в конце статьи). Исходя из этого, можно сказать, что на сегодняшний день поддерживается очень узкая часть рынка. Для установки, вам, скорее всего, потребуется дополнительно приводить свою систему в соответствии с требованиями продукта. Также, одна из немаловажных особенностей – для отладки вам потребуется два компьютера включённых в одну сеть. Владельцев материнских плат с двумя слотами для видеокарт это не касается (достаточно  иметь две видеокарты NVIDIA с выключенным режимом SLI). В таком случае, отладку можно будет проводить на той карте, которая не подключена к монитору. Эти ограничения можно объяснить очень просто, во время остановки на breakpoint, видеокарта замораживается и если у вас используется одна карточка на всё, то изображение на мониторе перестанет обновляться. Поэтому выполнять отладку лучше на удалённой машине, которая по терминологии NVIDIA называется «target». На нее достаточно установить .NET framework, драйвер и Nexus Monitor, установка среды разработки не обязательна. Именно на этой машине должна быть установлена видеокарта G92+. На «host» машину необходимо установить требуемую версию среды разработки и не забыть про SP1, затем Nexus Host. Видеоадаптер на ней может быть любым.  
Теперь немного о работе с продуктом. Он встраивается в среду разработки: появляется надпись Nexus в главном меню, а также свойства в контекстном меню проекта. Это позволяет настраивать конфигурацию проекта имя или адрес сервера, на котором будет запущен проект. Выполнять отладку и профайлинг необходимо пользуясь пунктами меню Nexus. Для начала работы необходимо запустить монитор на «target» машине. При запуске отладки происходит соединение по TCP/IP порт 8000 (соответственно, все настройки бренмауэра и маршрутизатора должны быть установлены правильно, чтоб не препятствовать процессу). Выполняется синхронизация и все файлы заливаются на «target» машину, где выполняются под чутким контролем монитора. Для адаптации существующего проекта или для создания нового необходимо использовать версию компилятора NVCC и библиотек CUDA, которые входят в состав NVIDIA Nexus. Компилировать .cu файлы необходимо с опцией «–G0», или использовать уже существующие build правила которые идут в комплекте с продуктом.
NVIDIA Nexus (или “Parallel Nsight”), очень мощное средство для работы с CUDA приложениями. Оно способно избавить вас от множества страданий и неудобств, которые приходилось испытывать ранее. Но хочу напомнить, что это пока еще «бэта», и во время работы с продуктом могут возникать определённые сложности. Если вы не в силах сами справиться с ситуацией, загляните в support и поищите там, если не нашли, оставьте «ticket» разработчикам. Возможно, вы нашли какой-то «баг», тогда, это будет вашим вкладом развитие передовых технологий :).  

Список графических адаптеров поддерживаемых Nexus:
   GeForce 210 GeForce 310 GeForce 8400 GeForce 8400 GS GeForce 8800 GS GeForce 8800 GT GeForce 8800 GTS 512 GeForce 9300 GE GeForce 9300 GS GeForce 9300 SE GeForce 9400 GT GeForce 9500 GS GeForce 9500 GT GeForce 9600 GS GeForce 9600 GSO GeForce 9600 GSO 512 GeForce 9600 GT GeForce 9800 GT GeForce 9800 GTX GeForce 9800 GTX+ GeForce 9800 GX2 GeForce G100 GeForce G210 GeForce G210 GeForce GT 120 GeForce GT 220 GeForce GTS 240 GeForce GTS 250 GeForce GTX 260 GeForce GTX 275 GeForce GTX 280 GeForce GTX 285 GeForce GTX 295 GeForce NVS 2100 GeForce NVS 3100  
    Quadro CX Quadro FX 1800 Quadro FX 370 Quadro FX 3700 Quadro FX 380 Quadro FX 380 LP Quadro FX 3800 Quadro FX 4800  Quadro FX 580 Quadro FX 5800
     Tesla C1060 Tesla S1070

Комментариев нет:

Отправить комментарий