MATLAB Answers

Info

This question is closed. Reopen it to edit or answer.

Using multiple GPU for functions

1 view (last 30 days)
Mantas Vaitonis
Mantas Vaitonis on 29 Sep 2018
Closed: Mantas Vaitonis on 2 Oct 2018
Dear All,
I have two GPU devices (GeForce GTX 1070 Ti and GeForce GTX 1060 6GB) and I have code that works great with one GPU. However when I try to implement the code on two GPUs it becomes 10x times slower. The thing is that I never workd with multiple GPUs. What is wrong with my implementation? Here is code:
clear;
delete(gcp('nocreate'));
parpool(gpuDeviceCount);
dydis=5050;
load 4.mat
[z,~]=size(test);
% in how many peaces should data be divided, due to GPU memory
z=z/dydis;
z = fix(z);
tic
%from here starts parfor, which should be used by both GPUS
parfor i=1:z
%a list of constants
comi=0.05;
ut=1;
t=0.6;
ut1=ut;
d=5001;
window=5000;
atidaryta=1000;
dydis=5050;
%create 3D array
x1(:,:,i)=test(i*dydis+1-dydis:i*dydis,:);
x=gpuArray(x1(:,:,i));
x23=x(1:end-d,:);
[n1,n2]=size(x);
n1=gpuArray(n1);
n2=gpuArray(n2);
d=gpuArray(d);
t=gpuArray(t);
window=gpuArray(window);
atidaryta=gpuArray(atidaryta);
xt=x.';
x = [];
dx=(d-window-1:d-2).' + (1:n1-d);
% function where data is sent for futher calculations
[sujn1(:,:,i),sujn2(:,:,i)]=mazinta(xt,dx,n2,n1,d,x23,t,window,atidaryta,comi);
end
toc

  2 Comments

Joss Knight
Joss Knight on 30 Sep 2018
Please format this code to make it readable.

Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by