За неполных пять лет своего существования CUDA, унифицированная архитектура параллельных вычислений с использованием графических процессоров (GPU), и средства разработки nVidia CUDA стали любимыми детищами большинства строителей суперкомпьютеров, а также тех, кто стремится решить задачи определенного ограниченного класса, позволяя себе минимальные затраты (Иллюстрация: nVidia)
За неполных пять лет своего существования CUDA, унифицированная архитектура параллельных вычислений с использованием графических процессоров (GPU), и средства разработки nVidia CUDA стали любимыми детищами большинства строителей суперкомпьютеров, а также тех, кто стремится решить задачи определенного ограниченного класса, позволяя себе минимальные затраты (Иллюстрация: nVidia)

За неполных пять лет своего существования CUDA, унифицированная архитектура параллельных вычислений с использованием графических процессоров (GPU), и средства разработки nVidia CUDA стали любимыми детищами большинства строителей суперкомпьютеров, а также тех, кто стремится решить задачи определенного ограниченного класса, позволяя себе минимальные затраты. Сегодня использование графических процессоров для высокопроизводительных вычислений (High Performance Computing, HPC) получило общемировое признание. Что же касается России, то вполне приемлемое представление о роли, которую играют GPU и CUDA в стране, можно было получить на конференции «Применение гибридных высокопроизводительных систем для решения научных и инженерных задач», организованной в Нижегородском государственном университете при участии компаний nVidia и «Т-платформы». Выбор места для ее проведения не случаен: с продуктами nVidia здесь хорошо знакомы.

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

Если сравнивать обсуждаемое мероприятие с конференцией «Высокопроизводительные вычисления на платформе Tesla от nVidia», проведенной в Москве полтора года назад, то обнаружатся рази­тельные отличия. Тогда на встречу с представителями компании собралось несколько десятков студентов и преподавателей МГУ, они пассивно воспринимали рассказы о возможностях рабочей станции Tesla Personal Supercomputer, построенной на процессоре Tesla C1060.

Сейчас же все было по-иному, в том числе круг обсуждавшихся вопросов, широта тематики и компетентность докладов, а главное, готовность аудитории к восприятию технологий. Тем не менее практическое освоение возможностей GPU только начинается, а потому доклады заметно различались по уровню профессионализма. Здесь можно было услышать, к примеру, и насыщенное цифрами и фактами выступление представителя ANSYS, компании, специализирующейся на системах автоматического проектирования и моделирования, и типичный аспирантский доклад о моделировании взаимодействия корабля со льдом средствами PhysX, игрового движка, предназначенного для симуляции поведения физических объектов (выбор PhysX выглядит довольно странным, ведь помимо игровых существуют и аналогичные научные движки). К числу выступавших в Нижнем тяжеловесов можно отнести представителей ИПС РАН, Российского федерального ядерного центра в Сарове и ИПФ РАН, в докладах которых говорилось о высокоуровневых средствах программирования GPU, решении задач в физике и биомедицинской диагностике методом Монте-Карло.

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

Как результат, работы страдают очевидным смещением акцентов на конкретные приложения, поддерживаемые средствами GPU, и делается это явно в ущерб общему системному взгляду на природу вещей. В итоге фабула большей части докладов предельно проста: «Мы сделали так, и это решение во столько раз быстрее, чем на CPU», остальное — детали. Не подлежит сомнению, что для любой задачи нужен соответствующий ей инструмент: странно то, что ни один из выступающих не проанализировал сущности феномена GPU, возможности и ограничения этого класса процессоров как инструментов, то, какие именно приложения могут быть реализованы на GPU сейчас, а какие в будущем.

Разрекламированные китайские петафлопсы легли тяжелым грузом на сознание многих, быстро сместили вектор интересов в сторону GPU (вышедший в лидеры рейтинга Top500 китайский суперкомпьютер, наряду с традиционными многоядерными процессорами, использует графические процессоры nVidia Tesla. — Прим. ред.). Теперь, например, представитель Сарова уверенно заявил, что на GPU или на их преемниках, но не более чем через семь – девять лет, в РФЯЦ будет построен экзафлопсный (1 EFLOPS = 1000 PFLOPS!) компьютер. Пока же, насколько известно, в этой уважаемой организации удалось собрать всего пару десятков рабочих станций с GPU, далеко не петафлопсных. В итоге, ни секунды не отрицая великолепных возможностей GPU на ограниченном поле, невольно усомнишься в правоте тех, кто был в НГУ, и многих других специалистов, а также в разумности движения к грядущим петафлопсам и тем более к экзафлопсам с опорой на GPU единственного вендора. Впрочем, история повторяется: в середине 80-х наблюдался всплеск интереса к транспьютерам, применяемым в качестве ускорителей вычислений, но вскоре они канули в Лету. Есть надежда, что GPU ожидают лучшие перспективы.

Буквально на следующий день компания «Т-Платформы» и МГУ подвели итоги первого тура конкурса «Эффективное использование GPU-ускорителей при решении больших задач», устроенного с целью популяризации применения графических ускорителей. Было подано 69 заявок, во второй тур вышли 30; конкурс продолжится до осени.

Стоит отметить, что за пару дней до нижегородской конференции nVidia объявила о выходе новой версии набора инструментов CUDA 4.0. Его отличает поддержка технологии nVidia GPUDirect 2.0, которая упрощает и ускоряет мультипроцессорное программирование и работу приложений. Унифицированная виртуальная адресация UVA организует единое адресное пространство для основной системной памяти и памяти графического процессора. А библиотеки примитивов Thrust C++ упрощают программирование для разработчиков на C++. Архитектура CUDA 4.0 предлагает средства для интеграции с приложениями, поддержку многопоточных приложений, новую библиотеку NPP, предназначенную для обработки изображений и компьютерного видения, а также ряд других новинок.