OpenCL Framework: Vai jums tas ir piemērots?

Atklāšana: Jūsu atbalsts palīdz vietnei darboties! Mēs nopelnām nodošanas maksu par dažiem pakalpojumiem, kurus mēs iesakām šajā lapā.


OpenCL jeb Open Computing Language ir programmatūras ietvars, kas paredzēts tikai tādu lietojumprogrammu veidošanai, kuras var darbināt dažādās datorsistēmās. Tas ir atvērts standarts, lai izstrādātu starpplatformu paralēlās programmēšanas lietojumprogrammas, kurām ir vairākas atvērtā koda ieviešanas.

Būtībā OpenCL tika izstrādāts, lai kodētāji varētu izveidot lietojumprogrammas, kuras var darbināt ar jebkuru ierīci, neatkarīgi no ražotāja, procesora specifikācijām, grafikas vienības vai citiem aparatūras komponentiem. Tas nozīmē, ka izstrādātājs var izveidot lietojumprogrammu savā Windows PC, un tas tikpat labi darbosies Android tālrunī, Mac OS X datorā vai jebkurā citā paralēlās apstrādes ierīcē. Protams, ar nosacījumu, ka visas šīs ierīces atbalsta OpenCL un ir ieviestas atbilstošas ​​kompilatora un izpildlaika bibliotēkas.

Programmēšanas valoda, ko izmanto, lai izstrādātu OpenCL lietojumprogrammas, ir OpenCL C, kuras pamatā ir C99 (iepriekšējā C programmēšanas valodas oficiālā definīcija). OpenCL C var ieprogrammēt virkni aparatūras un ierīču, ieskaitot CPU, GPU un aparatūras paātrinātājus.

Vēsture

OpenCL vispirms izstrādāja Apple Inc, pēc tam to uzlaboja ar vairāku galveno aparatūras izstrādātāju ieguldījumu un ierosināja bezpeļņas organizācijai Khronos Group. Khronos grupa izveidoja atvērto standartu komiteju, kurā aktīvi piedalījās vairāki lielākie tehnoloģiju pārdevēji, lai pabeigtu OpenCL standartu izstrādi.

Tehniskie standarti tika pabeigti 2008. gada beigās, un 2009. gadā Apple izlaida OpenCL 1.0 kopā ar Mac OS X Snow Leopard. 2008. un 2009. gadā OpenCL oficiāli pārņēma AMD, NVIDIA un IBM.

2010. un 2011. gadā tika ieviestas vairākas jaunas funkcijas un uzlabojumi, un 2013. gadā tika izlaists OpenCL 2.0, kas cita starpā ietvēra dalītas virtuālās atmiņas atbalstu, ligzdotu paralēlismu un klienta draivera paplašinājumu Android. Nākamais izlaidums 2015. gadā Open CL 2.1 aizstāja OpenCL C kodola valodu ar OpenCL C++.

Tiešsaistes resursi

Tā kā jaunais ietvars, kas izstrādāts vienai no mūsdienu lielākajām datorprogrammēšanas tendencēm, un ir atvērts avots, nav pārsteigums, ka OpenCL ir plaša, aktīva lietotāju un mentoru kopiena..

  • Khronos resursu lapa: Khronos grupa, kas atbild par OpenCL uzturēšanu, ir apkopojusi lielu izstrādātāju resursu sarakstu, iekļaujot informāciju par dažādām ieviešanām, valodu saistījumiem un daudzajām bibliotēkām un ietvariem, kas pieejami OpenCL programmētājiem. Šajā pašā vietnē ir arī plašs tiešsaistes apmācības un ceļvežu saraksts.
  • Atsauces kartes: šajās parocīgajās atsauces lapās ir viss nepieciešamais programmēšanai OpenCL, ieskaitot API ceļvedi, klases diagrammu, dalītās virtuālās atmiņas komandas un pieejamo programmas objektu, datu tipu, iebūvēto funkciju sarakstus un daudz ko citu..
  • Intel OpenCL forumi: šo foruma vietni lielākoties apmeklē labi zināmi OpenCL izstrādātāji, kuri meklē programmēšanas padomus, apspriež labāko praksi un dalās idejās.

Pamācības

OpenCL ir pieejamas vairākas tiešsaistes apmācības, dažas izveidojusi atvērtā pirmkoda kopiena, citas izstrādājuši daudzie aparatūras ražotāji, kas devuši ieguldījumu OpenCL standarta izveidē. Tā kā OpenCL ir uzlabots programmēšanas rīks, vairumam no viņiem ir iepriekšēja pieredze lietojumprogrammu izstrādē un parasti zināšanas par C / C++.

  • CodeProject OpenCL apmācība: šī tiešsaistes apmācību sērija sniedz plašu OpenCL projekta fona, ceļvežus atbilstošas ​​programmatūras instalēšanai, lai iespējotu OpenCL attīstību, kā arī individuālas nodarbības visām galvenajām OpenCL programmēšanas jomām. Tas satur vairākus piemērus un papildu saites pamatinformācijai.
  • CMSoft OpenCL apmācība: CMSoft piedāvā gan vispārīgu OpenCL apmācību, gan gadījumu izpētes sēriju, kas paredzēta, lai aptvertu vairākus specializētus projektus, ieskaitot vispārēja fotoattēlu filtrēšanas algoritma ieviešanu, kas darbosies ar jebkuru OpenCL saderīgu GPU, izsekojot krāsu video, un kā izmantot GPU, lai reizinātu matricas.
  • Intro OpenCL apmācība: izveidojis AMD aparatūras arhitekts, šī apmācība ir paredzēta pavisam jauniem OpenCL programmētājiem un iepazīstina viņus ar OpenCL pamatiem, vienlaikus piedāvājot daudz kodēšanas piemēru.

