feval
在 GPU 上评估内核
语法
feval(KERN, x1, ..., xn)
[y1, ..., ym] = feval(KERN, x1, ..., xn)
说明
feval(KERN, x1, ..., xn)
使用给定的参量 x1, ..., xn
评估 CUDA 内核 KERN
。输入参量 n
的数量必须等于 KERN
的 NumRHSArguments
属性的值,并且其类型必须与 KERN
的 ArgumentTypes
属性中的描述相匹配。输入数据可以是常规的 MATLAB 数据、GPU 数组或两者的混合。
[y1, ..., ym] = feval(KERN, x1, ..., xn)
从内核评估中返回多个输出参量。每个输出参量对应于 CUDA 内核执行后输入的非恒定指针的值。即使所有输入都存储在主机内存中,在 GPU 上运行内核的 feval
的输出始终是 gpuArray
。输出参量 m
的数量不得超过 KERN
的 MaxNumLHSArguments
属性的值。
示例
如果 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)
三个输入参量 x1
、x2
和 x3
对应传递给 CUDA 函数的三个参量。输出参量 y1
和 y2
是 gpuArray
对象,对应于 CUDA 内核执行后的 pInOut1
和 pInOut2
的值。
版本历史记录
在 R2010b 中推出