OpenCL, of Open Computing Language, is ‘n sagtewareraamwerk wat uitsluitlik ontwerp is vir die bou van toepassings wat oor verskillende rekenaarstelsels bedryf kan word. Dit is ‘n oop standaard vir die ontwikkeling van parallelle programmeringstoepassings met behulp van ‘n platform, met ‘n aantal open source implementasies.
In wese is OpenCL ontwikkel om coders in staat te stel om toepassings te skep wat op enige toestel uitgevoer kan word, ongeag die vervaardiger, verwerker se spesifikasies, grafiese eenheid of ander hardeware-komponente. Dit beteken dat ‘n ontwikkelaar ‘n toepassing op hul Windows-rekenaar kan bou en dat dit net so goed kan werk op ‘n Android-telefoon, Mac OS X-rekenaar of enige ander parallelle verwerkingstoestel. Met dien verstande natuurlik dat al hierdie toestelle OpenCL ondersteun en die toepaslike samesteller- en runtime-biblioteek implementeer.
Die programmeringstaal wat gebruik word om OpenCL-toepassings te ontwikkel, is OpenCL C, wat gebaseer is op C99 (die vorige amptelike definisie van die C-programmeringstaal). OpenCL C kan ‘n reeks hardeware en toestelle programmeer, insluitend CPU’s, GPU’s en hardewareversnellers.
OpenCL is eers deur Apple Inc ontwikkel en daarna verfyn met insette van verskeie groot hardeware-ontwikkelaars en voorgestel aan die nie-winsgewende organisasie, die Khronos Group. Die Khronos-groep het ‘n oop standaarde-komitee opgerig met ‘n aktiewe deelname van verskeie groot tegnologieverskaffers om die OpenCL-standaarde te finaliseer.
Tegniese standaarde is einde 2008 gefinaliseer, en in 2009 het Apple OpenCL 1.0 met hul Mac OS X Snow Leopard vrygestel. Gedurende 2008 en 2009 is OpenCL amptelik aangeneem deur AMD, NVIDIA en IBM.
Verskeie nuwe funksies en verfynings is in 2010 en 2011 bekendgestel, en in 2013 is OpenCL 2.0 vrygestel, wat onder meer ondersteuning vir gedeelde virtuele geheue, geneste parallelisme en ‘n uitbreiding van kliëntedrywer vir Android bevat. ‘N Volgende vrystelling in 2015, Open CL 2.1, het die OpenCL C-kerntaal vervang met OpenCL C++.
As ‘n nuwe raamwerk wat ontwerp is vir een van die grootste neigings in rekenaarprogrammering vandag, en as open source, is dit geen verrassing dat OpenCL ‘n groot, aktiewe gemeenskap van gebruikers en mentors het nie..
Khronos-hulpbronbladsy: die Khronos-groep, verantwoordelik vir die instandhouding van OpenCL, het ‘n groot lys bronne vir ontwikkelaars saamgestel, met inbegrip van inligting oor verskillende implementerings, taalbindings, en die vele biblioteke en raamwerke wat beskikbaar is vir OpenCL-programmeerders. Dieselfde webwerf bevat ook ‘n uitgebreide lys aanlyn-opleiding en gidse.
Verwysingskaarte: hierdie handige verwysingsblaaie bevat alles wat u nodig het om te open in OpenCL, insluitend ‘n API-gids, klasdiagram, gedeelde opdragte virtuele geheue, en ‘n lys met beskikbare programobjekte, datatipes, ingeboude funksies, en meer.
Intel OpenCL-forums: hierdie forum-webwerf word meestal besoek deur gevestigde OpenCL-ontwikkelaars wat op soek is na programmeringsadvies, die beste praktyke bespreek en idees deel..
Daar is verskillende tutoriale aanlyn beskikbaar vir OpenCL, sommige is geskep deur die open source-gemeenskap, ander is ontwikkel deur die baie hardeware vervaardigers wat bygedra het tot die OpenCL-standaard. Aangesien OpenCL ‘n gevorderde programmeringsinstrument is, veronderstel die meeste van hulle vorige ervaring met toepassingsontwikkeling en tipies kennis van C / C++.
CodeProject se OpenCL-tutoriaal: hierdie aanlyn tutoriaalreeks bied ‘n uitgebreide agtergrond in die OpenCL-projek, en lei tot die installering van die toepaslike sagteware om OpenCL-ontwikkeling moontlik te maak, en individuele lesse vir al die hoofareas van OpenCL-programmering. Dit bevat verskeie voorbeelde en addisionele skakels vir agtergrondinligting.
CMSoft OpenCL-tutoriaal: CMSoft bied beide ‘n algemene OpenCL-tutoriaal en ‘n reeks gevallestudies wat ontwerp is om ‘n aantal gespesialiseerde projekte te dek, insluitend die implementering van ‘n algemene algoritme vir fotofiltering wat op enige OpenCL-versoenbare GPU sal werk, om kleur in video op te spoor, en hoe om die GPU te gebruik om matrikse te vermenigvuldig.
Introduksie van OpenCL-tutoriaal: is geskep deur ‘n hardeware-argitek by AMD, en hierdie tutoriaal is geskryf vir splinternuwe OpenCL-programmeerders en bestudeer dit deur die grondbeginsels van OpenCL, terwyl dit baie koderingsvoorbeelde bied..
Omdat dit ‘n betreklik nuwe raamwerk is, is daar slegs ‘n handjievol boeke op OpenCL, en baie van hulle is voor die huidige weergawe geskryf, wat beteken dat hulle nie die nuutste funksies wat vir ontwikkelaars beskikbaar is, sal dek nie. Selfs die ouer tekste bied ‘n goeie oorsig van die raamwerk en die gebruike daarvan. ‘N Inleiding tot die nuutste verwikkelinge kan maklik verkry word deur baie van die aanlynbronne hierbo gelys.
Heterogene Computing with OpenCL 2.0 deur David Kaeli, et al: hierdie teks het ten doel om sowel die OpenCL-standaard as die algemene konsep van parallelle programmering te dek. Dit ondersoek onderwerpe soos gedeelde virtuele geheue, optimaliseringstegnieke, ontfouting en hoe om werk oor ‘n uiteenlopende rekenaarstelsel te versprei. Dit bevat verskeie gevallestudies sowel as voorbeeldkode.
OpenCL Programmeringsgids deur Munshi, et al: hierdie boek is spesifiek geskryf vir werkende ontwikkelaars. Aangesien dit een van die vroegste OpenCL-handboeke is, geskryf vir weergawe 1.1, dek dit nie die nuutste verbeterings nie. Dit bied egter steeds ‘n effektiewe oorsig van die OpenCL-argitektuur en terminologieë, basiese programmeringsfunksies en taaltutoriale vir OpenCL C. Hierdie teks bevat ook verskeie gevallestudies, voorbeelde en aanlynbronkode..
OpenCL Parallel Programming Development Cookbook deur Raymond Tay: hierdie teks is van mening dat u, om ‘n taal effektief te leer, beide die teorie daaragter en praktiese toepassings moet verstaan. Dit verdeel die leer in twee dele. Die eerste helfte van die boek dek die grondbeginsels van OpenCL en parallelle programmering. Die tweede helfte is ‘n ondersoek na sleutelalgoritmes wat verskillende parallelle programmeringstegnieke demonstreer.
OpenCL-programmering deur voorbeeld deur Banger en Bhattacharyya: Hierdie boek is daarop gemik om die ‘maklike’ gids vir OpenCL-programmering te wees, met behulp van baie eenvoudige voorbeelde om sleutelbegrippe van parallelle programmering en OpenCL te demonstreer.
Twintig jaar gelede, toe die oorgrote meerderheid rekenaargebruikers almal dieselfde bedryfstelsels gehad het, en die CPU / GPU-toneel oorheers is deur slegs ‘n klein handjievol ondernemings, was die vermoë om oor verskeie platforms te programmeer ‘n luukse wat die meeste van ons eenvoudig nie gedoen het nie ‘ t nodig. Maar met die bekendstelling van mobiele tegnologieë en die opkoms van Apple en Android, is dit onwaarskynlik dat ons binnekort weer ‘n enkele produsent sal sien wat daardie vlak van markaandeel het. In plaas daarvan moet sagteware-ontwikkelaars aanpas by die heterogene omgewing van vandag.
OpenCL is ‘n belangrike stap in die oorgang. Eerder as om vir elke tegnologieveranderlike te programmeer, kan ontwikkelaars kode skep wat oor platforms heen strek. Een taal, een raamwerk, een omgewing, om te programmeer vir verskillende hardeware- en sagtewarespesifikasies.
Ons het meer programmeringsgidse, tutoriale en infografika met betrekking tot kodering en ontwikkelaarbronne:
C Ontwikkelaarshulpbronne: begin en beweeg na gevorderde C-programmeringsareas.
Inleiding vir kakao en kakao: leer die API vir die skep van toepassings vir Mac OS X en iOS.
Java-inleiding, hoe om te leer en bronne: Java is op die meeste toestelle beskikbaar, en is ‘n uitstekende taal as u vir ‘n groot aantal platforms wil kodeer.
Disclosure: Tukisi auttaa pitämään sivuston toiminnassa! Ansaitsemme lähetysmaksun joistakin tämän sivun suosittelemista palveluista. OpenCL,