~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 05CB87FFDF0F2CA9DF431C2AFC942569__1713401700 ✰
Заголовок документа оригинал.:
✰ OpenACC - Wikipedia ✰
Заголовок документа перевод.:
✰ OpenACC — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/OpenACC ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/05/69/05cb87ffdf0f2ca9df431c2afc942569.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/05/69/05cb87ffdf0f2ca9df431c2afc942569__translat.html ✰
Дата и время сохранения документа:
✰ 22.06.2024 17:44:57 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 18 April 2024, at 03:55 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

OpenACC — Википедия Jump to content

OpenACC

Из Википедии, бесплатной энциклопедии
OpenACC
Разработчики) Организация OpenACC
Стабильная версия
3.2 / ноябрь 2021 г .; 2 года назад ( 2021-11 )
Написано в C , C++ и Фортран
Операционная система Кросс-платформенный
Платформа Кросс-платформенный
Тип API
Веб-сайт www .openacc .org

OpenACC (от открытых ускорителей ) — стандарт программирования для параллельных вычислений, разработанный Cray , CAPS, Nvidia и PGI . Стандарт предназначен для упрощения параллельного программирования гетерогенных систем CPU / GPU . [1]

Как и в OpenMP , программист может аннотировать C , C++ и Fortran, исходный код чтобы определить области, которые следует ускорить, используя директивы компилятора и дополнительные функции. [2] Как и OpenMP 4.0 и новее, OpenACC может работать как с архитектурой ЦП , так и с графическим процессором , и запускать на них вычислительный код.

Члены OpenACC работали как члены группы стандартов OpenMP над объединением со спецификацией OpenMP и созданием общей спецификации, которая расширяет OpenMP для поддержки ускорителей в будущем выпуске OpenMP. [3] [4] Результатом этих усилий стал технический отчет. [5] для комментариев и обсуждений, приуроченных к ежегодной конференции по суперкомпьютерам (ноябрь 2012 г., Солт-Лейк-Сити ), а также для решения проблемы поддержки ускорителей, не принадлежащих Nvidia, с участием поставщиков оборудования, участвующих в OpenMP. [6]

На ISC'12 была продемонстрирована работа OpenACC на ускорителях Nvidia , AMD и Intel , без данных о производительности. [7]

12 ноября 2012 года на конференции SC12 был представлен проект спецификации OpenACC версии 2.0. [8] Новые предлагаемые возможности включают новые средства управления перемещением данных (например, улучшенную обработку неструктурированных данных и улучшения в поддержке несмежной памяти), а также поддержку явных вызовов функций и раздельной компиляции (позволяющую создавать и повторно использовать библиотеки ускоренного кода). OpenACC 2.0 был официально выпущен в июне 2013 года. [9]

Версия 2.5 спецификации вышла в октябре 2015 года. [10] а версия 2.6 была выпущена в ноябре 2017 года. [11] Впоследствии в ноябре 2018 года была выпущена версия 2.7. [12]

Последней версией является версия 3.2, выпущенная в ноябре 2021 года. [13]

Поддержка компилятора [ править ]

Поддержка OpenACC доступна в коммерческих компиляторах PGI (начиная с версии 12.6) и Cray (только для оборудования Cray). [7] [14]

OpenUH [15] — это компилятор OpenACC с открытым исходным кодом на основе Open64 , поддерживающий C и FORTRAN, разработанный группой HPCTools из Хьюстонского университета .

OpenARC [16] — это компилятор C с открытым исходным кодом, разработанный в Национальной лаборатории Ок-Ридж для поддержки всех функций спецификации OpenACC 1.0. Экспериментальный [17] Компилятор с открытым исходным кодом accULL разработан Университетом Ла-Лагуна ( только язык C ). [18]

Омни-компилятор [19] [20] — компилятор с открытым исходным кодом, разработанный в лаборатории HPCS. Университета Цукубы и группа исследования среды программирования RIKEN Центра вычислительных наук , Япония, поддержали OpenACC, XcalableMP [ ja ] и XcalableACC [ ja ], сочетая XcalableMP и OpenACC.

IPMACC [21] — это компилятор C с открытым исходным кодом, разработанный Университетом Виктории , который преобразует OpenACC в CUDA, OpenCL и ISPC. В настоящее время поддерживаются только следующие директивы: data , kernels , цикл и кэш .

