Новости про GPGPU

Симуляция поверхности океана с помощью CUDA

Интересное видео, демонстрирующее возможности современных видеокарт NVIDIA.

GPU OCEAN SIMULATOR

Видео демонстрирует симулятор водной поверхности в реальном времени. Сцена состоит из 2,8 млн. полигонов, расчёты части эффектов производятся с помощью технологии NVIDIA CUDA, финальный рендеринг осуществляется с помощью OpenGL. Для записи ролика симулятор запускался в системе с видеокартой GeForce GTX 280.

Впрочем, воспроизведённая красота океана скрывает за собой обратную сторону GPGPU — разработчик симулятора, компания ALYOTECH, уже несколько лет использует технологии CUDA прежде всего для анализа и визуализации данных радаров систем вооружения и военной техники. Не следует забывать, что графические процессоры в 90-х годах ХХ века пришли на рынок прямиком из военных тренажёров-имитаторов, и теперь просто находят новые применения в военном деле.

Интервью с Дэвидом Кирком о его книге

Доктор Дэвид Кирк, главный учёный NVIDIA, относительно недавно в соавторстве с доктором Вен-мей Хву написал книгу «Programming Massively Parallel Processors: A Hands-on Approach».

Книга посвящена основам и методам программированию на языке CUDA. На специальном видеоролике, выложенном NVIDIA в своём блоге, господин Кирк немного рассказывает о  своей книге. Он говорит, что она создана для начинающих программистов, студентов и профессионалов, желающих понять архитектуру и основные принципы работы GPU.

Также он отмечает, что уже сейчас CUDA преподаётся в 300 университетах и наличие такого пособия является очень важным для преподавания. Также он сказал, что думает о будущих изданиях книги, в которых будут раскрыты особенности программирования с использованием возможностей будущих высокопараллельных графических процессоров.

Подробнее узнать о книге можно на специальном мини-сайте. Купить книгу можно в интернет-магазинах: Elsevier, Amazon или Barnes & Noble.

Interview With Dr. David Kirk on New Parallel Programming Textbook

Причины успеха CUDA от Linux Magazine

Редактор издания «Linux Magazine» Douglas Eadline высказался о причинах успеха технологии NVIDIA CUDA.

Ведущий раздела высокопроизводительных вычислений в своей авторской колонке привёл некоторую статистику NVIDIA по использованию CUDA и её популярности в целом:

  • более 2700 упоминаний CUDA в Google Scholar;
  • более 800 видеоупоминаний CUDA на YouTube;
  • более 670 программ на CUDA Zone;
  • более 350 участников CUDA Superhero Challenge;
  • более 300 университетских курсов по изучению модели параллельного программирования CUDA;

Всё это явно выделяет CUDA среди прочих HPC технологий программирования, включая MPI, OpenMP, OpenCL и будущий Ct от Intel. Douglas Eadline попытался разобраться в причинах такого успеха CUDA.

Средства разработки CUDA бесплатны.

Хотя CUDA и не является open-source, CUDA Toolkit может загрузить и свободно использовать любой желающий с сайта NVIDIA. Даже не требуется регистрация, фактор, который нельзя недооценивать, поскольку традиционно компании-разработчики бесплатных инструментов заставляют проходить сложные регистрации с неизбежной дальнейшей обработкой их пользователей отделами продаж.

CUDA не вносит капитальных изменений в язык C.

Создатели CUDA не стали изобретать новый язык программирования. Любой владеющий C может сходу приступить к изучению и использованию CUDA.

Возможность постепенного перехода на CUDA.

Программист может постепенно добавлять функции CUDA в программу, написанную на C. Не требуется коренной переделки программ для извлечения выгоды из GPU-ускорения.

Низкий порог вхождения.

Обычно нелегко привлечь внимание к новой технологии, когда её использование требует значительных инвестиций в оборудование. В случае CUDA достаточно одной видеокарты на базе NVIDIA для начала работы. Можно проверить эффект на плате начального уровня и лишь потом решать, инвестировать ли в более мощное оборудование.

Поддержка и продвижение CUDA со стороны NVIDIA.

Многие кластерные технологии вроде MPI имеют многие схожие факторы и демонстрируют неплохой рост, но за ними не стоит компании, которая столько вкладывала бы в их продвижение. Для того же MPI просто нет аналогов центра компетенции уровня CUDA Center of Excellence Program.

Успех CUDA должен служить образцом действий для прочих разработчиков HPC технологий. Низкий порог вхождения — ключ к продвижению, а если вы предоставляете свободу разработки, ждать внедрений долго не придётся. К выходу Fermi её уже будут ждать приложения и заказы — многие ли могут похвастаться тем же?

Видеодемонстрации CUDA-ускорения в новом Premiere Pro

Вскоре компания Adobe представит новую версию своего профессионального редактора видео Premiere Pro, который будет активно использовать мощности видеокарт NVIDIA.

Достижение прироста во многих аспектах работы Premiere Pro при использовании видеокарт NVIDIA стало возможным благодаря разработке движка Adobe Mercury Playback.

