Jump to content

СИКЛ

СИКЛ
Оригинальный автор(ы) Хронос Групп
Разработчик(и) Хронос Групп
Первоначальный выпуск март 2014 г .; 10 лет назад ( 2014-03 )
Стабильная версия
Версия 8 (1.2.1) 2020 г. / 19 октября 2023 г .; 9 месяцев назад ( 19.10.2023 ) [1]
Операционная система Кросс-платформенный
Платформа Кросс-платформенный
Тип Язык программирования высокого уровня
Веб-сайт www .chronos .org /sycl / цикл .tech

SYCL (произносится как «серп») — это модель программирования более высокого уровня, предназначенная для повышения производительности программирования на различных аппаратных ускорителях . Это встроенный предметно-ориентированный язык с одним исходным кодом ( eDSL ), основанный на чистом C++17 . Это стандарт, разработанный Khronos Group и анонсированный в марте 2014 года.

Происхождение имени

[ редактировать ]

«серп») первоначально обозначал SY общесистемный компьютерный язык . SYCL (произносится как [2] но с 2020 года разработчики SYCL заявили, что SYCL — это имя, и ясно дали понять, что оно больше не является аббревиатурой и не содержит ссылок на OpenCL . [3]

SYCL — это бесплатный кроссплатформенный уровень абстракции, основанный на базовых концепциях, переносимости и эффективности, вдохновленных OpenCL , который позволяет писать код для гетерогенных процессоров в стиле «единого исходного кода» с использованием полностью стандартного C++ . SYCL обеспечивает разработку из одного исходного кода, где функции шаблона C++ могут содержать код как хоста, так и устройства для создания сложных алгоритмов, использующих аппаратные ускорители , а затем повторно использовать их в исходном коде для разных типов данных.

Хотя стандарт SYCL зародился как подгруппа модели программирования более высокого уровня рабочей группы OpenCL и изначально был разработан для использования с OpenCL и SPIR , SYCL является рабочей группой Khronos Group, независимой от рабочей группы OpenCL с 20 сентября 2019 года и начиная с 20 сентября 2019 года. в SYCL 2020 SYCL был обобщен как более общая гетерогенная структура, способная ориентироваться на другие системы. Теперь это возможно благодаря концепции универсального бэкэнда , ориентированного на любой API-интерфейс ускорения , обеспечивая при этом полную совместимость с целевым API , например, используя существующие собственные библиотеки для достижения максимальной производительности и одновременного упрощения процесса программирования. Например, реализация Open SYCL нацелена на ROCm и CUDA через AMD межвендорный HIP .

SYCL был представлен на GDC в марте 2014 года спредварительная версия 1.2, [4] тогда была окончательная версия SYCL 1.2.представлен на IWOCL 2015 в мае 2015 года. [5]

Последней версией предыдущей серии SYCL 1.2.1 является SYCL 1.2.1 редакция 7, опубликованная 27 апреля 2020 г. (первая версия была опубликована 6 декабря 2017 г.) [6] ).

Предварительная версия SYCL 2.2 была представлена ​​на IWOCL 2016 в мае 2016 года. [7] ориентирован на C++14 и OpenCL 2.2. Но комитет SYCL предпочел не дорабатывать эту версию и перейти к более гибкой спецификации SYCL, чтобы учесть растущее разнообразие современных аппаратных ускорителей , включая механизмы искусственного интеллекта , что привело к появлению SYCL 2020.

Последней версией является SYCL 2020, редакция 6, опубликованная 13 ноября 2022 года и являющаяся развитием первой версии ревизии 2, опубликованной 9 февраля 2021 года. [8] с учетом отзывов пользователей и разработчиков предварительной спецификации SYCL 2020, редакция 1, опубликованной на30 июня 2020 г. [9] Поддержка C++17 и OpenCL 3.0 — основные цели этого выпуска. Единая общая память (USM) — одна из основных функций графических процессоров с поддержкой OpenCL и CUDA.

На IWOCL 2021 была представлена ​​дорожная карта. DPC++, ComputeCpp, Open SYCL, triSYCL и neoSYCL — основные реализации SYCL. Следующей целью в разработке является поддержка C++20 в будущем SYCL 202x. [10]

