Оценка ядра на графическом процессоре
feval(KERN, x1, ..., xn)
[y1, ..., ym] = feval(KERN, x1, ..., xn)
feval(KERN, x1, ..., xn)
оценивает KERN
ядра CUDA с заданными аргументами
x1, ..., xn
. Количество входных параметров, n
, должно равняться значению NumRHSArguments
свойство KERN
, и их типы должны совпадать с описанием в ArgumentTypes
свойство KERN
. Входными данными могут быть регулярные данные MATLAB, массивы GPU или смесь этих двух.
[y1, ..., ym] = feval(KERN, x1, ..., xn)
возвращает несколько выходные аргументы из оценки ядра. Каждый выходной аргумент соответствует значению входных входов неконстатного указателя в ядро CUDA после его выполнения. Выходы feval
выполнение ядра на графическом процессоре всегда gpuArray
type, даже если все входы являются данными из рабочего пространства MATLAB. Количество выходных аргументов, m
, не должен превышать значение MaxNumLHSArguments
свойство KERN
.
Если ядро CUDA в файле CU имеет следующую сигнатуру:
void myKernel(const float * pIn, float * pInOut1, float * pInOut2)
Соответствующий объект ядра в MATLAB тогда имеет свойства:
MaxNumLHSArguments: 2 NumRHSArguments: 3 ArgumentTypes: {'in single vector' ... 'inout single vector' 'inout single vector'}
Можно использовать feval
на ядре этого кода (KERN
) с синтаксисом:
[y1, y2] = feval(KERN, x1, x2, x3)
Три входных параметров, x1
, x2
, и x3
, соответствуют трем аргументам, которые передаются в функцию CUDA. Выходные аргументы, y1
и y2
, являются типами gpuArray и соответствуют значениям pInOut1
и pInOut2
после выполнения ядра CUDA.