在GPU上运行MATLAB图像处理脚本

在GPU上运行MATLAB图像处理脚本,matlab,image-processing,gpu,Matlab,Image Processing,Gpu,我正在编写一个脚本,用于创建基于图像特征的数据集。但是当我运行它的时候,它需要很多时间来完成。我想在gpu上运行它,这样它可以很快。我创建数据集的代码如下: for i=1:totalFiles try image = readimage(trainingSet,i); catch e disp(e); end cedd = CEDD(image); zerosCount = 0 ; for j=1:144 if cedd(j) == 0 zero

我正在编写一个脚本,用于创建基于图像特征的数据集。但是当我运行它的时候,它需要很多时间来完成。我想在gpu上运行它,这样它可以很快。我创建数据集的代码如下:

for i=1:totalFiles
try
    image = readimage(trainingSet,i);   
catch e
   disp(e);  
end
cedd = CEDD(image);
zerosCount = 0 ;
for j=1:144
    if cedd(j) == 0
        zerosCount=zerosCount + 1;
    end
end
if zerosCount ~= 144
    data(i , :) = cedd;
    labels(i , : ) = trainingSet.Labels(i);
end
d.Value = i/totalFiles(1,1);
d.Message = sprintf('%3.2f "% completed" ',d.Value*100);
end

如何在gpu上运行此代码,或者必须将CEDD实现转换为gpu?

MATLAB中的基本gpu编程模型是,您需要并行计算工具箱和支持CUDA的NVIDIA gpu。考虑到这些因素,gpuArray是如何在MATLAB中在GPU上执行工作的:

基本思想是构造一个gpuArray,它将数据移动到GPU内存中,然后对新构造的gpuArray执行数学操作,就像对数字数据执行操作一样。根据CEDD所依赖的所有功能是否支持gupArray,其简单程度如下:

cedd = CEDD(gpuArray(image));

没有CEDD是简单的不依赖gpuArray。。。我必须把所有的数组都做成gpuArray,这样就可以了吗?