Реализации

[ редактировать ]
  • Data Parallel C++ (DPC++): проект Intel с открытым исходным кодом, предназначенный для внедрения SYCL для LLVM и oneAPI . C++17 и части C++20 с SYCL 2020 составляют основу этой среды компилятора. [11] [12]
  • ComputeCpp: инфраструктура фирмы Codeplay , соответствующая SYCL 1.2.1, с версией сообщества. [13] [14] Сейчас устарел в пользу DPC++. [15]
  • AdaptiveCpp (ранее hipSYCL и Open SYCL): неполная поддержка 1.2.1 без изображений или взаимодействия с OpenCL; частично SYCL 2020. [16] Поддерживает AMD (ROCm), Nvidia (CUDA), Intel (нулевой уровень через SPIR-V) и процессоры (LLVM + OpenMP). [17] Может создавать полностью универсальные двоичные файлы, используя среду выполнения «точно в срок». Поддерживает стандартный параллелизм C++ ( std::execution) в дополнение к SYCL. [18]
  • triSYCL: на основе C++20, OpenMP и OpenCL, медленная разработка, неполная, с версией, основанной на DPC++. [19]
  • neoSYCL: SYCL 1.2.1 почти завершен, для hpc SX-Aurora Tsubasa, нет специфических функций OpenCL, таких как поддержка изображений [20] [21]
  • SYCL-gtx: поддержка C++11 для OpenCL 1.2+, далека от завершения, фактической разработки нет. [22]
  • Sylkan — это реализация SYCL для устройств Vulkan в экспериментальном состоянии. [23]
  • У Polygeist есть форк, компилирующий SYCL через MLIR [24] который поддерживается компанией Inteon. [25]

Расширения

[ редактировать ]

Безопасность SYCL критически важна

[ редактировать ]

В марте группа «Хронос» объявила о создании рабочей группы SYCL SC. [26] с целью создания высокоуровневой гетерогенной вычислительной среды для систем, критически важных для безопасности . Эти системы охватывают различные области, включая авионику, автомобильную, промышленную и медицинскую отрасли.

Структура SYCL Safety Critical будет соответствовать нескольким отраслевым стандартам, чтобы гарантировать ее надежность и безопасность. Эти стандарты включают MISRA C++ 202X, [27] который содержит рекомендации по использованию C++ в критически важных системах, RTCA DO-178C / EASA ED-12C, [28] которые представляют собой стандарты программного обеспечения при сертификации бортовых систем и оборудования, ISO 26262/21448, [29] который относится к функциональной безопасности дорожных транспортных средств, IEC 61508 , который охватывает функциональную безопасность электрических/электронных/программируемых электронных систем, связанных с безопасностью, и IEC 62304 , который относится к требованиям жизненного цикла программного обеспечения медицинского оборудования. [26]

Программное обеспечение

[ редактировать ]

Некоторые известные области программного обеспечения, в которых используется SYCL, включают следующее (с примерами):

  • Биоинформатика
    • GROMACS : Программное обеспечение для молекулярной динамики, широко используемое в биоинформатике и вычислительной химии. Начиная с ускоренной версии 2021 года, GROMACS использует SYCL 2020 для эффективных вычислений на различных аппаратных ускорителях. [30]
    • LiGen: программное обеспечение для молекулярной стыковки , которое использует SYCL для ускорения вычислительных задач, связанных с анализом молекулярной структуры и моделированием стыковки. [31]
    • Autodock : еще одно программное обеспечение для молекулярной стыковки, которое использует SYCL для ускорения процесса прогнозирования того, как небольшие молекулы связываются с рецептором известной трехмерной структуры. [32]
  • Искусственный интеллект
  • Автомобильная промышленность
    • ISO 26262 : Международный стандарт функциональной безопасности автомобильных электрических и электронных систем. SYCL используется в автомобильных приложениях для ускорения критически важных для безопасности вычислений и моделирования, обеспечивая соответствие строгим стандартам безопасности. [34]
  • Космология
    • CRK-HACC: космологический код моделирования n тел, портированный на SYCL. Он использует SYCL для ускорения вычислений, связанных с формированием крупномасштабных структур и динамикой во Вселенной. [35]

