Сегодня всё чаще звучит название стандарта OpenCL. Но у Microsoft есть собственное видение того, как принести неоднородные вычисления на ПК. На мероприятии AMD Fusion Developer Summit Герб Саттер (Herb Sutter) из Microsoft представил расширение языка C++, позволяющее программистам использовать любое оборудование с поддержкой DirectCompute для вычислений общего назначения. Microsoft называет новое расширение C++ Accelerated Massive Parallelism или просто C++ AMP. Стандарт получит отрытые спецификации и сможет в будущем использоваться на платформах, отличных от Microsoft, и в сторонних компиляторах.
Господин Саттер представил C++ AMP в качестве инструмента, который поможет пробиться через «джунгли неоднородных вычислений». На слайде он проиллюстрировал то, что подразумевает под джунглями: процессоры в порядке возрастания специализации им были расставлены по оси Y, а системы памяти в порядке роста разнородности и отсутствия единообразия — по оси X.
По его словам, в настоящее время C++ позволяет разработчикам свободно чувствовать себя лишь в нижнем левом углу, но C++ AMP позволит значительно расширить охват. Кроме того, Microsoft собирается обеспечить поддержку других специализированных процессоров в будущих версиях C++ AMP, что ещё сильнее расширит сферу применения стандарта.
Microsoft отдельно отмечает, что в будущем разработчики в своих приложениях смогут использовать через облачные службы мощь множества графических ускорителей. C++ AMP создавался с расчётом на применение в перспективе для подобных задач. Кстати, Герб Саттер называет C++ AMP «минимальным», и, в самом деле, список добавлений весьма короткий:
Особо представители Microsoft остановились на добавлениях array_view и restrict(). Пример использования C++ AMP приведён на следующем слайде. Слева представлен обычный код C++, а справа — C++ AMP. Человек в нижнем правом углу — Дэвид Мос (David Moth), который вёл техническую сессию после доклада господина Саттера.
Microsoft сообщает, что она интегрирует поддержку C++ AMP в следующую версию Visual Studio. Само собой, так как C++ AMP является открытым стандартом, не только с помощью Visual Studio можно будет писать и компилировать код C++ AMP. Герб Саттер говорит, что Microsoft и AMD уже работают вместе над компиляторами для платформ, отличных от Windows. Кроме того, Microsoft готова оказать помощь в сторонних реализациях платформы. Стоит отметить, что и NVIDIA в своём блоге сообщает о том, что ею ведётся тесное сотрудничество с Microsoft в рамках поддержки C++ AMP. С некоторыми подробностями относительно C++ AMP можно ознакомиться в блоге Дэвида Моса.
Источник: www.3dnews.ru
|