Поддержка GCC для OpenACC появлялась медленно. [22] В сентябре 2013 года было объявлено о реализации Samsung с таргетингом на графические процессоры; это перевело код с аннотациями OpenACC 1.1 в OpenCL . [17] Объявление о «настоящей» реализации последовало два месяца спустя, на этот раз от NVIDIA и на основе OpenACC 2.0. [23] Это вызвало некоторые разногласия, поскольку реализация была ориентирована только на собственный ассемблерный язык NVIDIA PTX , для которого не было ассемблера с открытым исходным кодом или среды выполнения. [24] [25] Экспериментальная поддержка OpenACC/PTX появилась в GCC начиная с версии 5.1. Серии выпусков GCC6 и GCC7 включают значительно улучшенную реализацию спецификации OpenACC 2.0a. [26] [27] GCC 9.1 предлагает почти полную поддержку OpenACC 2.5. [28]

Использование [ править ]

Подобно OpenMP 3.x в гомогенной системе или более ранней версии OpenHMPP , основным способом программирования в OpenACC являются директивы. [29] Спецификации также включают библиотеку времени выполнения , определяющую несколько вспомогательных функций. Чтобы использовать их, пользователь должен включить «openacc.h» в C или «openacc_lib.h» в Фортране; [30] а затем вызовите функцию acc_init() .

Директивы [ править ]

OpenACC определяет обширный список прагм (директив), [31] например:

#pragma акк параллельный 
 #pragma акк ядра 

Оба используются для определения ядер параллельных вычислений, которые будут выполняться на ускорителе, используя различную семантику. [32] [33]

#pragma данные аккаунта 

Основная директива для определения и копирования данных в акселератор и из него.

#pragma петля акк 

Используется для определения типа параллелизма в parallel или kernels область, край.

#pragmaacccache 
 #pragmaacc update 
 #pragmaaccобъявление 
 #pragmaaccwait 

API среды выполнения [ править ]

Также определены некоторые функции API времени выполнения : acc_get_num_devices(), acc_set_device_type(), acc_get_device_type(), acc_set_device_num(), acc_get_device_num(), acc_async_test(), acc_async_test_all(), acc_async_wait(), acc_async_wait_all(), acc_init(), acc_shutdown(), acc_on_device(), acc_malloc(), acc_free().

OpenACC обычно заботится об организации работы целевого устройства, однако это можно обойти с помощью групп и рабочих. Группа состоит из рабочих групп и управляет несколькими элементами обработки (как рабочая группа в OpenCL).

См. также [ править ]

