Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
1
Wstęp
Czasy,wktórychprogramybyłypisanenajczęściejpodkątemwykorzystaniaza-
sobówobliczeniowychcentralnegoprocesoraCPU(ang.centralprocessingunit),
właśniesięskończyły.DzisiajnietylkokomputeryosobisteklasyPClubMac,lecz
takżetabletyismartfonyopróczukładuCPUmająpotężnąjednostkęobliczenio-
wąGPU(ang.graphicsprocessingunit).Corazpowszechniejszastajesięwiedza
otym,jakwykorzystaćmocdrzemiącąwtychukładach,tymbardziej,żeżyjemy
wświecie,wktórymjestważnanietylkosamainformacjaijejprzetwarzanie,
lecztakżejejwizualizacja.AwtejdziedzinieakuratGPUsprawdzasięnadwyraz
dobrze,zwłaszczagdyproblemdotyczywizualizacji3D.
JeszczenapoczątkuXXIwiekuukładytebyłystosunkowowolneiograniczone
programistycznie.Renderowaniefotorealistycznychscenwczasierzeczywistym
znajdowałosięjedyniewsferzegłębokichmarzeńprogramistóworazartystów
tworzącychwizualizacje.Wgrachkomputerowych,produkowanychwtamtym
okresierozwojutechnologii3D,trudnobyłouzyskaćbardziejzaawansowaneefek-
tywizualne,nawetoświetlenieicieniebyłynajczęściejstatyczne,realizowaneprzy
użyciuinformacjiwypalanychbezpośrednionateksturach.Możliwościudostępnia-
neprzezAPIbibliotekgracznychiarchitekturęukładówGPUztamtegookresu
byłymocnoograniczoneidałosiętoodczućszczególniewbranżytworzeniagier
wideo.Naszczęściepostęptechnologicznyrozwiązałzczasemkwestięwydajno-
ści,aprogramistomdałwiększąswobodędziałania.Zaczęłypojawiaćsięshadery,
dziękiktórymprogramiścimogliprzejśćzmocnoograniczonegokongurowania
pracyGPUzapośrednictwemAPInabardziejbezpośrednikontaktzukładem,
programująccałydostępnypotokrenderującywedługuznania.Liczbadostępnych
shaderówstopnioworosła.Doczekaliśmysięteżrewolucji,jakąbyłozastosowanie
układugracznegodoGPGPU(ang.GeneralpurposecomputingonGPU),które
zostałoudostępnionewpostaciCUDAprzezrmęNvidiaczyOpenCLprzezrmę
Apple(dzisiajopiekęnadrozwojemOpenCL,podobniejakOpenGL,sprawuje
grupaKhronos).Natakąotwartośćprogramistycznąakceleratorówgracznych,
zbliżonądoCPU,czekałowieleosób.WkońcuzawitałaonarównieżdoOpenGL
podpostaciąshaderaobliczeniowego(ang.computeshader).Niedostarczaon
możetakichmożliwości,jakiemająCUDAczyOpenCL,jednakpozwalanaprostą