Khronos Поддерживает список ресурсов SYCL. [36] Codeplay Software также предоставляет учебные пособия на веб-сайте sycl.tech, а также другую информацию и новости об экосистеме SYCL.

Лицензия

[ редактировать ]

Исходные файлы для построения спецификации, такие как Makefiles и некоторые скрипты, заголовки SYCL и примеры кода SYCL, находятся под лицензией Apache 2.0 . [37]

Сравнение с другими инструментами

[ редактировать ]

Открытые стандарты SYCL и OpenCL аналогичны моделям программирования проприетарного стека CUDA от Nvidia и HIP из стека с открытым исходным кодом ROCm , поддерживаемого AMD . [38]

В Khronos Group сфере OpenCL и Vulkan представляют собой низкоуровневые без единого источника API-интерфейсы , обеспечивающие детальный контроль над аппаратными ресурсами и операциями. OpenCL широко используется для параллельного программирования на различных типах оборудования, тогда как Vulkan в первую очередь фокусируется на высокопроизводительных графических и вычислительных задачах. [39]

SYCL, с другой стороны, представляет собой высокого уровня с одним исходным кодом C++ встроенный предметно-ориентированный язык (eDSL). Он позволяет разработчикам писать код для гетерогенных вычислительных систем, включая процессоры, графические процессоры и другие ускорители, используя подход из одного источника. Это означает, что код хоста и устройства может быть написан в одном исходном файле C++. [40]

Для сравнения, с одним исходным кодом C++ версия CUDA со встроенным доменным языком , которая называется «CUDA Runtime API », несколько похожа на SYCL. Фактически, Intel выпустила инструмент под названием SYCLOMATIC, который автоматически транслировал код из CUDA в SYCL. [41] Однако существует менее известная версия CUDA без единого исходного кода, которая называется «CUDA Driver API», похожая на OpenCL и используемая, например, самой реализацией CUDA Runtime API. [38]

SYCL расширяет возможности C++ AMP , освобождая программиста от необходимости явно передавать данные между хостом и устройствами с помощью буферов и методов доступа. В этом отличие от CUDA (до появления унифицированной памяти в CUDA 6), где требовалась явная передача данных. Начиная с SYCL 2020, также можно использовать USM вместо буферов и средств доступа , обеспечивая модель программирования нижнего уровня, аналогичную Unified Memory в CUDA. [42]

SYCL является более высокоуровневым, чем C++ AMP и CUDA, поскольку вам не нужно строить явный граф зависимостей между всеми ядрами, и он обеспечивает автоматическое асинхронное планирование ядер с перекрытием связи и вычислений. Все это делается с использованием концепции средств доступа, не требуя какой-либо поддержки компилятора. [43]

В отличие от C++ AMP и CUDA, SYCL — это чистый eDSL C++ без каких-либо расширений C++. Это позволяет реализовать базовую реализацию ЦП, основанную на чистой среде выполнения без какого-либо специального компилятора. [40]

Оба ЦОД++ [44] и Адаптивекпп [45] компиляторы предоставляют серверную часть графическим процессорам NVIDIA, аналогично тому, как это делает CUDA. Это позволяет компилировать и запускать код SYCL на оборудовании NVIDIA, позволяя разработчикам использовать высокоуровневые абстракции SYCL на графических процессорах с поддержкой CUDA. [44] [45]

РОКМ ХИП

[ редактировать ]

ROCm HIP предназначен для графических процессоров Nvidia, графических процессоров AMD и процессоров x86. HIP — это API более низкого уровня, который очень похож на API CUDA. [46] Например, AMD выпустила инструмент HIPIFY, который может автоматически транслировать код CUDA в HIP. [47] Таким образом, многие моменты, упомянутые при сравнении CUDA и SYCL, также применимы и к сравнению HIP и SYCL. [48]

