Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В вычислении , А вычислить ядро представляет собой процедуру , скомпилированные для высокой пропускной способности ускорителей (например, графических процессоров (GPU), цифровых сигнальных процессоров (ЦСП) или полевых программируемых массивов затворов (FPGA)), отдельно от , но используемых в основной программе ( обычно выполняется на центральном процессоре ). Их иногда называют вычислительными шейдерами , они разделяют исполнительные блоки с вершинными шейдерами и пиксельными шейдерами на графических процессорах, но не ограничиваются выполнением на одном классе устройств или графическими API . [1] [2]

Описание [ править ]

Вычислительные ядра примерно соответствуют внутренним циклам при реализации алгоритмов на традиционных языках (за исключением того, что здесь нет подразумеваемой последовательной операции) или коду, передаваемому внутренним итераторам .

Они могут быть указаны с помощью отдельного языка программирования, такого как « OpenCL C » (управляемый OpenCL API), как «вычислительные шейдеры », написанные на языке шейдинга (управляемый графическим API, таким как OpenGL ), или встроенные непосредственно в код приложения. написан на языке высокого уровня , как в случае C ++ AMP .

Векторная обработка [ править ]

Эта парадигма программирования хорошо согласуется с векторными процессорами : предполагается, что каждый вызов ядра внутри пакета является независимым, что позволяет выполнять параллельное выполнение данных . Однако в некоторых сценариях атомарные операции могут иногда использоваться для синхронизации между элементами (для взаимозависимой работы). Индивидуальным вызовам присваиваются индексы (в одном или нескольких измерениях), из которых может выполняться произвольная адресация данных буфера (включая операции сбора с разбросом ), если соблюдается предположение о неперекрытии.

Vulkan API [ править ]

Vulkan API , обеспечивает промежуточный SPIR-V представление для описания как графического Shaders и Compute Ядра, в самостоятельном языке и машины независимым образом. Намерение состоит в том, чтобы способствовать эволюции языка и обеспечить более естественную способность к возможностям левередж GPU вычислений, в соответствии с аппаратными разработками , такими как архитектура Unified Memory и гетерогенного System Architecture . Это обеспечивает более тесное взаимодействие между процессором и графическим процессором.

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

  • Ядро (обработка изображений)
  • DirectCompute
  • CUDA
  • OpenMP
  • OpenCL
  • СПИР-В
  • SYCL
  • Металл (API)
  • ГПГПУ
  • Векторный процессор
  • Ксеон Пхи
  • RISC-V § Расширение вектора
  • Цифровой сигнальный процессор
  • Программируемая вентильная матрица
  • AI-ускоритель
    • Блок обработки зрения
  • Manycore
  • Потоковая обработка
  • Компьютер для работы с функциями

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

  1. ^ Введение в вычислительное программирование в металле
  2. ^ Учебник CUDA - Ядро