Прагма, которая отображает for
-циклы к ядрам графический процессор
coder.gpu.kernel()
- это прагма уровня цикла, которую необходимо поместить непосредственно перед циклом for. Он генерирует ядро с размерностями, вычисленными из параметров цикла.
Примечание
coder.gpu.kernel
pragma переопределяет все проверки анализа параллельных циклов, которые выполняет программное обеспечение. Использовать coder.gpu.kernelfun
сначала перед использованием более продвинутой функциональности coder.gpu.kernel
прагма.
coder.gpu.kernel(B,T)
- это прагма уровня цикла, которую необходимо поместить непосредственно перед циклом for. Он генерирует ядро с размерностями, заданными B
и T
. B[Bx,By,1]
- массив, который определяет количество блоков в сетке по размерностям x
и y
(z
не используется). T[Tx,Ty,Tz]
- массив, который определяет количество резьб в блоке по размерностям x
, y
, и z
.
Значение -1 для B
и T
указывает, что GPU Coder™ должны автоматически выводить размерности сетки и блоков. coder.gpu.kernel
pragma генерирует ошибки для недопустимых размерностей сетки и блоков.
coder.gpu.kernel(B,T,M,name)
ожидает того же B
и T
аргументы. Можно задать необязательные аргументы M
и name
. M
- положительное целое число, задающее минимальное количество блоков на потоковый многопроцессор. Иногда, увеличение M
может уменьшить использование регистров в ядре и улучшить заполнение ядра. Значение -1 для M
указывает, что GPU Coder должны использовать значение по умолчанию 1. name
- символьный массив, который позволяет настраивать имя сгенерированного ядра.
Установка прагмы ядра переопределяет все проверки анализа параллельных циклов. Это переопределение позволяет параллелизировать циклы в ситуациях, когда анализ параллельного цикла не может доказать, что все итерации независимы друг от друга. Во-первых, убедитесь, что цикл безопасен для параллелизации.
Эта функция является функцией генерации кода. Это не влияет на MATLAB®.
codegen
| coder.gpu.constantMemory
| coder.gpu.kernelfun
| coder.gpu.nokernel
| gpucoder.reduce
| gpucoder.sort
| gpucoder.stencilKernel