Решение для промышленности и специальных примененений, включающее возможности GPGPU.
Новый продукт в линейке одноплатных ПК OpenVPX от GE IPN250 и так обеспечивает неплохие характеристики, включая процессор Intel Core 2 Duo 2,26 ГГц, 8 Гб оперативной памяти DDR-3, 10 Гбит/с Ethernet и шину PCI Express, но к этому добавлена «изюминка» в виде графического процессора NVIDIA GeForce GT 240. 96 шейдерных процессоров обеспечивают вычислительную производительность до 390 GFLOPS и поддержку CUDA и OpenCL, что отвечает растущему интересу к GPGPU-технологиям в самых различных областях.
Такой одноплатный компьютер в промышленном исполнении послужит «мозгом» для всевозможных устройств, станков и приборов, довольствуясь энергопотреблением не более 100 Вт. Впрочем, по некоторым намёкам на сайте GE, основным заказчиком подобных решений видятся военные. В комплекте поставляются CUDA-оптимизированные библиотеки AXISLib-VSIPL для математических задач и цифровой обработки сигналов.
Инструмент для собирающихся переводить имеющиеся GPGPU программы с CUDA на OpenCL.
Консольное приложение Swan позволяет в среде Linux автоматически преобразовать исходный код ядра CUDA-программ в ядро OpenCL. Программа заменяет вызовы функций и создаёт новые точки входа. Также предлагается собственный «абстрактный» API, позволяющий создавать программы, равно легко конвертируемые с помощью Swan в CUDA или OpenCL.
Конечно, программа имеет множество ограничений, пока что не поддерживается работа с несколькими устройствами и конвертация для выполнения CUDA/OpenCL кода на CPU, как и использование возможностей C++ в исходном тексте CUDA-программы. Будем надеяться, что подобные экономящие время инструменты не останутся без развития, благо программа выпущена под GPL и исходный код доступен. Загрузить утилиту можно с официального сайта.
Перед выходом демо-версии было объявлено, что игра Just Cause 2 будет содержать ряд эксклюзивных для владельцев видеокарт на базе NVIDIA возможностей. И если с поддержкой 3D Vision всё ясно, то вот специальные эффекты моделирования водной поверхности и оптических эффектов в атмосфере оставались под вопросом. Энтузиаст решил проверить влияние данных эффектов на качество графики и подготовил сравнительное видео:
Что ж, разница в симуляции водной поверхности заметна невооружённым взглядом, так что владельцы современных видеокарт на базе NVIDIA получат неплохую «eye-candy», хотя и не влияющую на игровой процесс.
NVIDIA на своём канале YouTube опубликовала примечательный 5-минтуный видеоролик, посвящённый применению CUDA в реальных приложениях.
За 5 минут перед нами выступает семь представителей компаний, использующих в своих продуктах вычислительные мощности NVIDIA Tesla, Quadro и GeForce GPUs.
Сегменты видео:
0:00 – 0:38: Siemens Medical (Roee Lazebnik) — применение CUDA, Quadro и 3D Vision в медицине.
0:39 – 1:19: Kaspersky Lab (Roel Schouwenberg) — ускорение определения вирусов с помощью CUDA и Tesla.
1:20 – 1:42: Muvee (Elvin Low) — применение CUDA и мощностей GeForce для создания видеослайдшоу.
1:43 – 2:30: CyberLink (Tom Vaughan) — улучшенное определение лиц с помощью мощностей CUDA, GeForce, а также просмотр 3D Blu-ray с помощью 3D Vision.
2:31 – 3:20: Agilent (Amolak Badesha) — использование CUDA, Quadro и 3D Vision для улучшения внешнего вида схем.
3:21 – 4:13: Adobe (Karl Soulé) — использование CUDA на картах Quadro, GeForce для ускорения предварительного просмотра, наложения эффектов и рендеринга в новом Premiere Pro.
4:14 – 5:12: MotionDSP (Mike Sonders) — применение CUDA и GeForce для улучшения некачественного видео.
Компания Fixstars, выпускающая достаточно известный дистрибутив Yellow Dog Linux, подготовила специальную версию с интегрированной поддержкой CUDA.
Новая CUDA-редакция Yellow Dog Enterprise Linux поставляется с интегрированными средствами разработки CUDA Toolkit, CUDA SDK и Visual Profiler, а также с предустановленным драйвером NVIDIA и средой разработки Eclipse, для которой Fixstars разработала специальный плагин, приближающий возможности разработки CUDA-программ к известному продукту NVIDIA Parallel NSight для Windows (ранее известного как Nexus). В этой версии Yellow Dog Enterprise Linux обеспечена возможность быстрого переключения между CUDA toolkit и runtimes версий 3.0, 2.3 и 2.2 без необходимости переустановки, для каждого приложения индивидуально через установку переменных среды. Дистрибутив проходит жёсткое тестирование в GPGPU-системах. Согласно распространяемым компанией результатам бенчмарков, оптимизации для GPGPU в дистрибутиве YDEL позволяют добиться до 9% преимущества в производительности в сравнении с другими популярными дистрибутивами Linux.
Для коммерческих применений Yellow Dog Enterprise Linux поставляется в форме подписки ценой 400 USD в год на компьютер/сервер. Система доступна бесплатно для образовательных целей. Fixstars также предлагает готовые компьютеры и серверы, оснащённые вычислительными модулями NVIDIA Tesla и с предустановленной CUDA-редакцией YDEL.
Вслед за обновлением драйверов для «игровых» карт вышла новая версия драйверов для профессиональной линейки Quadro.
Новые драйверы Quadro 196.75 расширяют поддержку универсальных вычислений, добавляя предварительную поддержку CUDA 3.0, а также поддержку OpenCL для карт Quadro FX x700, FX 4600 и 5600. Прочие изменения включают в себя:
повышение совместимости с бета-версией Adobe Premiere CS5;
исправлена ошибочная инициализация квадробуферизации в Maya 2010;
исправлена некорректная отрисовка геометрии с помощью VBO в Catia;
повышена скорость выполнения ряда операций с буферами и текстурами;
исправлено зависание драйвера в AutoCAD 2010;
исправлено падение в «синий экран» при запуске тестов производительности в Maya.
Драйверы имеют сертификат WHQL и доступны для всех текущих версий Windows. Поддерживаются видеокарты Quadro FX и Quadro NVS на архитектурах NV40GL и более новые. Загрузить драйверы можно по ссылкам ниже:
Еще одна выходящая в этом месяце игра будет поддерживать стереотехнологию.
Менеджер Square Enix по связям с общественностью Mike Oldman дал интервью порталу IGN.com, в котором раскрыл технические детали относительно ПК-версии готовящейся игры Just Cause 2. Прежде всего, список улучшений ПК-версии:
Ниже мы приводим выдержку прочих фактов из интервью:
Игра оптимизирована для четырёхъядерных процессоров, два ядра — необходимый для игры минимум.
Поддерживаются 64-битные операционные системы Windows, но точного ответа, будет ли native 64-bit executable, не поступило.
Игра поддерживает рендеринг одновременно на трёх дисплеях в рамках Eyefinity.
Движок использует многие возможности Direct3D 10 и 10.1, включая сглаживание по методу мультисэмплинга, работа с Direct3D 11 поддерживается, но специфические функции не используются.
Расширенные настройки качества будут включать мягкие границы теней и объектов, состоящих из частиц, а также три уровня качества SSAO.
Движок специально адаптирован для NVIDIA 3D Vision и многокарточных конфигураций SLI/Crossfire, оптимизируя работу при обнаружении данных возможностей.
Улучшенное формирование поверхности воды основано на использовании NVIDIA CUDA и заимствовано из реальных симуляторов океана.
Прирост производительности от использования SLI/Crossfire в игре достигает 50-70 %.
Расширенные устройства управления, вроде джойстиков и мультимедийных клавиатур, в игре поддерживаться не будут. Но, поскольку игра выходит под маркой «Games for Windows», будет полная поддержка контроллера XBox 360, и даже режим автоматического переключения управления с клавиатуры и мыши на геймпад и наоборот, в зависимости от активности устройства.
Игра создавалась с расчётом на широкоформатные мониторы, но соотношения и разрешения будут настраиваемыми.
Загружаемый контент запланирован и для PC, он станет доступен одновременно с DLC для консольных версий.
Пользовательские модификации поддерживаться не будут, как не будет выпущено официального инструмента для их создания.
Вся защита от нелегального копирования и использования будет завязана на Steam. Steam будет также основой для многопользовательского режима.
Выход игры ожидается 23 марта в Северной Америке и 26 марта в Европе, для PC, XBox 360 и PlayStation 3 одновременно.
Как мы уже сообщали, новая версия профессиональной программы для монтажа и обработки видео, Premiere Pro от компании Adobe, будет оснащена переработанным движком Mercury Playback Engine.
Этот движок с помощью видеокарт NVIDIA позволяет значительно ускорить скорость рендеринга сцен с наложением множества слоёв, с добавлением эффектов и проч. Также благодаря CUDA и видеокартам NVIDIA Quadro ускоряется и предварительный просмотр результатов монтажа.
Всё это стало возможным благодаря тесной работе разработчиков из Adobe с командой специалистов из NVIDIA во главе с Андрю Креши, который рассказал немного о работе своей команды в небольшом видеоролике.
Из-за спины стандарта трёхмерной графики в Интернет WebGL уже выглядывает…WebCL?
Основанный на OpenGL ES WebGL уже продемонстрировал способность обеспечить новое качество и скорость графики в Интернет, но стандарт может найти и неграфические применения, чему свидетельствуют новые публикации и демонстрации.
В демонстрации приводится пример ускорения операций перемножения матриц путем помещения данных в текстуру и осуществления умножения в шейдере GLSL. Как сообщает автор, умножение матриц 1024x1024 на GPU занимает 5 секунд — заметное ускорение в сравнении с 35 секундами для той же задачи при расчётах на CPU. Для использования демонстрации необходим браузер на основе последней версии Webkit, такой как Apple Safari.
Но не только отдельные энтузиасты изучают потенциал использования графических процессоров веб-приложениями. Для API Jetpack, разрабатываемого в Mozilla Labs для браузера Firefox, изучается возможность ускорения практически любого JavaScript-кода с помощью GPU. Уже существует первая реализация, использующая NVIDIA CUDA, в будущем же вполне вероятно появление некоего общего стандарта для универсальных вычислений через Интернет. Если Khronos Group возьмётся за задачу, мы, возможно, в скором времени увидим новую аббревиатуру: WebCL.
NVIDIA обновила предварительную документацию CUDA 3.0.
В конце прошлого года NVIDIA выпустила бета-версиюCUDA SDK 3.0 с предварительной поддержкой Fermi. Однако, большинству CUDA-программистов воспользоваться этой самой предварительной поддержкой оказалось затруднительно — комплектная документация относилась в основном к предыдущей версии CUDA 2.3. И вот теперь на сайте NVIDIA для разработчиков были опубликованы три новых документа, содержащие сведения о архитектуре Fermi, характеристиках Compute Capability 2.0 устройств в целом и программировании на CUDA для них:
Интересное видео, демонстрирующее возможности современных видеокарт NVIDIA.
Видео демонстрирует симулятор водной поверхности в реальном времени. Сцена состоит из 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 университетах и наличие такого пособия является очень важным для преподавания. Также он сказал, что думает о будущих изданиях книги, в которых будут раскрыты особенности программирования с использованием возможностей будущих высокопараллельных графических процессоров.
Редактор издания «Linux Magazine» Douglas Eadline высказался о причинах успеха технологии NVIDIA CUDA.
Ведущий раздела высокопроизводительных вычислений в своей авторской колонке привёл некоторую статистику NVIDIA по использованию CUDA и её популярности в целом:
более 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 её уже будут ждать приложения и заказы — многие ли могут похвастаться тем же?
Недавно NVIDIA провела мероприятие CUDA Day, на которое были приглашены многие разработчики, в том числе и Roel Schouwenberg, представлявший Лабораторию Касперского.
Как известно, недавно Лаборатория Касперского оснастила свои серверы, анализирующие новые поступающие вирусы, ускорителями NVIDIA Tesla s1070. Компания утверждает, что ускоритель NVIDIA Tesla s1070 работает в 350 раз быстрее, чем средний 2-ядерный процессор.
Сейчас в Лаборатории Касперского решение, оснащённое ускорением NVIDIA CUDA, анализирует до 50 000 вирусов в день.
Во время мероприятия CUDA Day господин Roel Schouwenberg дал интервью, ознакомиться с которым можно на видео ниже:
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 от конкурентов для отладки универсального приложения.
Новая шина для установки плат расширения и связи между компонентами компьютера, сменившая PCI и AGP. Последняя версия 2.1, полоса пропускания до 32 Гб/с.
Application Programming Interface
Заданный набор функций для использования программистами. Примеры: DirectX, OpenGL, CUDA
Технология обмена с памятью, при которой передача данных осуществляется дважды: на фронте сигнала и на спаде. За счет этого при той же частоте можно передать вдвое больше данных.
Graphic Processor Unit
Обозначение современных графических процессоров видеокарт. Исходно понятие введено NVIDIA как обозначение графических процессоров с функцией аппаратного ускорения геометрических вычислений (Geometric Processing Unit), но в такой форме трактовка не прижилась.
Технология NVIDIA, позволяющая использовать мощности нескольких видеокарт для обработки трехмерного изображения. Также обозначается специальный интерфейс для связи видеокарт между собой. Похожая технология 3DFX называлась Scan Line Interleave.
Упрощённый подстандарт OpenGL, предназначенный для интегрируемых/мобильных решений. Версии 1.х использовали фиксированные функции, версия 2.0 — шейдеры.
API программирования универсальных вычислений, разработанный фирмой Khronos. Платформонезависимый API может использовать для непосредственно вычислений интерфейсы взаимодействия с оборудованием, предоставленные разработчиками оборудования, а также центральный процессор и GLSL.
Лаборатория Microsoft, занимающейся проверкой совместимости оборудования с операционными системами Windows. Также обозначение цифровой подписи драйверов, прошедших тестирование.
Центральный процессор — исполнитель машинных инструкций, часть аппаратного обеспечения компьютера или программируемого логического контроллера, отвечающий за выполнение операций, заданных программами.
Интерфейс вывода трёхмерных примитивов. Часть API DirectX.
General Purpose Graphics Processors Usage
Общее обозначение использования вычислительной производительности графических процессоров для неграфических применений. Поначалу использовались пиксельные шейдеры для передачи инструкций и текстуры для хранения данных, в настоящее время — специальные API, такие как OpenCL и CUDA.
Vertex Buffer Object
Специальное расширение OpenGL для загрузки данных в видеопамять для отложенного рендеринга.
Общее обозначение технологий параллельных и/или распределенных вычислений.
DownLoadable Content
Дополнительные уровни, миссии, элементы оформления для компьютерных и видеоигр, распространяемые через сети цифровой дистрибуции, такие как Steam и Live!, обычно за небольшую плату.
Одна из реализаций технологии имитации глобального освещения Ambient Occlusion, при которой расчёты и наложение отражённого света осуществляются в плоскости финального изображения.