Jump to content

С++ AMP

Оригинальный автор(ы) Майкрософт
Тип Библиотека
Лицензия Неубедительный
Веб-сайт документы .microsoft /en-нас /cpp /параллельно /усилитель /cpp-amp-cpp-accelerated-massive-parallelism  Edit this on Wikidata

C++ Accelerated Massive Parallelism ( C++ AMP ) — это собственная модель программирования, содержащая элементы, охватывающие C++ язык программирования и его библиотеку времени выполнения . Он обеспечивает простой способ написания программ, которые компилируются и выполняются на оборудовании с параллельными данными, таком как графические карты ( GPU ).

Начиная с Visual Studio 2022 (версия 17.0), C++ AMP объявляется устаревшим, что указывает на прекращение его поддержки после Visual Studio 2022.

C++ AMP — это библиотека , реализованная на DirectX 11 и открытая спецификация Microsoft , для реализации параллелизма данных непосредственно в C++. Он предназначен для того, чтобы упростить программирование графических процессоров для разработчика, поддерживая широкий спектр знаний: от отсутствия (в этом случае система делает все возможное) до более точно управляемых, но при этом портативных. В реализации Microsoft код, который не может быть запущен на графических процессорах, вместо этого будет возвращаться на один или несколько процессоров и использовать инструкции SSE. [ нужна ссылка ] Реализация Microsoft включена в Visual Studio 2012, включая поддержку отладчика и профилировщика.

Для первоначальной версии C++ AMP от Microsoft требуется как минимум Windows 7 или Windows Server 2008 R2. [ 1 ] Поскольку C++ AMP является открытой спецификацией, ожидается, что со временем появятся реализации за пределами Microsoft; Одним из первых примеров этого является Shevlin Park, экспериментальная реализация Intel C++ AMP на Clang/LLVM и OpenCL. [ 2 ]

12 ноября 2013 года Фонд HSA анонсировал компилятор C++ AMP, который выводит данные в OpenCL , Standard Portable Intermediate Representation (SPIR) и HSA Intermediate Language (HSAIL), поддерживая текущую спецификацию C++ AMP. [ 3 ] Исходный код доступен по адресу https://github.com/RadeonOpenCompute/hcc . Поддержка C++ AMP считается устаревшей, и текущая серия ROCm 1.9 будет последней, поддерживающей ее. [ 4 ]

Базовые концепции C++AMP, такие как использование классов C++ для выражения функций параллельного и гетерогенного программирования, послужили вдохновением для стандарта SYCL .

Microsoft добавила restrict(amp) функция, которую можно применить к любой функции (включая лямбда-выражения), чтобы объявить, что функция может быть выполнена в ускорителе C++ AMP. Компилятор автоматически сгенерирует вычислительное ядро , сохраняя шаблон управления и используя отдельный язык. Ключевое слово ограничения указывает компилятору статически проверять, что функция использует только те возможности языка, которые поддерживаются большинством графических процессоров, например: void myFunc() restrict(amp) {…} Microsoft или другой разработчик открытой спецификации C++ AMP может добавить другие спецификаторы ограничений для других целей, в том числе для целей, не связанных с C++ AMP.

Помимо новой функции языка, остальная часть C++ AMP доступна через <amp.h> заголовочный файл в пространстве имен параллелизма. Ключевые классы C++ AMP: array (контейнер для данных об ускорителе), array_view (обертка для данных), index (N-мерная точка), extent (N-мерный размер), accelerator (вычислительный ресурс, такой как графический процессор, на котором можно выделить память и выполнить) и accelerator_view (вид на акселератор). Существует также глобальная функция, parallel_for_each, который вы используете для написания параллельного цикла C++ AMP.

См. также

[ редактировать ]
  1. ^ Одностраничное резюме C++ AMP Неработающая ссылка
  2. ^ Шевлин Парк: реализация C++ AMP с Clang/LLVM и OpenCL
  3. ^ «Выход C++AMP за рамки Windows с помощью CLANG и LLVM» . Проверено 9 января 2014 г.
  4. ^ «Главная страница · RadeonOpenCompute/HCC Wiki» . Гитхаб .

Дальнейшее чтение

[ редактировать ]
  • Кейт Грегори, Эйд Миллер. C++ Amp: ускоренный массовый параллелизм с помощью Microsoft Visual C++ — Microsoft, 2012 — 326 страниц — ISBN   9780735664739
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: f9014b2e2ca27095b00af8d20cc22a5e__1653002160
URL1:https://arc.ask3.ru/arc/aa/f9/5e/f9014b2e2ca27095b00af8d20cc22a5e.html
Заголовок, (Title) документа по адресу, URL1:
C++ AMP - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)