Predstavljena tehnička specifikacija OpenCL-a

Šime Šoić

Objavljeno 21.11.2008. Objavio/la: Šime Šoić
U sekciji Novosti |

 

Kao što znate, OpenCL je jedna od novosti koja treba dobiti ulogu u nadolazećem Snow Leopardu. OpenCL je skraćenica od Open Computing Language. Kada je Snow Leopard prvi puta predstavljen, nije nitko imao pojma o čemu se radi jer je to bilo prvi puta da se taj pojam pojavio u javnosti uopće. Do sada se znalo jako malo, osim da će to biti nekakav API koji će omogućavate paralelno programiranje za OS X.

Stvari su postale dosta jasnije u ovaj ponedjeljak kada je predstavljena specifikacija OpenCL standarda na Super Computing Conference u Austinu u Texasu.

Specifikaciju je donijela radna grupa Khronos Group kozorcija, istog onog koji stoji iz OpenGL standarda. U grupi su osim Apple-a bili i svi ostali važni igrači: 3DLABS, Activision Blizzard, AMD, ARM, Barco, Broadcom, Codeplay, Electronic Arts, Ericsson, Freescale, HI, IBM, Intel, Imagination Technologies, Kestrel Institute, Motorola, Movidia, Nokia, NVIDIA, QNX, RapidMind, Samsung, Seaweed, Takumi, Texas Instruments i Umeå University.

Grupa je u rekordnom roku od 6 mjeseci sastavila tehničku specifikaciju za OpenCL. Glavni razlog za takvu brzu pripremu tehničke specifikacije je Appleov rok za izlazak Snow Leoparda. O tome koliko je to bio izvanredan podvig svjedoče i slijedeća dva citata:

“If you go to some other larger standards bodies, it’s quite normal for a standard to take five years or more. That’s quite commonplace. You actually have to really push to get it down to eighteen months. Our record was 12 months, up to now; we’ve done this one in six.”

Neil Trevett, Nvidia

“We have, you know, divorced our families, we’ve had two phone meetings a week, face-to-face meetings and I can’t count how many hours I’ve spent, I’m just almost dead, I’m so exhausted. So, I’m really proud of what we pulled off.”

Tim Mattson, Intel

No, iako je specifikacija dovršena, nije još javno objavljena u potpunosti, jer postoji još jedna faza razvoja u kojoj pravnici svake tvrtke u grupi pregledavaju specifikaciju da vide postojie li kakvi sukobi interesa, povrede copyrighta, trademarka, patenata i sličnih stvari koje nas zapravo ne zanimaju.

Ono što se zna sada, dano je u prezentaciji koju možete naći na službenoj stranici i iz izjava ljudi koji su tu prezentaciju održali. Ja ću to pokušati sažeti u osnovnim crtama da vam bude jasan smisao postojanja OpenCL-a.

OpenCL je prvi otvoreni opći standard za paraleleno programiranje u heterogenim sustavima. Pod heterogenim sustavom se podrazumijeva bilo kakvi sustav s više različitih procesora (CPU, GPU, Cell, DSP….). OpenCL je zamišljen kao API koji će iskorištavati sve dostupne resurse u takvom heterogenom  sustavu. Posjeduje C sintaksu, tako da je developeri imaju poznatu okolinu za razvijanje. Omogućuje laganu integraciju s OpenGL-om i ostalim 3D API-ima (ne znam da li su tu mislili i na DirectX, ali ta će integracija vjeroatno ovisiti o Microsoftu). 

