feval

Оцените ядро на графическом процессоре

Синтаксис

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 выполнилось.

Смотрите также

| | |

Представленный в R2010b