Področje Bayesove statistike je v zadnjih letih doživelo velik razcvet z orodji, ki temeljijo na algoritmu Hamiltonskega Monte Carla. Ta orodja so računsko zahtevna, saj morajo med delovanjem izračunati veliko število gradientov, največkrat pri veliko podatkih in velikem številu parametrov. Med bolj popularnimi orodji za Bayesovo sklepanje je Stan, ki velja za statistikom najbolj prijazno, saj ima zelo ekspresiven in fleksibilen jezik. Stan pred različico 2.19 ni imel podpore za vzporedno računanje na grafičnih procesnih enotah (GPE). V tem delu predstavimo razvoj le-te. Uspšeno implementacijo podpore za GPE smo dosegli z nadgradnjo matematične knjižnice Stan Math tako, da omogoča računanje gradientov na GPE s pomočjo ogrodja OpenCL-a. Implementirana rešitev je razširljiva ter omogoča enostavno vzdrževanje, kar je ključnega pomena pri implementaciji podpore za zrelo orodje, kot je Stan. Poleg knjižnice smo razvili novo funkcionalnost za translator iz jezika Stan v C++, da je zmožen smiselno uporabiti novo podporo v knjižnici Stan Math, algoritem za avtomatsko izbiro pa poskrbi, da izbere najhitrejšo napravo brez posredovanja uporabnika. Z nadgradnjami v vmesniku CmdStan in razvojem novega vmesnika CmdStanR pa smo podporo za GPE približali široki množici uporabnikov. Rezultati kažejo, da se tako novo razvite funkcije kot tudi modeli, ki jih uporabljajo, na GPE izvajajo občutno hitreje, tudi do 60-krat. S tem delom je Stan po zmogljivosti dohitel ostala trenutno široko uporabljena orodja za Bayesovo statistiko, kjer morajo uporabniki sami poskrbeti za učinkovito izvajanje.
|