Main Content

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

feval

在 GPU 上评估内核

语法

feval(KERN, x1, ..., xn)
[y1, ..., ym] = feval(KERN, x1, ..., xn)

说明

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

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

示例

如果 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'}

您可以使用以下语法在此代码的内核(KERN)上使用 feval

[y1, y2] = feval(KERN, x1, x2, x3)    

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

版本历史记录

在 R2010b 中推出