Создайте код CUDA для функций шаблона
B = gpucoder.stencilKernel(FUN,A,[M N],shape,param1,param2...) применяет функциональный FUN к каждому [M,N] раздвижное окно входа A. Функциональный FUN называется для каждого [M,N] субматрица A и вычисляет элемент выхода B. Индекс этого элемента соответствует центру [M,N] окно.
FUN указатель на пользовательскую функцию, которая возвращает скалярный выходной параметр того же типа как вход.
C= FUN(X,param1,param2, ...)
X [M,N] субматрица исходного входа AX может быть дополнен нулем при необходимости, например, на контурах входа AX и окно может также быть 1D.
C скаляр, оцененный выход FUN. Это - выход, вычисленный для центрального элемента [M,N] массив X и присвоен соответствующему элементу выходного массива B.
param1,param2 дополнительные аргументы. Передайте эти аргументы если FUN требует любых дополнительных параметров в дополнение к входному окну.
Окно [M,N] должно быть меньше чем или равно размеру A, с той же формой как A.
Если A 1D вектор-строка, окном должен быть [1,N].
Если A 1D вектор-столбец, окном должен быть [N,1].
shape определяет размер выходного массива B. Это может иметь одно из трех возможных значений:
'same' - Возвращает выход B это одного размера с A.
'full' - (значение по умолчанию) Возвращает полный выходной параметр. Размер B > размер A, то есть, если A имеет размер (x, y). Размер B = [x + floor(M/2), y + floor(N/2)]
'valid' - Возвращает только те части выхода, которые вычисляются без дополненных нулем ребер A. Размер B = [x - floor(M/2), y - floor(N/2)]
Вход A должен быть вектор или матрица с числовым типом, поддержанным FUN. Класс B совпадает с классом A.
Генерация кода поддерживается только для фиксированного размера выходные параметры. Форма и окно должны быть константами времени компиляции, потому что они определяют размер выхода.
Для очень больших входных размеров, gpucoder.stencilKernel функция может произвести код CUDA, который численно не совпадает с симуляцией MATLAB®. В таких случаях полагайте, что сокращение размера входа приводит к точным результатам..
codegen | coder.gpu.constantMemory | coder.gpu.kernel | coder.gpu.nokernel | gpucoder.matrixMatrixKernel | gpucoder.reduce | gpucoder.sort