GPU: laskentavoima tarvitsee tietoa riittävän nopeasti
Grafiikkasuoritin (graphics processing unit, GPU) suorittaa paljon operaatioita rinnakkain. Neuroverkot hyödyntävät sitä matriisikertolaskuilla ja muilla tensorioperaatioilla, usein erikoistuneella matriisilaitteistolla.
Laskennan huippunopeus on vain yksi raja. Painojen ja aktivaatioiden siirtäminen muistissa voi kestää niiden laskentaa kauemmin.
Käytä matriisia uudelleen
Yhden vektorin kertominen suurella painomatriisilla tekee melko vähän laskentaa ladattua painoa kohti. Monen vektorin yhteinen kertolasku voi käyttää samoja painoja useampaan operaatioon. Siksi eräajo voi kasvattaa läpimenoa.
Prefill tarjoaa monta tunnettua tokenikohtaa käsiteltäväksi yhdessä. Autoregressiivinen generointi tuo pyyntöä kohti vähemmän uusia kohtia, joten rinnakkaisten pyyntöjen yhdistäminen voi auttaa laitteiston käytössä.
Roofline-malli vertaa laskentaintensiteettiä eli operaatioita siirrettyä tavua kohti laitteiston laskentatehon ja muistiväylän suhteeseen. Se tunnistaa mahdollisen pullonkaulan, ei takaa mitattua nopeutta. Kontekstin luku, tiedonsiirto ja operaatioiden käynnistyskustannukset vaikuttavat myös.
Siksi suurin mainostettu operaatiomäärä sekunnissa ei automaattisesti tarkoita nopeinta GPU:ta tietylle mallille ja kuormalle.