Для медиа и науки: параллельные вычисления на графическом процессоре
Универсальные программы, предназначенные для использования в сфере проектирования и различных научных отраслях, можно ускорить за счет распределения вычислений между центральным процессором (CPU) и графическим (GPU).
Первой использовала такой подход в своих продуктах компания NVIDIA. За прошедшие пять лет вычисления на графическом процессоре де-факто стали стандартом в области разработки сложных программны продуктов.
Обсчет данных на графическом процессоре позволяет добиться уникального быстродействия сервисов. Самые ресурсоемкие вычисления проводятся на стороне GPU, остальные функции программы обрабатываются центральным процессором. На пользовательский опыт взаимодействия с программой разделение вычислений не влияет: для рядового клиента сервис лишь работает значительно оперативнее.
Центральный процессор на несколько ядер идеально справляется с обработкой информации в последовательном режиме. Графические процессоры предназначены для параллельной обработки множества операций, ядер в них тысячи, и каждое впечатляет производительностью. Комбинация GPU и CPU отлично справляется с приложениями, для которых требуются как параллельные (выполняются на графическом процессоре), так и последовательные (обрабатываются на центральном процессоре) подсчеты.
CUDA: архитектура и модель совместных вычислений CPU и GPU
Для проведения параллельных подсчетов разработана программно-аппаратная архитектура CUDA®. Благодаря этому решению скорость обработки параллельных операций (и, как следствие, общая производительность приложения) возрастает в разы.
Сервисы, предполагающие архитектуру CUDA, можно реализовать на ряде как распространенных, так и специализированных языков программирования, а также API. Среди них directCompute, Fortran, C++ (и базовый C), OpenCL и другие.
CUDA как архитектура предполагает вычисления с использованием сотен ядер процессора, которые способны обрабатывать в параллельном режиме тысячи потоков данных. В качестве модели программирования CUDA позволяет разработчикам обратить большее внимание не на снижение сложности алгоритмов, а на распараллеливание вычислений.
Приложения, созданные с использованием CUDA, используются в различных областям и сферах. Эта архитектура часто применяется для обработки и восстановления медиа (фотографий и видеоданных), в научных сферах, требующих значительной мощности (вычислительной химии и биологии, при моделировании жидкостной динамики, анализе данных сейсмической активности и подобных).
Источник: www.trinitygroup.ru








