isicad.ru :: портал САПР, PLM и ERP :: версия для печати

Статьи

24 июня 2013

Взгляд AMD на будущее высокопроизводительных вычислений

Антуан Реймонд

От редакции isicad.ru: Необходимость разработки параллельных алгоритмов и поддержки стремительно эволюционирующих современных аппаратных архитектур для параллельных вычислений уже в течение нескольких лет является вызовом для компаний-поставщиков инженерного ПО. Если многоядерные десктопы давно стали обыденностью, вычисления на GPU — модным трендом, то, вполне возможно, в течение нескольких месяцев мы увидим новое устройство, объединяющее CPU и GPU, предназначенное специально для высокопроизводительных вычислений.

Не так давно мы публиковали серию статей о геометрическом ядре RGK (см. часть 1 и часть 2), нацеленном на использование сегодняшних аппаратных возможностей CPU и GPU. Эти статьи привлекли заметное внимание не только российских, но и западных читателей (см. англоязычную версию). В частности, интерес к новой российской разработке проявил Антуан Реймонд (Antoine Reymond), старший менеджер AMD по стратегическим альянсам, который любезно разрешил опубликовать перевод своей заметки The Future of Computing для журнала Technology for Design Engineering.

Antoine Reymond
С появлением массового спроса на те или иные типы мобильных компьютерных устройств — смартфоны или планшетники — интерес широкой публики к области высокопроизводительных вычислений несколько угас. В фокусе внимания попало общее количество конечных пользователей, а не вовсе не использование ими интенсивных вычислений, расширяющих границы возможностей. Тем не менее, существует много задач в инженерии и компьютерном моделировании, требующих эффективных вычислений, для реализации которых необходима правильная комбинация аппаратного и программного обеспечения и соответствующей инфраструктуры.

Одна из таких областей, привлекающих интерес, связана с технологией GPGPU (вычисления общего назначения на GPU), представляющие собой использование графических карт для существенно большего класса задач, чем традиционный рендеринг в реальном времени.

Параллельные задачи

Современные GPU отлично справляются там, где есть потребность в обработке больших массивов данных с естественным параллелизмом. Действительно, можно увидеть улучшения в производительности для тех модулей инженерного ПО, которые используют такие высокопроизводительные вычисления как функциональность DGEMM, BLAS или разнообразные решатели линейной алгебры. Из этих задач стало понятно, что GPU могут быть запущено асинхронно с остальными процессорами (CPU), что является хорошим введением в компьютерные языки наподобие OpenCL. OpenCL был спроектирован для программирования гетерогенных систем, которые содержат несколько специфических процессоров, запущенных асинхронно друг от друга. То есть смысл в том, чтобы, имея гибридную систему CPU/GPU, достигать на ней наилучшей производительности.

Существуют некоторые ограничения на возможность параллельной реализации ряда математических алгоритмов, например, редукции. Кроме того, при многочисленных пересылках данных и постоянном доступе к системной памяти GPU во время вычислений, если данные имеют небольшую степень гранулированности (скажем, небольшой размер блока из нескольких килобайт) по сравнению с вычислением, то запуск множества маленьких вычислительных задач приведет к проблеме высокой латентности. Вместе с тем, есть и хорошие новости — эти проблемы решают гетерогенная системная архитектура (Heterogeneous System Architecture, HSA) и APU (Accelerated Processing Unit, устройство совмещающее процессор и видеокарту на одной памяти). В этом случае CPU и GPU находятся на одном чипе и будут иметь доступ к общей памяти. Проблема латентности минимизируется, поскольку исчезает необходимость передавать данные через шину PCI—Express.

HSA является системной архитектурой с открытым стандартом, которая предоставляет унифицированный взгляд на общие вычислительные элементы. Она позволяет программистам писать приложения, бесшовно связывающие устройства CPU, GPU и другие программируемые вычислительные компоненты, получая выигрыш от использования лучших свойств каждого устройства. Технология AMD APU объединяет процессор (CPU) и GPU вместе в одном куске кремния.

Оптимизация программы

Вы можете получать выигрыш от «чистой» GPGPU до тех пор, пока ваш код оптимизирован для параллельных вычислений. К успешно решенным задачам относятся рендеринг, алгоритмы для конечно-элементного анализа, технологии трассировки луча для получения фотореалистических изображений и многие другие. Вместе с тем аппаратная архитектура HSA и APU позволяет не только оптимизировать свой код для наилучшего использования всех преимуществ общей памяти, но и запускать обычные x86-программы.

Это особенно важно, поскольку вы можете запустить свою программу уже сегодня, а модифицировать только те ее части, которые требуют улучшенной обработки памяти. Внесение существенных изменений в современные САПР и инженерное ПО является сложным и трудоемким процессом. С HSA и GPU можно фокусироваться только на тех участках кода, которые дадут наибольший выигрыш в краткосрочной перспективе.

Что нас ждет впереди

Обычные графические карты, устанавливаемые отдельно от процессора, идут с ограниченным объемом оперативной памяти. Значительно число программ для инженерного анализа и симуляции используют для вычислений гораздо большие объемы. Например, профессиональные видеокарты AMD FirePro включают в себя быструю GDRR5 память, которая, тем не менее, ограничена 6GB. С технологиями HSA и APU, общую память можно конфигурировать. Это открывает возможность в ближайшем будущем обрабатывать большие данные не только с помощью СPU, но и посредством GPU!

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

Все права защищены. © 2004-2024 Группа компаний «ЛЕДАС»

Перепечатка материалов сайта допускается с согласия редакции, ссылка на isicad.ru обязательна.
Вы можете обратиться к нам по адресу info@isicad.ru.