ROCm HIP имеет некоторое сходство с SYCL в том смысле, что он может быть ориентирован на различных поставщиков (AMD и Nvidia) и типы ускорителей (GPU и CPU). [49] Однако SYCL может быть ориентирован на более широкий круг ускорителей и поставщиков. SYCL поддерживает несколько типов ускорителей одновременно в одном приложении посредством концепции бэкэндов. Кроме того, SYCL написан на чистом C++, тогда как HIP, как и CUDA, использует некоторые языковые расширения. Эти расширения предотвращают компиляцию HIP стандартным компилятором C++. [48]

Оба ЦОД++ [44] и Адаптивекпп [45] компиляторы предоставляют серверные части для графических процессоров NVIDIA и AMD, аналогично тому, как это делает HIP. Это позволяет компилировать и выполнять код SYCL на оборудовании этих поставщиков, предоставляя разработчикам гибкость в использовании высокоуровневых абстракций SYCL на самых разных устройствах и платформах. [45] [44]

SYCL имеет много общего с моделью программирования Kokkos . [50] включая использование непрозрачных объектов многомерных массивов (буферов SYCL и массивов Kokkos), многомерных диапазонов для параллельного выполнения и сокращений (добавлено в SYCL 2020). [51] Многочисленные функции в SYCL 2020 были добавлены в ответ на отзывы сообщества Kokkos.

SYCL больше фокусируется на гетерогенных системах; благодаря интеграции с OpenCL его можно использовать на широком спектре устройств. Kokkos, с другой стороны, ориентирован на большинство платформ HPC. [52] таким образом, он более ориентирован на высокопроизводительные вычисления по производительности.

По состоянию на 2024 год команда Kokkos занимается разработкой бэкэнда SYCL. [53] что позволяет Kokkos атаковать оборудование Intel в дополнение к уже поддерживаемым платформам. Эта разработка расширяет возможности применения Kokkos и обеспечивает большую гибкость в использовании различных аппаратных архитектур в приложениях HPC. [50]

Король [54] [55] — это библиотека программных абстракций C++, обеспечивающая переносимость архитектуры и программирования приложений HPC.

Как и SYCL, он предоставляет переносимый код на гетерогенные платформы. Однако, в отличие от SYCL, Raja вводит уровень абстракции по сравнению с другими моделями программирования, такими как CUDA, HIP, OpenMP и другими. Это позволяет разработчикам написать свой код один раз и запускать его на различных серверах без изменения базовой логики. Raja поддерживается и развивается в Ливерморской национальной лаборатории имени Лоуренса (LLNL), тогда как SYCL — это открытый стандарт, поддерживаемый сообществом. [39]

Подобно Kokkos, Raja больше приспособлен для случаев использования высокопроизводительных вычислений, уделяя особое внимание производительности и масштабируемости в высокопроизводительных вычислительных средах. SYCL, напротив, поддерживает более широкий спектр устройств, что делает его более универсальным для различных типов приложений, помимо HPC. [55]

По состоянию на 2024 год команда Raja разрабатывает бэкэнд SYCL. [56] что позволит Raja также атаковать оборудование Intel. Эта разработка повысит мобильность и гибкость Raja, позволяя использовать возможности SYCL и расширить возможности его применения на более широком спектре аппаратных платформ. [39]

OpenMP нацелен на разгрузку вычислений на внешние ускорители. [57] основное внимание уделяется многоядерным архитектурам и графическим процессорам. SYCL же ориентирован на более широкий круг устройств благодаря интеграции с OpenCL, что обеспечивает поддержку различных типов аппаратных ускорителей. [58]

OpenMP использует подход, основанный на прагме , при котором программист аннотирует код директивами, а компилятор берет на себя сложность параллельного выполнения и управления памятью. Эта абстракция высокого уровня упрощает разработчикам распараллеливание своих приложений, не вникая в сложные детали передачи памяти и синхронизации. [59]

И OpenMP, и SYCL поддерживают C++ и стандартизированы. OpenMP стандартизируется Советом по обзору архитектуры OpenMP (ARB), а SYCL стандартизируется Khronos Group. [39]

OpenMP имеет широкую поддержку различных компиляторов, таких как GCC и Clang . [60]

