Ich habe eine Funktion wie,Wie Matlab-Code für gpu
function ObjVal=fun(Chrom,a)
[Nind,Nvar] = size(Chrom);
[m n]=size(a);
for i=1:Nind
c=Chrom(i,:);
Cmat=repmat(c',1,n);
ax=abs(sum(Cmat.*a)).^2;
ObjVal(i)= 10*log10(max(ax)./(mean(ax)));
end;
Chrom = 16 * 16 und a = 16 * 1024 Array zu optimieren. Ich versuche den schnellsten Weg auf GPU zu finden. Nur gpuarray ist langsamer. Wenn ich arrayfun oder bsxfun benutze, bekomme ich einige Fehler.
function valmult=mult(Cmat,a)
valmult=abs(sum(Cmat.*a)).^2;
ax = arrayfun (@ mult, Cmat, a); Ich bekomme Funktion übergeben als erstes Eingabeargument enthält nicht unterstützte oder unbekannte Funktion 'Summe'.)
Ich bin neu in MATLAB mit GPU. Irgendwelche Vorschläge, welcher Weg der Beste ist und wie kann ich die Code-Leistung mit gpuarray maximieren?
danke für Ihren Rat –