Оцените ядро на графическом процессоре
feval(KERN, x1, ..., xn)
[y1, ..., ym] = feval(KERN, x1, ..., xn)
feval(KERN, x1, ..., xn)
оценивает ядро CUDA KERN
с данными аргументами x1, ..., xn
. Количество входных параметров, n
, должно равняться значению свойства NumRHSArguments
KERN
, и их типы должны совпадать с описанием в свойстве ArgumentTypes
KERN
. Входные данные могут быть регулярными данными MATLAB, массивами графического процессора или смесью двух.
[y1, ..., ym] = feval(KERN, x1, ..., xn)
возвращает несколько выходных аргументов от оценки ядра. Каждый выходной аргумент соответствует значению входных параметров указателя неconst к ядру CUDA после того, как это выполнилось. Вывод от feval
, запускающего ядро на графическом процессоре, всегда является типом gpuArray
, даже если все входные параметры являются данными из рабочего пространства 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 выполнилось.