Vectorization of for loop (indexing of a vector)
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
MyZ Zhang
am 13 Nov. 2015
Bearbeitet: Joss Knight
am 18 Nov. 2015
Please help, I'm trying to get this code to run faster on my GPU. Currently this is the main bottleneck of my function. I was wondering whether this code is vectorizable in order to remove the for-loop? vector_1 is a gpuArray
for i=1:n
A = vector_1((i-1)+(1:10));
B = vector_1((i-1)+16+(1:10));
AA(i+10) = (A'*B)/10;
BB(i+10) = (A'*A)/10;
end
0 Kommentare
Akzeptierte Antwort
Joss Knight
am 18 Nov. 2015
Bearbeitet: Joss Knight
am 18 Nov. 2015
first = gpuArray.colon(1,n);
indexA = bsxfun(@plus, first, [0:9]');
indexB = indexA + 16;
A = vector_1(indexA);
B = vector_1(indexB);
AA(first+10) = sum(A.*B)/10;
BB(first+10) = sum(A.*A)/10;
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!