Статьи

Intel OpenCL 1.5: AVX, отладчик, но плохая производительность

Tagged:  

Пощупал вышедший вчера Intel OpenCL SDK 1.5.

Заявленные новые фишки:

  • Поддержка AVX-векторизации (т.е. векторов в 256 бит)
  • Отладчик
Имею сказать:
Отладчик
Отладчик - работает. Пошаговая отладка, просмотр значений переменных, все отлично. С каким конкретно потоком работать - задается до запуска программы.

Несколько неудобно то, что путь до файла с исходными текстами передается в флагах компиляции.

Параллельное программирование на современных видеокартах - слайды

Выкладываю слайды со встречи, проходившей вчера на физфаке МГУ.

По сравнению с тем, что было показано в аудитории, стало чуть больше слайдов и добавлен небольшой список литературы (учебные курсы и статьи, которые упоминались с голоса)

Полная презентация в PDF-формате доступна тут: Parallel-Programming-On-GPU-29092010-PhysDept-MSU.pdf

Алгоритмы поиска на графическом процессоре с помощью технологии NVidia CUDA

В данной статье рассмотрим бинарный поиск и связанную с ним задачу сортировки. Попытаемся сделать теоретическую оценку алгоритмов и провести практические тесты.

Введение

Данная статья является продолжением темы CUDA search . В этой теме рассматривался простейший линейный поиск на графическом процессоре с помощью технологии nVidia CUDA. В наихудшем случае т.е. когда искомый элемент массива был последним, алгоритм на GPU превзошел свой аналог на CPU почти на 40%. Количество элементов в массиве было равно количеству процессоров. Такие условия задачи достаточно хороши для GPU. Однако, как быть в других условиях? Как с ними справиться GPU? Подходит ли он для других алгоритмов? Что ж, попытаемся ответить на эти вопросы.

OpenCL: ATI + NVidia, текущее состояние дел (windows)

По случаю выхода ATI Stream SDK 2.01, описанное в предыдущей статье несколько устарело. Теперь все иначе, по меньшей мере под Windows.

OpenCL.DLL устанавливается и драйверами NVidia (поверх имеющегося) и ATI SDK (только если в системе такого нет? если в системе есть более старый?) . При этом тот вариант, который ставят драйвера NVidia 196.xx - хороший, позволяющий работать и с NVidia и с ATI картами без каких-то избыточных телодвижений, а вот ATI-шный в двухкарточном варианте у меня вызывал непонятные проблемы.

NVdia Nexus: работа из виртуальной машины

После успеха с запуском NVidia Nexus на двух машинах, я загорелся сделать это на одной.

Стандартные системные требования в этом случае простые: две G92/G200 видеокарты, к одной подключается монитор (мониторы, если их несколько), вторая настраивается как "ускоритель PhysX" (без подключенного монитора) и все должно работать.

У меня в рабочей машине - две видеокарты, но одна из них NVidia, а вторая - ATI и сделать так, как написано выше - невозможно, если отключить от NVidia-карты мониторы, то она пропадает из системы, запустить CUDA-программу даже локально (без Nexus) не выходит. Вынимать ATI (менять на NVidia) не хотелось, для третьей двухслотовой карты места в машине нет, покупать еще одну видеокарту хотелось еще меньше.

После успеха с запуском NVidia Nexus на двух машинах, я загорелся сделать это на одной.

Стандартные системные требования в этом случае простые: две G92/G200 видеокарты, к одной подключается монитор (мониторы, если их несколько), вторая настраивается как "ускоритель PhysX" (без подключенного монитора) и все должно работать.

У меня в рабочей машине - две видеокарты, но одна из них NVidia, а вторая - ATI и сделать так, как написано выше - невозможно, если отключить от NVidia-карты мониторы, то она пропадает из системы, запустить CUDA-программу даже локально (без Nexus) не выходит. Вынимать ATI (менять на NVidia) не хотелось, для третьей двухслотовой карты места в машине нет, покупать еще одну видеокарту хотелось еще меньше.

NVidia Nexus: нулевые шаги

UPDATE: от большинства проблем удалось избавиться просто переустановкой NVidia Nexus на обеих машинах. Secure connection заработала, синхронизация - преимущественно заработала, хотя бывают необъяснимые сбои (и тогда надо удалить синхронизируемые файлы с той машины, на которую копируем т.е. ту, где Nexus Monitor).

Update2 И с виртуальной машиной тоже получилось, поэтому проще поменять полностью текст, чем вносить еще поправки:

  1. Если не работает синхронизация или Secure connection (при стандартных настройках, когда вы ничего не меняли) - попробуйте переставить Nexus Monitor, мне помогло.
  2. Иногда (закономерность понять не удалось) синхронизация файлов не может синхронизироваться. Тогда нужно вручную удалить синхронизируемые файлы с той машины, где запущен Nexus Monitor (на Win7/Vista это %user profile%/AppData/Roaming/Nvidia corporation/Nexus/Monitor/Mirror/)

Copyright © 2008-2011 Alex Tutubalin