我已經到了一個階段,我的數組變得很龐大,一個函數需要大約2天才能計算。在Matlab中使用GPU進行並行計算
我正在使用圖像處理和使用kmeans
和gmm
- fitgmdist
。
我有一個工作站與Nvidia Tesla GPU的支持列表上,我想用他們的處理能力來幫助加快我的工作。
查看文檔,我明白爲了使用GPU函數,我所要做的就是先將傳遞給函數的數組傳遞給GPU。即
model_feats = get_feats(all_imges);
kmeans = kmeans(model_feats, gaussians, 'EmptyAction','singleton', 'MaxIter',1000);
gmm{i} = fitgmdist(model_feats, 128, 'Options',statset('MaxIter',1000), ...
'CovType','diagonal', 'SharedCov',false, 'Regularize',0.01, 'Start',cInd);
我所有的處理時間都被這兩個函數佔用。因此,如果我要使用GPU內核,那我所要做的就是使用gpuArray
函數嗎?例如以上將變成:
temp_feats = get_feats(all_imges);
model_feats = gpuArray(temp_feats);
kmeans = kmeans(model_feats, gaussians, 'EmptyAction','singleton', 'MaxIter',1000);
gmm{i} = fitgmdist(model_feats, 128, 'Options',statset('MaxIter',1000), ...
'CovType','diagonal', 'SharedCov',false, 'Regularize',0.01, 'Start',cInd);
這項工作?通過首先將數組傳遞給gpuArray
,它可以用於任何函數嗎?
P.S.對不起,我必須在這裏問,而不是自己嘗試,但我 到目前爲止還無法訪問工作站,但我可以請求訪問 。在我請求訪問它之前,我想確定我的 腳本是否可以與
gpuArray
一起使用。