AI-hardware en softwarestack
Waarom is de berekening van een volledig verbonden laag (product van gewichtsmatrix en vector) gemakkelijk geheugenbegrensd wanneer er maar één ingang is (batchgrootte 1)?
- AOmdat het aantal elementen van de vector te groot is om in de rekeneenheden te passen
- BOmdat het product van een matrix en een vector niet op een GPU kan worden berekend
- COmdat elk uit het geheugen gelezen gewicht maar voor één multiply-accumulate wordt gebruikt, zodat de rekenintensiteit zeer laag is
Antwoord en toelichting tonen
Antwoord: C. Omdat elk uit het geheugen gelezen gewicht maar voor één multiply-accumulate wordt gebruikt, zodat de rekenintensiteit zeer laag is
Bij een matrix-vectorproduct wordt elk element van de gewichtsmatrix eenmaal gelezen en slechts eenmaal met één element van de ingang vermenigvuldigd en opgeteld. Bij FP16 zijn dat 2 bewerkingen per 2 bytes, een rekenintensiteit van circa 1. Het lezen van de gewichten kost tijd, terwijl de rekeneenheden grotendeels wachten. Als ingangen worden gebundeld (grotere batch) zodat hetzelfde gewicht voor meerdere ingangen wordt gebruikt, stijgt de rekenintensiteit.