Языки и библиотеки потокового программирования


Система программирования RapidMind

Наиболее используемая в настоящее время потоковая библиотека. Представляет собой набор классов, шаблонов и макросов на языке C++, при помощи которых можно писать программы для ГПУ. Обладает переносимостью между различными классами ГПУ (без сохранения эффективности), а также на процессоры с архитектурой x86 и CELL. Используется как в коммерческой сфере, так и для исследовательской деятельности. Система коммерческая, однако для исследовательской деятельности может быть получена бесплатно.

Язык Brook

Проект Стэнфордского университета. Изначально возник как язык для программирования потоковых архитектур (отсюда название - brook в переводе с английского означает "ручей, поток"). Представляет собой C-подобный язык, в который добавлен тип данных - массив специального вида (поток в терминологии языка). В 2004 году появилась его реализация для графических процессоров. С тех пор он использовался в ряде проектов, в основном в Стэнфордском университете, в том числе в Folding@Home. В настоящее время используется как язык программирования ГПУ AMD и поставляется вместе с AMD CTM SDK. Свободно распространяемый инструмент.

Библиотека Accelerator

Разрабатываемая в Microsoft библиотека для программирования ГПУ. Предоставляет тип данных двумерных массивов на ГПУ, для которых переопределены основные арифметические операции. Также определяет массивные операции. Случаи практического использования неизвестны. Свободно распространяемый инструмент.

Система метапрограммирования Sh

Свободно распространяемая система программирования ГПУ, использующая идею метапрограммирования для написания шейдеров на некотором подмножестве языка C++. Похожие идет позднее были использованы в системах программирования RapidMind и PeakStream. С 2006 года активная разработка прекращена.

Система метапрограммирования GPU++

Исследовательская система программирования, появилась только весной 2008 года.

Библиотека Brahma

Основная идея - каким-либо образом использовать промежуточный язык MSIL для программирования ГПУ.


© Лаборатория Параллельных информационных технологий НИВЦ МГУ
Rambler's Top100