Создайте код CUDA для функций шаблона
B = gpucoder.stencilKernel(FUN,A,[M N],shape,param1,param2...)
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]
исходного входа A
. X
может быть дополнен нулем при необходимости, например, на контурах входа A
. X
и окно могут также быть 1D.
C
является скаляром, оцененным вывод FUN
. Это - вывод, вычисленный для центрального элемента массива [M,N]
X
, и присвоено соответствующему элементу выходного массива B
.
param1,param2
является дополнительными аргументами. Передайте эти аргументы, если FUN
требует каких-либо дополнительных параметров в дополнение к входному окну.
Окно [M,N]
должно быть меньше чем или равно размеру A
с той же формой как A
.
Если A
является 1D вектором - строкой, окном должен быть [1,N]
.
Если A
является 1D вектор-столбцом, окном должен быть [N,1]
.
shape
определяет размер выходного массива B
. Это может иметь одно из трех возможных значений:
B
вывода 'same'
- Returns, который одного размера как A
.
полный-
(значение по умолчанию) Возвращает полный выходной параметр. Размер 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
.
Генерация кода поддерживается только для фиксированного размера выходные параметры. Форма и окно должны быть константами времени компиляции, потому что они определяют размер вывода.
coder.gpu.constantMemory
| coder.gpu.kernel
| coder.gpu.kernelfun
| gpucoder.matrixMatrixKernel