Оцените ядро на графическом процессоре
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 выполнилось.