Я достиг стадии, когда мои массивы стали массивными, и для вычисления одной функции требуется около 2 дней.Использование графического процессора для параллельных вычислений в Matlab
Я работаю с обработкой изображений и использованием kmeans
и gmm
- fitgmdist
.
У меня есть рабочая станция с графическим процессором Nvidia Tesla, которые находятся в поддерживаемом списке, и я бы хотел использовать их вычислительную мощность, чтобы ускорить мою работу.
Заглянув в документацию, я понимаю, что для использования функций графического процессора все, что мне нужно сделать, это передать массив, который передается в функции на 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
.