Ссылки [ править ]

  1. ^ «Nvidia, Cray, PGI и CAPS запускают стандарт программирования OpenACC для параллельных вычислений» . Спрашивающий . 4 ноября 2011 г. Архивировано из оригинала 17 ноября 2011 г. {{cite web}}: CS1 maint: неподходящий URL ( ссылка )
  2. ^ «Стандарт OpenACC, версия 2.5» (PDF) . OpenACC.org . Проверено 2 июня 2017 г.
  3. ^ «Как API OpenACC связан с API OpenMP?» . OpenACC.org . Проверено 14 января 2014 г.
  4. ^ «Как возникли спецификации OpenACC?» . OpenACC.org . Проверено 14 января 2014 г.
  5. ^ «Консорциум OpenMP выпускает первый технический отчет» . OpenMP.org . 5 ноября 2012 года . Проверено 14 января 2014 г.
  6. ^ «OpenMP в SC12» . OpenMP.org . 29 августа 2012 года . Проверено 14 января 2014 г.
  7. ^ Перейти обратно: а б «Группа OpenACC сообщает о расширении поддержки стандарта программирования ускорителей» . HPCwire . 20 июня 2012 года. Архивировано из оригинала 23 июня 2012 года . Проверено 14 января 2014 г.
  8. ^ «Версия OpenACC 2.0 опубликована для комментариев» . OpenACC.org . 12 ноября 2012 года . Проверено 14 января 2014 г.
  9. ^ «Спецификация OpenACC 2.0 | www.openacc.org» . www.openacc.org . Архивировано из оригинала 4 апреля 2016 г. Проверено 23 марта 2016 г.
  10. ^ «Группа стандартов OpenACC объявляет о выпуске спецификации 2.5; поставщики-члены добавляют поддержку ARM и x86 в качестве параллельных устройств | www.openacc.org» . www.openacc.org . Архивировано из оригинала 26 июля 2016 г. Проверено 22 марта 2016 г.
  11. ^ «Что нового в OpenACC 2.6? | OpenACC» . www.openacc.org . Проверено 1 мая 2018 г.
  12. ^ «Что нового в OpenACC 2.7! | OpenACC» . www.openacc.org . Проверено 7 января 2019 г.
  13. ^ «Интерфейс прикладного программирования OpenACC©» (PDF) . ОпенАКК . Сентябрь 2021 г. Архивировано (PDF) из оригинала 29 декабря 2022 г. . Проверено 13 декабря 2023 г.
  14. ^ «Стандарт OpenACC, помогающий разработчикам воспользоваться преимуществами ускорителей вычислений на графических процессорах» . Лаборатории Xbit . 16 ноября 2011 года. Архивировано из оригинала 16 января 2014 года . Проверено 14 января 2014 г.
  15. ^ «Компилятор OpenUH» . Архивировано из оригинала 25 января 2014 года . Проверено 4 марта 2014 г.
  16. ^ «Компилятор OpenARC» . Проверено 4 ноября 2014 г.
  17. ^ Перейти обратно: а б Ларабель, Майкл (30 сентября 2013 г.). «Опубликована поддержка GCC для OpenACC на графическом процессоре» . Фороникс .
  18. ^ "accULL Реализация исследования OpenACC" . Проверено 14 января 2014 г.
  19. ^ «Омни-компилятор» . omni-compiler.org . Проверено 18 ноября 2019 г.
  20. ^ Omni-компилятор для программ C и Fortran с директивами XcalableMP и OpenACC: omni-compiler/omni-compiler , omni-compiler, 17 октября 2019 г. , получено 17 ноября 2019 г.
  21. ^ «Компилятор IPMACC» . Гитхаб . Проверено 31 января 2017 г.
  22. ^ Ларабель, Майкл (4 декабря 2012 г.). «OpenACC все еще не любим открытыми компиляторами» . Фороникс .
  23. ^ Ларабель, Майкл (14 ноября 2013 г.). «OpenACC 2.0 с поддержкой графического процессора появится в GCC» . Фороникс .
  24. ^ Ларабель, Майкл (15 ноября 2013 г.). «NVIDIA и Mentor Graphics могут нанести вред GCC» . Фороникс .
  25. ^ Ларабель, Майкл (21 ноября 2013 г.). «Борьба за OpenACC в странах Персидского залива продолжается» . Фороникс .
  26. ^ «OpenACC — GCC Wiki» .
  27. ^ Швинге, Томас (15 января 2015 г.). «Объединить текущий набор изменений OpenACC из ветки gomp-4_0» . gcc (список рассылки) . Проверено 15 января 2015 г. {{cite mailing list}}: Неизвестный параметр |agency= игнорируется ( помогите )
  28. ^ Елинек, Якуб (3 мая 2019 г.). «Выпущен GCC 9.1» . LWN.net .
  29. ^ «Простой параллелизм графического процессора с OpenACC» . Доктор Добб . 11 июня 2012 года . Проверено 14 января 2014 г.
  30. ^ «Краткая справочная карта OpenACC API, версия 1.0» (PDF) . НВидиа . Ноябрь 2011 года . Проверено 14 января 2014 г.
  31. ^ «Стандарт OpenACC, версия 2.0» (PDF) . OpenACC.org . Проверено 14 января 2014 г.
  32. ^ «Ядра OpenACC и параллельные конструкции» . Инсайдер PGI . Август 2012 года . Проверено 14 января 2014 г.
  33. ^ «Параллельный раздел OpenACC VS ядра» . База знаний CAPS для предприятий . 3 января 2013 года. Архивировано из оригинала 16 января 2014 года . Проверено 14 января 2014 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 05CB87FFDF0F2CA9DF431C2AFC942569__1713401700
URL1:https://en.wikipedia.org/wiki/OpenACC
Заголовок, (Title) документа по адресу, URL1:
OpenACC - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)