станд::пар

[ редактировать ]

std::par является частью стандарта C++17. [61] и предназначен для облегчения параллельного выполнения стандартных алгоритмов в стандартных контейнерах C++. Он предоставляет стандартный способ использования преимуществ внешних ускорителей, позволяя разработчикам указывать политику выполнения для параллельных операций, таких как std::for_each, std::transform, и std::reduce. Это позволяет эффективно использовать многоядерные процессоры и другое параллельное оборудование без необходимости внесения существенных изменений в код. [62]

SYCL можно использовать в качестве бэкэнда для std::par, позволяющий выполнять стандартные алгоритмы на широком спектре внешних ускорителей, включая графические процессоры Intel, AMD и NVIDIA, а также ускорители других типов. [63] Используя возможности SYCL, разработчики могут писать стандартный код C++, который легко выполняется в гетерогенных вычислительных средах. Такая интеграция обеспечивает большую гибкость и оптимизацию производительности на различных аппаратных платформах. [63]

Использование SYCL в качестве бэкэнда для std::par зависит от компилятора, то есть для него требуется компилятор, поддерживающий как SYCL, так и политики параллельного выполнения, представленные в C++17. [63] Примеры таких компиляторов включают DPC++ и другие компиляторы, совместимые с SYCL. С помощью этих компиляторов разработчики могут воспользоваться преимуществами абстракций SYCL для управления памятью и параллельного выполнения, при этом используя знакомые стандартные алгоритмы C++ и политики выполнения. [44]

См. также

