Compilers
Welk soort instructie wordt gebruikt bij automatische vectorisatie door een compiler?
- AInstructies die een interrupt veroorzaken
- BSIMD-instructies die meerdere gegevens tegelijk verwerken
- CInstructies die de inhoud van de cache in één keer volledig wissen
Antwoord en toelichting tonen
Antwoord: B. SIMD-instructies die meerdere gegevens tegelijk verwerken
Automatische vectorisatie is een optimalisatie waarbij lussen die per arrayelement dezelfde berekening uitvoeren worden herkend en vervangen door SIMD-instructies die meerdere elementen tegelijk verwerken. Met een 128-bits SIMD-register kunnen bijvoorbeeld vier getallen van 32 bit tegelijk worden opgeteld, zodat het aantal berekeningen van de lus bij succes een vierde wordt. Voorwaarden zijn dat er geen afhankelijkheid tussen iteraties is en dat de data aaneengesloten liggen; bij een mogelijke overlap van pointers wordt het soms achterwege gelaten. Interrupts of cache-instructies spelen geen rol.