В связи с этим на своём Youtube-канале NVIDIA опубликовала ряд видеороликов, показывающих преимущество профессиональных решений NVIDIA Quadro над обычными процессорами в этой новой программе для видеомонтажа.

Первый ролик показывает очевидный прирост при использовании эффекта удаления фона.

GPU Accelerated Keying Effects: Adobe Premiere Pro CS5 & Quadro

Второе видео показывает ускорение работы с видео при создании ролика выского разрешения с эффектом «картинка в картинке».

GPU Acceleratd Picture-in-Picture: Adobe Premiere Pro CS5

Третий ролик показывает ускорение при создании проекта с многослойным видео.

GPU-Accelerated Overlays and Compositing: Adobe Premiere Pro CS5

Четвёртое видео демонстрирует прирост при использовании многослойной цветовой коррекции при монтаже видео.

GPU-Accelerated Engine & Color Correction: Adobe Premiere Pro CS5

Пятый ролик показывает огромный прирост при кодировании видео.

GPU-Accelerated Video Encoding: Adobe Premiere Pro CS5

Наконец, последнее видео представляет собой живую демонстрацию ускорения, которое обеспечивает движок Adobe Mercury Playback. Обин Олсен из Dv3 Productions показывает как система с двумя 4-ядерными 8-потоковыми процессорами Intel Core i7 не может справиться плавным рендерингом видео, созданного в демонстрации, в то время как CUDA позволяет добиться полностью плавного воспроизведения в реальном времени.

Adobe Mercury Playback Engine & Quadro Demo -Obin Olsen, Dv3 Productions

ATI Stream SDK 2.01 с улучшенной поддержкой OpenCL

AMD дорабатывает средства GPGPU для разработчиков приложений.

Новая версия 2.01 пакета Stream для неграфического использования GPU AMD содержит изменения «средней тяжести»:

  • ATI Stream Profiler теперь полностью интегрируется в среду Microsoft Visual Studio 2008;
  • поддержка Red Hat® Enterprise Linux версии 5.3;
  • поддержка отладки ядра приложений OpenCL с помощью отладчика GNU в среде Linux;
  • предварительная реализация взаимодействия OpenCL и Direct3D 9/10;
  • четыре новых примера;
  • поддержка отдельно загружаемого средства анализа производительности Stream KernelAnalyzer;
  • исправление множества проблем с компиляцией и исполнением OpenCL;
  • поддержка разработки на Radeon HD 5670 и 5570.

Загрузить пакет ATI Stream можно с сайта AMD для 32- и 64-разрядных версий OpenSUSE, RHEL, Ubuntu, Windows XP, Vista и 7.

Наиболее интересным представляется запрятанная в нёдрах Release Notes улучшенная поддержка ATI CAL, низкоуровневого API для AMD GPU, являющегося эквивалентом CUDA driver-level API у NVIDIA. Теперь можно использовать CAL и OpenCL в одном приложении, и даже запускать OpenCL-программы при неустановленном драйвере Catalyst, что будет востребованным в серверной среде. ATI CAL также позволяет достичь большей производительности с графическими процессорами AMD предыдущих поколений, чья совместимость с OpenCL ограничена.

А вот что не исчезло, так это проблемы с работой OpenCL в системах с установленными реализациями как от AMD, так и от NVIDIA. Разработчикам по-прежнему, как в цирке, приходится перебрасывать из руки в руку библиотеки OpenCL.dll от конкурентов для отладки универсального приложения.

Детали от NVIDIA об использовании GPU-ускорения в следующей версии Adobe Premiere

Mercury Playback Engine будет поддерживать только «топовые» Quadro.

В блоге nTersect представитель NVIDIA Mark Priscaro рассказал о будущем GPU-ускоряемом движке работы с видео Mercury Playback Engine от Adobe, который ляжет в основу следующей версии Adobe Premiere.

Использование NVIDIA CUDA в Mercury Engine позволит буквально уничтожить задержки при многих операциях с видео, от простой прокрутки временной шкалы до наложения сложных эффектов в реальном времени. Можно будет наложить одновременно буквально тысячи клипов на шкалу, SD, HD или даже еще большего уровня качества. Детали изложены в представленных видео:

GPU-Accelerated Video Encoding: Adobe Premiere Pro CS5
GPU Acceleratd Picture-in-Picture: Adobe Premiere Pro CS5

Неприятной же новостью стало объявление, что поддержка GPU-ускорения будет доступна только для ограниченного числа видеокарт NVIDIA Quadro: Quadro FX 3800, Quadro FX 4800 и Quadro FX 5800. Возможно, потом к ним присоединятся карты на базе Fermi, но похоже, что повторяется история с ускорением спецэффектов в Photoshop CS4, доступного только в сочетании со специальной «видеокартой» Quadro CX.

gDEBuggerCL — отладчик для OpenCL

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

