Why is half-precision slower than double-precision?
13 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
MathWorks Support Team
am 19 Aug. 2019
Bearbeitet: MathWorks Support Team
am 22 Sep. 2021
While executing same calculations in MATLAB, speed of double-precision variables is faster than half-precision.
Is this normal? Is there any way to speed up?
Akzeptierte Antwort
MathWorks Support Team
am 19 Aug. 2019
This is true.
n = 100;
t1= zeros(1,n);
t2= zeros(1,n);
for i = 1:n
a = ones(10,10,100,100);
b = zeros(10,10,100,100);
a2 = half(a);
b2 = half(b);
tic
temp = plus(a,b);
c = sum(temp(:));
t1(i) = toc;
tic
temp2 = plus(a2,b2);
c2 = sum(temp2(:));
t2(i) = toc;
end
sum(t1)
sum(t2)
ans =
0.1456
ans=
0.2737
Computations with half-precision data types is slower than those with double precision data types. This is because, unlike double, half-precision is not a native data type in MATLAB and hence, requires additional tweak to do the computations.
0 Kommentare
Weitere Antworten (1)
Krishna Bindumadhavan
am 9 Apr. 2020
Bearbeitet: MathWorks Support Team
am 22 Sep. 2021
To accelerate half precision floating point math, from 20a onwards, you can now generate CUDA code from your MATLAB Algorithm for NVIDIA GPU's with Compute Capability > 5.3 which have native half precision floating point support: https://www.mathworks.com/help/gpucoder/ug/sobel-edge-detection-in-half-precision.html.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Kernel Creation from MATLAB Code finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!