MATLAB 帮助中心
本页采用了机器翻译。点击此处可查看最新英文版本。
在 GPU 上评估内核
feval(kern,x1,...,xn)
[y1,...,ym] = feval(kern,x1,...,xn)
feval(kern,x1,...,xn) 使用参量 kern 评估 CUDA 内核 x1,...,xn。输入参量 n 的数量必须等于 kern 的 NumRHSArguments 属性的值,并且其类型必须与 kern 的 ArgumentTypes 属性中的描述相匹配。输入数据可以是常规的 MATLAB® 数据、GPU 数组或两者。
kern
x1,...,xn
n
NumRHSArguments
ArgumentTypes
[y1,...,ym] = feval(kern,x1,...,xn) 从内核评估中返回多个输出参量。每个输出参量对应于 CUDA 内核执行后输入的非恒定指针的值。即使所有输入都存储在主机内存中,在 GPU 上运行内核的 feval 的输出始终是 gpuArray。输出参量 m 的数量不得超过 MaxNumLHSArguments 的 kern 属性的值。
y1,...,ym
feval
gpuArray
m
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'}
在此内核 (feval) 上使用 KERN,语法如下:
KERN
[y1, y2] = feval(KERN,x1,x2,x3)
三个输入参量 x1、x2 和 x3 对应传递给 CUDA 函数的三个参量。输出参量 y1 和 y2 是 gpuArray 对象,对应于 CUDA 内核执行后的 pInOut1 和 pInOut2 的值。
x1
x2
x3
y1
y2
pInOut1
pInOut2
parallel.gpu.CUDAKernel
CUDA 内核,指定为 parallel.gpu.CUDAKernel 对象。
用于评估内核的参量,指定为 MATLAB 数据、gpuArray 对象或两者的混合。这些参量的数量必须等于 kern 参量的 NumRHSArguments 属性的值,并且它们的类型必须与 kern 参量的 ArgumentTypes 属性中的描述相匹配。
来自 CUDA 内核评估的输出,以 gpuArray 对象的形式返回。这些参量的数量不得超过 kern 输入参量的 MaxNumLHSArguments 属性的值。
在 R2010b 中推出
CUDAKernel | gpuArray
CUDAKernel
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处