Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
2.3.Modelwykonawczy
21
Jednostka-Robocza
Pamięćprywatna
Pamięćlokalna
1
Pamięćstała
Buforowaniepamięcistałejorazglobalnej
Jednostka-Robocza
Pamięćprywatna
1
Pamięćurządzeniaobliczeniowego
k
Pamięćprywatna
Jednostka-Robocza
Pamięćglobalna
Pamięćlokalna
1
Pamięćprywatna
Jednostka-Robocza
N
k
Rys.2.2.Schematukładupamięcimiędzygrupąroboczą(ang.work-group)apojedyncząjed-
nostkąobliczeniową(ang.work-item)ideaschematuzaczerpniętazespecyfkacjiOpenCL,
rozdz.3.3
Podsumowując,najważniejszetypypamięcitonaturalniepamięćglobalnaoraz
lokalna.Ogólnypodziałnaczteryrodzajepamięcipozwalanalepszewykorzystanie
możliwościsprzętowychurządzeń,naktórychuruchamianeproceduryobliczenio-
we.Tabela2.1pokazujedodatkowomożliwościwdostępiedopamięci,gdyużywa-
nyjestsystemgospodarzaorazdojakiejpamięcimadostępjądroobliczeniowe.Na
rysunku2.2pokazanorazjeszczepodziałpamięci,choćtymrazemzperspektywy
grupyroboczejorazpojedynczejjednostkiroboczej(ang.item-work).
2.3.Modelwykonawczy
Wtradycyjnymprogramowaniu,np.wsystemieLinux,dodyspozycjiprogramisty
jestpodstawowykompilatoronazwieGCC(ang.GNUCompilerCollection).Tworząc
program,wwielkimuproszczeniu,tworzymyzestawprocedur,klas,akodźródłowy
poddawanyjestkompilacjizapomocąkompilatoraGCC.Inaczejmówiąc,tworzymy
tylkojedenprogramdowykonaniaprzezprocesorgłównykomputera,naktórymjest
uruchomionysystem.
WprzypadkuOpenCLjestniecoinaczej,mamybowiemdwapoziomywyko-
nawcze.PierwszypoziomtoAPIbibliotekiOpenCL,którypracujenp.napoziomie
systemuoperacyjnegoLinux.Takisystemnazywasięhostemlubgospodarzem,lub