Вслед за проектом компилятора OpenCL появился и проект специализированного отладчика OpenCL-программ gDEBugger CL, от известной своими отладчиками OpenGL фирмы Graphic Remedy. Судя по обещаемым возможностям, инструмент придётся впору каждому разработчику на OpenCL:

  • определение проблем производительности параллельных вычислений;
  • остановка, редактирование и продолжение работы ядра OpenCL программы «на лету»;
  • расставление точек останова для ошибок OpenCL, вызовов функций, утечек памяти;
  • визуальный просмотр потребления памяти OpenCL приложением;
  • просмотр данных OpenCL как изображений и как «сырцов»;
  • отслеживание времени выполнения инструкций OpenCL;
  • ведение истории вызовов;
  • просмотр взаимозависимостей между OpenCL- и OpenGL-кодом, разделяемых объектов.
Инструмент пока находится на стадии бета-тестирования, записаться в которое можно по электронной почте с сайта проекта. Релиз ожидается во втором квартале 2010 года, для платформ Windows, MacOS и Linux. Цены и политика лицензирования пока не озвучены.

Ускорение поиска лекарств с помощью графических процессоров

Сегодня в отношении высокопараллельных расчётов графические процессоры (GPU) серьёзно превосходят центральные (CPU). Во многих научных областях GPU уже активно используются и сильно помогают специалистам. NVIDIA решила рассказать о ещё одной важной области исследований: ускорение поиска лекарств с помощью мощностей графических процессоров.

Поиск новых лекарств — это сложная и трудоёмкая задача. Биохимики должны проверить миллионы составов прежде чем смогут выбрать те, что наиболее эффективны против определённого вируса или бактерии или те, что вызывают желательную реакцию человеческого тела.

Для ограничения области поиска  учёные используют сложные инструменты высокопроизводительной фильтрации. Однако, на определённом этапе им, всё же приходится тестировать оставшиеся биохимические составы в ручных экспериментах.

Тестирование составов — это многократный процесс, который может длиться пять лет до того, как новое лекарство будет, наконец, обнаружено. Потом пять или более лет идут клинические испытания и прочие процедуры, необходимые для того, чтобы управление по контролю за продуктами и лекарствами одобрило новый препарат. Таким образом, всё, что может ускорить процесс тестирования позволяет приблизить появление на рынке лекарств, которые потенциально могут сохранить жизни.

Компьютерная симуляция биохимических реакций помогает учёным выбрать более продуктивное направление исследования и улучшить продуктивность своей работы. Проблема лишь в том, что подобная симуляция настолько сложная задача, что обычно она вычисляется на суперкомпьютерах и занимает при этом недели или даже месяцы при симуляции лишь одной биохимической реакции. К примеру, чтобы воссоздать процесс, при котором микроскопические клеточные механизмы, называемые рибосомами, работают с протеинами для построения аминокислот, Аламосской национальной лаборатории понадобилось девять месяцев работы суперкомпьютера, хотя в реальности это происходит всего за две наносекунды.

Это лишь один из примеров тех областей исследований, в которых применение вычислений общего назначения средствами графических ускорителей может принести огромные преимущества. Всего по оценкам NVIDIA в мире около 15—20 миллионов исследователей, которые могут серьёзно улучшить продуктивность своей работы благодаря доступу к суперкомпьютерным мощностям. Однако, в мире всего лишь несколько тысяч суперкомпьютеров и многим исследователям приходится заказывать вычислительное время за год вперёд, а многие и вовсе лишены такой привилегии.

В ближайшем будущем множество исследователей получат доступ к огромным вычислительным ресурсам графических ускорителей, что, будем надеяться, приблизит наступление светлого будущего.

Проект компилятора для OpenCL

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

На известном хостинге open-source проектов Sourceforge.net появился проект OpenCL Kernel Compiler. Как следует из аннотации, clcc (тонкая аллюзия на gcc, надо полагать) предназначен для проверочной сборки файлов ядра OpenCL-программы, предоставляя удобные средства обнаружения и информирования об ошибках компиляции. Прежде программистам приходилось самостоятельно добавлять всю логику обнаружения ошибок компиляции в исходные тексты программ и проверять ядро OpenCL уже при исполнении. Как исходный текст компилятора для Unix/Linux, так и бинарные сборки для Windows и MacOS доступны в файловой области проекта.

Обратная сторона GPGPU — взлом паролей баз данных

Огромная вычислительная мощь современных графических процессоров и наличие удобных средств для создания инструментов по её использованию породили ряд «пограничных» применений этих мощностей.

В Сети появилась утилита с «говорящим» названием cudadbcracker, предназначенная для подбора хешей SHA-1 сохранённых паролей популярных серверов баз данных Oracle и Microsoft SQL с использованием API NVIDIA CUDA. Сайт Geeks3D.com провел тестирование данной программы и результаты превзошли все ожидания — 47 не самых простых паролей Oracle 11g были вскрыты в системе с видеокартой GeForce GTX 295 всего за 202 секунды. Средняя скорость перебора составляла 200 миллионов комбинаций в секунду.Elcomsoft выпустила целый ряд CUDA-aware продуктов, включая средство проверки стойкости паролей беспроводных сетей Wi-Fi и средство подбора хешей MD5. Авторы обычно выпускают подобные программы с благими намерениями в качестве средств аудита информационной безопасности и восстановления утерянных паролей, но не приходится сомневаться, что найдутся желающие использовать их несанкционированно.