C++ Accelerated Massive Parallelism
Интересуясь темой гетерогенных вычислений я наткнулся на C++ AMP. Поискав на эту тему информацию, я решил вкрации рассказать что это. Ниже будет ссылка на программу “Hello World”.
C++ AMP (Accelerated Massive Parallelism) — открытая платформа построения гетерогенных приложений на C++. Гетерогенные вычисления, это использование CPU и GPU.
Эта платформа впервые была представлена на конференции AMD Fusion Developer Summit, проходившей в июне 2011 года, корпорацией Microsoft. В основе C++ AMP лежат технологии Microsoft DirectX, за счет чего C++ AMP сможет работать на графических процессорах всех основных производителей. Кроме того, старший вице-президент Microsoft Developer Division С. Сомасегар пообещал, что спецификация C++ AMP будет открытой. Появиться это чудо в новой версии Visual Studio vNext (2012). Также в новую «студию» будут включены новые версии библиотек Parallel Patterns Library и C++ Concurrency, содержащие ряд шаблонов и алгоритмов для параллельного программирования на любых процессорах.
Схожие технологии с C++ AMP: OpenCL, CUDA, DirectCompute. Представители Microsoft особено подчеркивают перспективи даной технологии для выполнения облачных вычислений в будущем. Платформа создавалась с расчетом, что, возможно, скоро будут использоваться сотни милионов вычислительных модулей графического процессора в своих приложениях черех облачные сервисы.
Технология C++ AMP основывается на новом стандарте и использует лямбда-выражения.
Основные причины создания библиотеки:
- C++, а не C, более распостраненный язык;
- гетерогенные вычисления должны стать преобладающим направлением, доступным для всех;
- минимальные расширения языка для простоты понимания;
- переносимость, один код потребляет от платформы все возможные ресурсы, которые доступны;
- ориентир на будущее, когда разработчикам будут доступны много вычислительных блоков GPU в облаке;
- открытость.
В C++ AMP разработчик может явно указать платформу на какую он ориентируется (cpu, gpu или другие ключевые слова). Для более производительных расчетов и использования особенностей вычислений на GPU введены типы для оперирования фрагментами данных.
Так что, ждем с нетерпением Visual Studio vNext.
Далее идет набор ссылок, в которых, возможо, лучше описана эта технология и просто ссылки по теме:
- “Hello World” in C++ Amp (эта ссылка занимает почетное первое место);
- Herb Sutter: Heterogeneous Computing and C++ AMP;
- Herb Sutter Keynote on the subject at this week`s AMD Fusion Developer Summit;
- Daniel Moth: Blazing – fast code using GPUs and more, with C++ AMP;
- C++ AMP recording and slides;
- Targeting Heterogeneity with C++ AMP and PPL;
- Sutter`s Mill;
- Microsoft brings GPU computing to C++ with C++ AMP;
- Microsoft juices C++ for massively parallel computing;
- Microsoft Demos C++ AMP At AMD Developers Summit;
- Microsoft Refreshes C++ For The Cloud, Tablets.
Компании из статьи
Microsoft Украина | Украинское подразделение компании Microsoft. |