Cilj OpenCL-a je, da nije uopće nije bitno kakav je hardver na kojem će se izvoditi aplikacija, u smislu optimizacije koda. Vi pišete vaš programski kod, a OpenCL će se na svakome pojedinom stroju pobrinuti da se taj kod vrti ovisno o mogućnosti hardvera na njemu. Znači, nešto slično kao OpenGL i DirectX za igrice, gdje developeri pišu igrice ne vodeći računa o optimizaciji koda za svaku pojedinu grafičku, već se OpenGL i DirectX brinu o tome kako će se ta igrica izvršavati na svakoj pojedinoj grafičkoj. OpenCL “samo” proširuje taj model na sve dostupne procesore u sustavu i na sve aplikacije. Nije slučajno izabrano ime OpenCL koje je tako slično imenu OpenGL.

Način na koji je definiran OpenCL teoretski omogućuje istoj aplikaciji pokretanje na uređajima od mobitela pa sve do radnih stanica (uz rekompajliranje).

Također je predstavljen i sličan model paralelnog programiranja za ručne uređaje, tzv. “embedded profile”. Za njega očekuju da doživi svoj uspjeh u drugom valu, nakon kućnih računala. No to što će sada dati specifikaciju omogućuje proizvođačima da se na vrijeme prilagode. A to vrijeme bi moglo biti prije nego što očekujemo.

Ono što je stvarno bitno je da je to OTVORENI standard i da ga svi mogu implementirati. Iako će Mac korisnici biti povlašteni i prvi moći iskusiti OpenCL na djelu, očekuje se da će OpenCL biti opće prihvaćen i na drugim platformama kao što je to danas OpenGL.

Kao što ste mogli primjetiti, OpenCL će očito biti jako vezan za još jednu novinu u Snow Leopard-u, Grand Central. No, na koji točno način, još se ne zna, jer je Grand Central tehnologija koja je pod Apple NDA.

I još jedan citat sa konferencije za kraj:

“Everyone has a supercomputer locked away in their Mac, but it’s hard to get at it. And OpenCL will unlock the potential of that supercomputer.”

Neil Trevett, Nvidia


Tagovi:

 

Komentari:

