Computerarithmetiek
Wat is het juiste voordeel van de FMA-instructie (fused multiply-add) bij de berekening van a × b + c?
- AHet tussenliggende product wordt niet afgerond maar slechts één keer aan het einde, zodat de fout kleiner is en het sneller gaat
- BHet resultaat van de vermenigvuldiging wordt altijd eerst een geheel getal, zodat er helemaal geen fout optreedt
- CDe optelling wordt weggelaten en alleen vermenigvuldigd, zodat de berekening de helft kost
Antwoord en toelichting tonen
Antwoord: A. Het tussenliggende product wordt niet afgerond maar slechts één keer aan het einde, zodat de fout kleiner is en het sneller gaat
Wanneer vermenigvuldigen en optellen met afzonderlijke instructies gebeuren, wordt het resultaat van a × b eerst afgerond en daarna het resultaat van de optelling van c opnieuw, dus er vindt twee keer afronding plaats. FMA houdt het product intern ongerond, telt c erbij op en rondt slechts één keer af, zodat de fout kleiner is. Omdat het één instructie is, is het ook sneller en wordt het veel gebruikt bij matrixvermenigvuldiging, polynoomberekening en AI-berekeningen. Het product wordt niet een geheel getal en de optelling wordt niet weggelaten. Door het verschillende aantal afrondingen kan het resultaat echter licht afwijken van afzonderlijk berekende resultaten.