主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

feval

在 GPU 上评估内核

说明

feval(kern,x1,...,xn) 使用参量 kern 评估 CUDA 内核 x1,...,xn。输入参量 n 的数量必须等于 kernNumRHSArguments 属性的值,并且其类型必须与 kernArgumentTypes 属性中的描述相匹配。输入数据可以是常规的 MATLAB® 数据、GPU 数组或两者。

[y1,...,ym] = feval(kern,x1,...,xn) 从内核评估中返回多个输出参量。每个输出参量对应于 CUDA 内核执行后输入的非恒定指针的值。即使所有输入都存储在主机内存中,在 GPU 上运行内核的 feval 的输出始终是 gpuArray。输出参量 m 的数量不得超过 MaxNumLHSArgumentskern 属性的值。

示例

示例

全部折叠

如果 CU 文件中的 CUDA 内核具有以下签名:

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)    

三个输入参量 x1x2x3 对应传递给 CUDA 函数的三个参量。输出参量 y1y2gpuArray 对象,对应于 CUDA 内核执行后的 pInOut1pInOut2 的值。

输入参数

全部折叠

CUDA 内核,指定为 parallel.gpu.CUDAKernel 对象。

用于评估内核的参量,指定为 MATLAB 数据、gpuArray 对象或两者的混合。这些参量的数量必须等于 kern 参量的 NumRHSArguments 属性的值,并且它们的类型必须与 kern 参量的 ArgumentTypes 属性中的描述相匹配。

输出参量

全部折叠

来自 CUDA 内核评估的输出,以 gpuArray 对象的形式返回。这些参量的数量不得超过 kern 输入参量的 MaxNumLHSArguments 属性的值。

版本历史记录

在 R2010b 中推出

另请参阅

|