Riistvaraline kiirendamine

Riisvaraline kiirendamine (Inglise keeles Hardware acceleration) viitab spetsiaalse arvutiriistvara kasutamisele, mis on loodud teatud funktsioonide tõhusamaks täitmiseks, võrreldes üldotstarbelisel CPU-l töötava tarkvaraga. Andmete teisendusi, mida saab arvutada protsessori tarkvara abil, saab arvutada ka kohandatud riistvara abil, saab jõudluse suurendamiseks kasutada mõlema kombinatsiooni.

Tarkvara, riistvara või mõlema täiustused võivad aidata arvutiülesandeid kiiremini või mõnel muul viisil paremini täita. Siiski tuleb kaaluda kompromisse, nagu vähenenud latentsusaeg, suurenenud läbilaskevõime ja vähenenud energiatarbimine. Tarkvarale keskendumine võib kaasa tuua kiirema arengu, suurema teisaldatavuse ja funktsioonide värskendamise või vigade parandamise lihtsuse, kuid üldiste toimingute arvutamise kuludega. Riistvarale keskendumine võib kaasa tuua kiiruse, väiksema latentsusaja, suurenenud paralleelsuse ja ribalaiuse ning saadaolevate komponentide parema ärakasutamise, kuid selle hinnaga, et silikoonile söövitatud disainilahendusi värskendatakse harvem, ning suuremad kontrollikulud ja turule toomise aeg.

Digitaalsete andmetöötlussüsteemide hierarhia hõlmab üldotstarbelisi protsessoreid, nagu CPU-d, spetsialiseeritud protsessoreid, nagu GPU-d, FPGA-del rakendatud fikseeritud funktsiooni ja ASIC-idel rakendatud fikseeritud funktsiooni. Tõhusus suureneb suurusjärkude võrra, kui mis tahes rakendust rakendatakse hierarhias kõrgemal.

Riistvaraline kiirendus on jõudluse seisukohalt kasulik, eriti kui funktsioonid on fikseeritud ja uuendused pole nii vajalikud kui tarkvaralahenduste puhul. Ümberprogrammeeritavad loogikaseadmed, nagu FPGA-d, on alates 2010. aastast leevendanud riistvarakiirenduse piiramist fikseeritud algoritmidega, muutes selle rakendatavaks probleemsetes valdkondades, mis nõuavad algoritmide ja töötlemise juhtimisvoo muutmist. Kuid patenteeritud raamatukogude kasutamine paljudes avatud lähtekoodiga projektides võib raskendada riistvarakiirenduse integreerimist.