Grāmatas

Tā kā ir salīdzinoši jauna sistēma, OpenCL ir tikai dažas grāmatas, un daudzas no tām tika uzrakstītas pirms pašreizējās versijas, kas nozīmē, ka tās neaptvers dažas no jaunākajām funkcijām, kas pieejamas izstrādātājiem. Tomēr pat vecāki teksti sniedz labu pārskatu par ietvaru un tā pielietojumu. Jaunāko notikumu ieviešanu var viegli iegūt, izmantojot daudzus no iepriekš uzskaitītajiem tiešsaistes resursiem.

  • Heterogēna datortehnika ar OpenCL 2.0, Autors: David Kaeli, et al: šī teksta mērķis ir aptvert gan OpenCL standartu, gan paralēlās programmēšanas vispārīgo koncepciju. Tajā tiek pētītas tādas tēmas kā dalītā virtuālā atmiņa, optimizācijas paņēmieni, atkļūdošana un tas, kā darbu sadalīt dažādās datoru sistēmās. Tas ietver vairākus gadījumu pētījumus, kā arī koda paraugu.
  • OpenCL programmēšanas rokasgrāmata, autors: Munshi, et al., Šī grāmata ir īpaši izstrādāta strādājošiem izstrādātājiem. Tā kā tā ir viena no agrākajām OpenCL mācību grāmatām, kas paredzēta 1.1. Versijai, tā neaptver dažus no jaunākajiem uzlabojumiem. Tomēr tas joprojām sniedz efektīvu OpenCL arhitektūras un terminoloģiju, programmēšanas pamatfunkciju un OpenCL C valodas apmācības pārskatu pārskatu. Šis teksts satur arī vairākus gadījumu pētījumus, piemērus un tiešsaistes avota kodu..
  • Raymond Tay OpenCL Parallel Programming Development pavārgrāmata: šajā tekstā ir izmantota pieeja, ka, lai efektīvi iemācītos valodu, jums ir jāsaprot gan teorija, kas tajā ir, gan praktiski pielietojami. Tas sadala mācības divās daļās. Grāmatas pirmajā pusē apskatīti OpenCL un paralēlās programmēšanas pamati. Otrā puse ir galveno algoritmu izpēte, kas demonstrē dažādas paralēlās programmēšanas tehnikas.
  • OpenCL programmēšana pēc Bangera un Bhattacharyya piemēra: Šīs grāmatas mērķis ir būt “vieglam” OpenCL programmēšanas ceļvedim, izmantojot ļoti vienkāršus piemērus, lai parādītu paralēlās programmēšanas un OpenCL galvenās koncepcijas.

Secinājums

Pirms divdesmit gadiem, kad lielais vairums datoru lietotāju darbojās vienādas operētājsistēmas un CPU / GPU skatu dominēja tikai neliela daļa uzņēmumu, spēja programmēt vairākās platformās bija greznība, ko vairums no mums vienkārši nedarīja. t vajag. Bet līdz ar mobilo tehnoloģiju ieviešanu un Apple un Android parādīšanos, maz ticams, ka drīz mēs redzēsim nevienu ražotāju, kam šāda tirgus daļa atkal piederēs. Tā vietā programmatūras izstrādātājiem jāpielāgojas mūsdienu neviendabīgajai videi.

OpenCL ir nozīmīgs solis šajā pārejā. Tā vietā, lai programmētu katru tehnoloģiju mainīgo, izstrādātāji var izveidot kodu, kas sasniedz visas platformas. Viena valoda, viens ietvars, viena vide, lai programmētu vairākas aparatūras un programmatūras specifikācijas.

Turpmākie lasījumi un resursi

Mums ir vairāk programmēšanas ceļvežu, mācību materiālu un infografiku, kas saistīti ar kodēšanu un izstrādātāju resursiem:

  • C izstrādātāju resursi: sāciet darbu un pārejiet uz progresīvām C programmēšanas jomām.
  • Ievads par kakao un kakao pieskārienu: uzziniet API lietojumprogrammu izveidei Mac OS X un iOS.
  • Java ievads, kā mācīties un resursi: pieejams lielākajā daļā ierīču, Java ir lieliska valoda, ja vēlaties kodēt lielu skaitu platformu.

Kāds kods jums jāiemācās?
Kāds kods jums jāiemācās?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map