[ редактировать ]
  1. ^ «Реестр Khronos SYCL — Khronos Group Inc» .
  2. ^ Кериелл, Ронан (17 ноября 2019 г.). «SYCL: единый стандарт C++ для гетерогенных вычислений» (PDF) . Хронос.орг . Проверено 26 сентября 2023 г.
  3. ^ Кериелл, Ронан. «Значение SYCL» . Гитхаб . Проверено 5 февраля 2021 г.
  4. ^ Группа «Хронос» (19 марта 2014 г.). «Хронос выпускает предварительную спецификацию SYCL 1.2» . Хронос . Проверено 20 августа 2017 г.
  5. ^ Группа «Хронос» (11 мая 2015 г.). «Хронос выпускает окончательную спецификацию SYCL 1.2» . Хронос . Проверено 20 августа 2017 г.
  6. ^ Группа «Хронос» (6 декабря 2017 г.). «Группа Khronos выпускает финальную версию SYCL 1.2.1» . Хронос . Проверено 12 декабря 2017 г.
  7. ^ Группа «Хронос» (18 апреля 2016 г.). «Khronos выпускает предварительную спецификацию OpenCL 2.2 с языком ядра OpenCL C++» . Хронос . Проверено 18 сентября 2017 г.
  8. ^ Группа «Хронос» (9 февраля 2021 г.). «Хронос выпускает спецификацию SYCL 2020» . Хронос . Проверено 22 февраля 2021 г.
  9. ^ Группа «Хронос» (30 июня 2020 г.). «Хронос делает шаг к широкому развертыванию SYCL с выпуском предварительной спецификации SYCL 2020» . Хронос . Проверено 4 декабря 2020 г.
  10. ^ https://www.iwocl.org/wp-content/uploads/k04-iwocl-syclcon-2021-wong-slides.pdf [ пустой URL PDF ]
  11. ^ https://www.iwocl.org/wp-content/uploads/k01-iwocl-syclcon-2021-reinders-slides.pdf [ пустой URL PDF ]
  12. ^ «Компиляция кросс-архитектуры: компилятор Intel® oneAPI DPC++/C++» .
  13. ^ «Главная — ComputeCpp CE — Продукты — Разработчик Codeplay» .
  14. ^ «Руководства — ComputeCpp CE — Продукты — Разработчик Codeplay» .
  15. ^ «Будущее ComputeCpp» . www.codeplay.com . Проверено 9 декабря 2023 г.
  16. ^ «Поддержка функции AdaptiveCpp» . Гитхаб . 4 июля 2023 г.
  17. ^ «AdaptiveCpp/doc/compilation.md в разработке · AdaptiveCpp/AdaptiveCpp» . Гитхаб .
  18. ^ «AdaptiveCpp (ранее известный как hipSYCL/Open SYCL)» . Гитхаб . 4 июля 2023 г.
  19. ^ «триСИКЛ» . Гитхаб . 6 января 2022 г.
  20. ^ Кэ, Инань; Агунг, Муля; Такизава, Хироюки (2021). «NeoSYCL: реализация SYCL для SX-Aurora TSUBASA» . Международная конференция по высокопроизводительным вычислениям в Азиатско-Тихоокеанском регионе . стр. 50–57. дои : 10.1145/3432261.3432268 . ISBN  9781450388429 . S2CID   231597238 .
  21. ^ Кэ, Инань; Агунг, Муля; Такизава, Хироюки (2021). «NeoSYCL: реализация SYCL для SX-Aurora TSUBASA» . Международная конференция по высокопроизводительным вычислениям в Азиатско-Тихоокеанском регионе . стр. 50–57. дои : 10.1145/3432261.3432268 . ISBN  9781450388429 . S2CID   231597238 .
  22. ^ «Сикл-GTX» . Гитхаб . 10 апреля 2021 г.
  23. ^ https://www.iwocl.org/wp-content/uploads/14-iwocl-syclcon-2021-thoman-slides.pdf [ пустой URL PDF ]
  24. ^ «Полигейст» . Гитхаб . 25 февраля 2022 г.
  25. ^ «Интеон» . 25 февраля 2022 г.
  26. ^ Перейти обратно: а б «Хронос создаст открытый стандарт SYCL SC для критически важных для безопасности гетерогенных вычислений на основе C++» . Группа «Хронос» . 15 марта 2023 г. Проверено 10 июля 2024 г.
  27. ^ «МИСРА» . Проверено 11 июля 2024 г.
  28. ^ «Обучение стандартам авиационного программного обеспечения ED-12C — бортовой» . Еврокей . Проверено 11 июля 2024 г.
  29. ^ «СОТИФ – практика» . www.kuglermaag.com . Проверено 11 июля 2024 г.
  30. ^ https://www.iwocl.org/wp-content/uploads/k03-iwocl-syclcon-2021-trevett-updated.mp4.pdf [ пустой URL PDF ]
  31. ^ Криски, Луиджи; Салими Бени, Маджид; Козенца, Бьяджо; Сципион, Николо; Гадиоли, Давиде; Виталий, Эмануэле; Палермо, Джанлука; Беккари, Андреа (10 мая 2022 г.). «На пути к портативному конвейеру для поиска лекарств с SYCL 2020» . Международный семинар по OpenCL . IWOCL '22. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 1–2. дои : 10.1145/3529538.3529688 . ISBN  978-1-4503-9658-5 .
  32. ^ Солис-Васкес, Леонардо; Маскареньяш, Эдвард; Кох, Андреас (18 апреля 2023 г.). «Опыт миграции CUDA на SYCL: пример молекулярной стыковки» . Международный семинар по OpenCL . IWOCL '23. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 1–11. дои : 10.1145/3585341.3585372 . ISBN  979-8-4007-0745-2 .
  33. ^ https://github.com/ggerganov/llama.cpp/blob/master/docs/backend/SYCL.md
  34. ^ https://www.iwocl.org/wp-content/uploads/20-iwocl-syclcon-2021-rudkin-slides.pdf [ пустой URL PDF ]
  35. ^ Ранхель, Эстебан Мигель; Пенникук, Саймон Джон; Папа, Адриан; Фронтьер, Николас; Ма, Чжицян; Маданант, Варша (12 ноября 2023 г.). «Переносная реализация SYCL CRK-HACC для Exascale» . Материалы семинаров SC '23 Международной конференции по высокопроизводительным вычислениям, сетям, хранилищам и анализу . СК-В '23. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 1114–1125. arXiv : 2310.16122 . дои : 10.1145/3624062.3624187 . ISBN  979-8-4007-0785-8 .
  36. ^ «Ресурсы СИКЛ» . khronos.org . Группа Хронос. 20 января 2014 г.
  37. ^ «Спецификация открытого исходного кода SYCL» . Гитхаб . 10 января 2022 г.
  38. ^ Перейти обратно: а б Брейер, Марсель; Ван Краен, Александр; Пфлюгер, Дирк (10 мая 2022 г.). «Сравнение SYCL, OpenCL, CUDA и OpenMP для массово-параллельной классификации машин опорных векторов на оборудовании разных производителей» . Международный семинар по OpenCL . IWOCL '22. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 1–12. дои : 10.1145/3529538.3529980 . ISBN  978-1-4503-9658-5 .
  39. ^ Перейти обратно: а б с д «SYCL — гетерогенное программирование на C++ с одним исходным кодом для ускорения разгрузки» . Группа «Хронос» . 20 января 2014 г. Проверено 12 июля 2024 г.
  40. ^ Перейти обратно: а б «Спецификация SYCL™ 2020 (редакция 8)» . Реестр.khronos.org . Проверено 12 июля 2024 г.
  41. ^ oneapi-src/SYCLomatic , oneAPI-SRC, 11 июля 2024 г. , получено 11 июля 2024 г.
  42. ^ Чен, Джолли; Дессоль, Моника; Варбанеску, Ана Люсия (24 января 2024 г.), Извлеченные уроки по миграции CUDA на SYCL: практический пример HEP с ROOT RDataFrame , arXiv : 2401.13310 , получено 12 июля 2024 г.
  43. ^ «Режимы доступа к буферу» . Интел . Проверено 11 июля 2024 г.
  44. ^ Перейти обратно: а б с д и «Документация DPC++ — документация по компилятору oneAPI DPC++» . intel.github.io . Проверено 11 июля 2024 г.
  45. ^ Перейти обратно: а б с д «AdaptiveCpp/doc/sycl-ecosystem.md в разработке · AdaptiveCpp/AdaptiveCpp» . Гитхаб . Проверено 11 июля 2024 г.
  46. ^ ROCm/HIP , Программное обеспечение AMD ROCm™, 11 июля 2024 г. , получено 11 июля 2024 г.
  47. ^ «HIPIFY/README.md на amd-staging · ROCm/HIPIFY» . Гитхаб . Проверено 11 июля 2024 г.
  48. ^ Перейти обратно: а б Цзинь, Чжэмин; Веттер, Джеффри С. (ноябрь 2022 г.). «Оценка неравномерного снижения HIP и SYCL на графических процессорах» . 2022 г. 8-й международный семинар IEEE/ACM по анализу и сжатию больших научных данных (DRBSD) . IEEE. стр. 37–43. дои : 10.1109/DRBSD56682.2022.00010 . ISBN  978-1-6654-6337-9 . ОСТИ   1996715 .
  49. ^ Регули, Иштван З. (12 ноября 2023 г.). «Оценка переносимости производительности SYCL между центральными и графическими процессорами в приложениях с ограниченной полосой пропускания» . Материалы семинаров SC '23 Международной конференции по высокопроизводительным вычислениям, сетям, хранилищам и анализу . СК-В '23. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 1038–1047. arXiv : 2309.10075 . дои : 10.1145/3624062.3624180 . ISBN  979-8-4007-0785-8 .
  50. ^ Перейти обратно: а б Хаммонд, Джефф Р.; Кинснер, Майкл; Бродман, Джеймс (2019). «Сравнительный анализ Kokkos и SYCL как гетерогенных моделей параллельного программирования для приложений C++» . Материалы международного семинара по OpenCL . стр. 1–2. дои : 10.1145/3318170.3318193 . ISBN  9781450362306 . S2CID   195777149 .
  51. ^ Дуфек, Аманда С.; Гаятри, Рахулкумар; Мехта, Нил; Дорфлер, Дуглас; Кук, Брэндон; Гадар, Ясаман; ДеТар, Карлтон (ноябрь 2021 г.). «Пример использования Kokkos и SYCL в качестве портативных платформ для производительности для теста Milc-Dslash на графических процессорах NVIDIA, AMD и Intel» . Международный семинар по производительности, портативности и производительности в высокопроизводительных вычислениях (P3HPC) 2021 г. IEEE. стр. 57–67. дои : 10.1109/P3HPC54578.2021.00009 . ISBN  978-1-6654-2439-4 .
  52. ^ Тротт, Кристиан Р.; Лебрен-Грандье, Дамьен; Арндт, Дэниел; Ческо, Ян; Данг, Винь; Эллингвуд, Натан; Гаятри, Рахулкумар; Харви, Эван; Холлман, Дейзи С. (2022), Коккос 3: Расширения моделей программирования для эпохи экзафлопсов , получено 10 июля 2024 г.
  53. ^ Арндт, Дэниел; Лебрен-Гранди, Дэмиен; Тротт, Кристиан (8 апреля 2024 г.). «Опыт внедрения бэкэнда SYCL Kokkos» . Материалы 12-го международного семинара по OpenCL и SYCL . IWOCL '24. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 1–11. дои : 10.1145/3648115.3648118 . ISBN  979-8-4007-1790-1 . ОСТИ   2336667 .
  54. ^ LLNL/RAJA , Ливерморская национальная лаборатория Лоуренса, 8 июля 2024 г. , получено 10 июля 2024 г.
  55. ^ Перейти обратно: а б Бекингсейл, Дэвид А.; Скогланд, Томас Р.В.; Бурмарк, Джейсон; Хорнунг, Рич; Джонс, Хольгер; Киллиан, Уильям; Кунен, Адам Дж.; Пирс, Ольга; Робинсон, Питер; Рюджин, Брайан С. (ноябрь 2019 г.). «RAJA: Портативная производительность для крупномасштабных научных приложений» . Международный семинар IEEE/ACM по производительности, портативности и производительности в высокопроизводительных вычислениях (P3HPC) 2019 . IEEE. стр. 71–81. дои : 10.1109/P3HPC49587.2019.00012 . ISBN  978-1-7281-6003-0 . ОСТИ   1488819 .
  56. ^ Хомердинг, Брайан; Варгас, Артуро; Скогланд, Том; Чен, Роберт; Дэвис, Майк; Хорнунг, Рич (8 апреля 2024 г.). «Включение RAJA на графических процессорах Intel с помощью SYCL» . Материалы 12-го международного семинара по OpenCL и SYCL . IWOCL '24. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 1–10. дои : 10.1145/3648115.3648131 . ISBN  979-8-4007-1790-1 .
  57. ^ Тим Льюис. "Дом" . ОпенМП . Проверено 10 июля 2024 г.
  58. ^ «OpenCL — открытый стандарт параллельного программирования гетерогенных систем» . Группа «Хронос» . 21 июля 2013 г. Проверено 12 июля 2024 г.
  59. ^ Фридман, Ричард. «Справочники» . ОпенМП . Проверено 12 июля 2024 г.
  60. ^ «Компиляторы и инструменты OpenMP» .
  61. ^ "std::execution::seq, std::execution::par, std::execution::par_unseq, std::execution::unseq - cppreference.com" . ru.cppreference.com . Проверено 10 июля 2024 г.
  62. ^ «Ускорение стандартного C++ с помощью графических процессоров с использованием stdpar» . Технический блог NVIDIA . 04.08.2020 . Проверено 10 июля 2024 г.
  63. ^ Перейти обратно: а б с Алпай, Аксель; Эвелин, Винсент (08 апреля 2024 г.). «AdaptiveCpp Stdpar: стандартный параллелизм C++, интегрированный в компилятор SYCL» . Материалы 12-го международного семинара по OpenCL и SYCL . IWOCL '24. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 1–12. дои : 10.1145/3648115.3648117 . ISBN  979-8-4007-1790-1 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 539a4a406c6476f2b3c50ddb4d11c70e__1722391140
URL1:https://arc.ask3.ru/arc/aa/53/0e/539a4a406c6476f2b3c50ddb4d11c70e.html
Заголовок, (Title) документа по адресу, URL1:
SYCL - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)