Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
22
2.StandardOpenCL
systememgoszczącym.ZapomocąAPIOpenCLprzygotowujemydodatkowynowy
program,któryjestprzekazywanydowykonanianainnymurządzeniuobliczenio-
wym.Inaczejmówiąc,napoziomiehostanastępujeprzygotowanietzw.jądraobli-
czeniowegobądźteżproceduryobliczeniowej.Systemgoszczącyzlecawykonanie
przygotowanejproceduryobliczeniowejdourządzeniaobliczeniowegoOpenCL.
Urządzeniaobliczeniowedysponująwłasnymjęzykiemprogramowaniaonazwie
OpenCLC,któryjestpodobnydojęzykaC.Inaczejprzedstawiasiętakżesposóbwy-
konywaniaprogramównapisanychdlaurządzeniaobliczeniowego.Dostępnychjest
bowiemwielejednostekprzetwarzających,naktórychwykonujesięwielewątków,
realizującychobliczeniazleconeprzezproceduryobliczeniowe.
Głównymelementem,jakisięwykorzystujewprocedurachobliczeniowych,jest
tzw.siatkaobliczeniowa(ang.computationalgrid).Zapomocąsiatkiokreślasięspo-
sóbpodziałudanychnaposzczególnerdzenieobliczeniowe.WprzypadkuOpenCL
siatkaobliczeniowamożemiećstrukturęjedno-,dwu-lubtrójwymiarową.Struktu-
rajednowymiarowajestreprezentowanaprzezwektor,wtedyprzybierakształtli-
nii.Drugiprzypadektostrukturadwuwymiarowasiatkiobliczeniowej,czylikształt
prostokątalubkwadratu.Trzeciamożliwośćtostrukturatrójwymiarowa,czylipro-
stopadłościan.Narysunku2.3przedstawionotrzypodstawowekształty,jakiemoże
przyjąćsiatkaobliczeniowa.
Siatkaobliczeniowawpostacilinii
globalsize16elementów
localsize4elementy
workgroup4grupy
Siatkaobliczeniowadwuwymiarowa
globalsizesiatka8×8elementów
localsizesiatka4×4elementy
workgroupsiatka2×2grupy
Siatkaobliczeniowatrójwymiarowa
globalsizesiatka8×8elementówogłębokości4
localsizesiatka4×4elementyogłębokości1
workgroupsiatka2×2grupyogłębokości4
Rys.2.3.Trzypodstawowestrukturyprzestrzeniindeksującejdane(siatkiobliczeniowej)dla
jąderobliczeniowychOpenCL