13 komentara na “Predstavljena tehnička specifikacija OpenCL-a”

  1. surf u 07:22, 21.11.2008.

    malo off topic - izaso je iphone 2.2 update :)

  2. leko u 08:37, 21.11.2008.

    Odlična vijest, ovo jako dobro zvuči!

  3. Lurker u 09:17, 21.11.2008.

    http://stitch.blog.hr/arhiva-2005-07.2.html#1610869850

    jezični savjetnik za imena i slično…. jer stalno stavljate te vražje crtice…

  4. Luka Sučić u 09:28, 21.11.2008.
    Luka Sučić

    Sve pet Lurkeru i hvala na savjetima :) ali daj ti meni reci kako ćemo “skladati” OpenCL? i sve slične tehničke stvari sa naglaskcima takvog tipa? inače odličan jezični savjetnik, naletio sam i prije na njega

  5. Lurker u 09:36, 21.11.2008.

    s obzirom da OpenCL naziv završava sa kraticom CL onda ide crtica. Na kratice uvijek ide crtica. SAD, UK, CL, AVI, JPG, APP, itd.

  6. Lurker u 09:38, 21.11.2008.

    Btw, da ne ispadne da samo “kritiziram”: Super site, a i ovaj OpenCL jako dobro zvuči….. :)

  7. Luka Sučić u 09:44, 21.11.2008.
    Luka Sučić

    Uglavnom ja intenzivno koristim te crtice morat ću malo detaljnije pregledati jezičnog savjetnika :, i hvala na pohvalama

    A što se tiče OpenCL-a zajedno sa Grand Centralom bi to moglo biti poprilično značajan pomak

  8. Šime Šoić u 09:48, 21.11.2008.
    Šime Šoić

    Ja inače pazim na pravopis, ali sam jednostavno zbunjen bio da li pisati s crticama ili ne. Pa sam odlučio biti dosljedan i pisati sve s crticama, iako su mi neke riječi stvarno čudno izgledale.
    Sad bi mogao reviziju napraviti :-)

  9. Andrej u 12:35, 21.11.2008.

    > U grupi su osim Apple-a bili i svi ostali važni igrači:

    Nema Micro$ofta? Očito je standard preopen.
    Nekako me to sve podsjeća na Sunovu Javu, ali njihove specifikacije donose se stoljećima kao što traje i izvođenje koda. Ima osnove i toplo se nadam da će i jedno i drugo u ovom slučaju biti puno brže.

  10. Šime Šoić u 13:38, 21.11.2008.
    Šime Šoić

    Pa ne bi se baš složio u usporedbi s Javom, iako nije bila direktna. Usporedba s OpenGL-om vrijedi i za licenciranje, koje će biti jako slično i pokazalo se prilično uspješno. S tehničke strane, OpenCL je low level, za razliku od Jave koja je viši prog. jezik.

    A što se tiče Microsofta, oni vjeroatno spremaju svoj neki zatvoreni standard ili ga možda čak uključe nešto u neku buduću verziju DirectX-a. Njima ne treba radna grupa :-)

  11. Andrej u 15:55, 21.11.2008.

    Naravno da tehnički nema veze s Javom. ali paralele se mogu povući. Npr:
    Problem:
    Java: šuma OS-ova; OpenCL: šuma hardvera (i OS-ova)
    Riješenje:
    Java: standardna specifikacija + virtualna mašina = interpreted byte code = write once, run (test) everywhere
    OpenCL: standardna specifikacija + hardver koji je poštuje = write once, compile & run (test) everywhere.
    Obstrukcija:
    Java: microsoft .Net prepisao specifikaciju i promijenio dovoljno da sje*e standard + napravio vrhunski IDE + iskoristio monopol
    OpenGL: microsoft radi sličnu stvar s directX-om
    OpenCL: za očekivati je sličnu stvar od istog autora (obstruktora)

    Nadam se samo da će OpenCL donijeti više drivera za opskurni hardver koji bi normalan geek upiknuo u USB, odnosno aplikacije koje koriste periferiju a ne trebaju driver (imaju ga u openCL-u). Zamisli open source EyeTV koji radi sa TV karticom sa kioska za 27 i pol kuna. I to upiknutu u iPhone.

  12. Šime Šoić u 16:39, 21.11.2008.
    Šime Šoić

    Da, istina kad tako postaviš… Upućen si u problematiku bolje nego ja. MS sigurno nešto sprema, začudilo bi ne sprema. Jedina stvar koja moze biti utješna je da će to, što god spremaju, biti ograničeno na Windowse.
    Tako da će kod nas na OS X-u OpenCL biti integriran duboko u sustav, kao i OpenGL sada.
    Jedina bi opasnost stvarna bila kada bi MS lobirao kod proizvodača hardvera da ga prilagođavaju isključivo njihovom standardu. No to se neće dogoditi jer su svi veći proizvođači hardvera sudjelovali u razvoju OpenCL-a.

    Uuu, zanimljiva opcija…i moguća :-)
    Ja imam slicnu ideju.
    Mene zanima kako hoće li se početi pojavljivati mali i jeftini specijalizirani procesori za točno određene radnje jer sofver više ne mora biti optimiziran za pojedini hardver, već se OpenCL brine o tome.

    Zamislite scenarij: Želite neko video enkodirati, samo ubacite specijalizirani procesor u USB3 utor i enkodirate 10x brže.

    Budućnost se čini uzbudljiva :-)

  13. Marko u 02:19, 23.12.2008.

    Oprostite sto vec pisem nakon dugo vremena, googlao sam da malo vise otkrije o opencl.
    Vaša stranica najbolje objasnava sto je opencl, ali ja imam pitanje, korisnik sam linuxa, znači li to da ce igre raditi za sve platforme. da nece biti vise ogranicenja da radi samo sa windowsom.

Ostavi komentar




Pretplati se na odgovore bez komentiranja članka:

Tagcloud:



RSS

Newsletter

Vidi top 100