Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 20 reacties

De Khronos Group, verantwoordelijk voor onder andere de OpenGL-standaarden, heeft de 1.0-specificatie voor WebCL goedgekeurd. Deze specificatie moet OpenCL-toepassingen in de browser mogelijk maken.

WebCLOpenCL is een platform en een programmeertaal voor het uitvoeren van complexe parallelle berekeningen door de cpu en gpu. WebCL is een afgeleide daarvan en de api moet het mogelijk maken om OpenCL-code in de browser te draaien. Daarbij vormt OpenCL 1.1 Embedded Profile, een versimpelde versie van OpenCL 1.1, als basis. Deze keuze van de Khronos Group is vergelijkbaar met die van WebGL waarbij delen van de OpenGL ES-specificatie zijn gebruikt.

WebCL zou met name nuttig kunnen zijn voor grafische toepassingen, zoals een webapp waarin afbeeldingen gemanipuleerd kunnen worden of een video-editor binnen de browser. Aan OpenCL is door de Khronos Group meer dan 2 jaar gewerkt. Nu de draft-fase voorbij is en de 1.0-specificatie officieel is goedgekeurd, is de hoop van de ontwikkelaars dat de technologie net zo breed opgepakt zal worden als WebGL.

Een uitdaging is vooralsnog de veiligheid: OpenCL biedt een ontwikkelaar relatief veel vrijheid bij het schrijven van code, waardoor de kans op kwetsbaarheden toeneemt. Om bekende aanvalsmethoden tegen te gaan zijn enkele riskante operaties niet opgenomen in OpenCL, zoals pointers. Ook heeft Khronos een tool ontwikkeld waarmee OpenCL-code kan worden nagelopen op mogelijke beveiligingsrisico's, terwijl de fabrikanten van grafische kaarten samen met Khronos hebben geprobeerd om videodrivers voldoende te beveiligen.

Moderatie-faq Wijzig weergave

Reacties (20)

Persoonlijk vind ik het jammer dat OpenCL tot zover niet zo wijdverspreid is als bijv. Cuda voor het programmeren van videokaarten. Althans, niet in de wetenschappelijke wereld waar ik werk. Het feit dat het op zowel NVidia als AMD kaarten werkt en het feit dat je dezelfde code eenvoudig op CPU's en GPU's kunt runnen is wat mij betreft een enorme plus voor OpenCL. Wellicht dat de toevoeging van een browser API ervoor zorgt dat OpenCL in het algemeen wat breder gedragen gaat worden, al vrees ik dat het in de wetenschap een ondergeschoven kindje blijft...
OpenCL code schrijven die ideaal presteert op zowel een AMD gpu/apu, een nVidia gpu en een Intel apu is niet makkelijk, dan heeft het "close-to-the-metal" zitten met een CUDA of AVX2/512 toch zijn voordelen. Het blijft min of meer een vergelijkbare afweging als DirectX/OpenGL versus Mantle.
Geef het tijd 😊. Wij werken hier op het AMC (Universiteit van Amsterdam) al bij meerdere projecten met OpenCL! De wetenschappelijke wereld loopt altijd een beetje achter met dit soort technieken 😉.
Haha, toevallig, ik zit ook op het AMC :D Ben zelf natuurkundige en werk als onderzoeker op de radiotherapie afdeling. De meeste onderzoeksgerelateerde zaken hier worden ook geprogrammeerd door natuurkundigen en als er dan al iets op videokaarten gedraaid wordt, is 't altijd CUDA. Heb zelf in m'n vrije tijd wel eens wat OpenCL gedaan, maar als je in 'n bestaand project komt is 't toch aanpassen natuurlijk... Zelfde verhaal op het VUmc waar ik m'n masterproject heb gedaan trouwens.

Weet niet wat jouw achtergrond is, maar kan me voorstellen dat echte informatici / programmeurs een stapje voorop lopen wat dat betreft. Welke afdeling zit je als ik vragen mag?
Ongeloofelijk dat je Cuda hier nog zelf durft te vernoemen.

Cuda heeft lange tijd kapotgemaakt wat openCL nu eindelijk hopelijk kan herstellen; een open en universiele oplossing zodat alles een beetje transparanter kan verlopen. Cuda was dan ook een gesloten systeem waar alleen maar nvidia-hardware aan de pas kwam.

Terwijl het net de bedoeling is dat alle fabrikanten een kans krijgen om parallelle acceleratie te implementeren.

Edit: Ik snap al de negativiteit/downmod rond mijn post niet. Cuda heeft gewoon geen plaats als browser api, tenzij je acceleratie in browsers alleen maar gunt aan nvidia gebruikers 8)7

[Reactie gewijzigd door egnappahz op 19 maart 2014 16:30]

CUDA daarintegen werd wel actief door 1 fabrikant gepushed, en was redelijk af toen het gelanceerd werd. Ik weet niet of je ooit met CAL of Brook+ gewerkt hebt, maar dat wil je echt niet. Het is bloedjesnel, maar een chaos. OpenCL is inmiddels net zo gestroomlijnd als CUDA, maar dat kostte een tijd, en een aantal dingen (zoals effectieve Boostlibs etc) ontbreken nog. Zodra er eenmaal een nette verzameling code is komt het gebruik vanzelf, tenzij NVidia nu weer een sloot geld uitstort over CUDA-programmeurs natuurlijk...
OpenCL is inmiddels net zo gestroomlijnd als CUDA
Goed, maar CUDA is er al jaren - geen wonder dus dat in de tussentijd er al heel veel CUDA libraries zijn geschreven. De wereld wil niet altijd wachten totdat de concurrerende techniek langszij is gekomen, dat kan best lang duren.
OpenCL drivers zijn tot op de dag van vandaag een drama, qua stabiliteit of prestataties of ondersteuning van nieuwere OpenCL versies, zowel bij AMD als NVIDIA. CUDA is voor serieuze toepassingen tot nu toe de enige oplossingen. Wat niet uitsluit dat er toch enkele toepassingen in OpenCL geschreven zijn zoals Luxrays. Ik gebruik op het moment in ieder geval alleen CUDA :) .
"Nu de draft-fase voorbij is en de 1.0-specificatie officieel is goedgekeurd, is de hoop van de ontwikkelaars dat de technologie net zo breed opgepakt zal worden als WebGL."

Net zo "breed" als WebGL? 5 demos en voor de rest niemand die het durft te gebruiken?
Er zijn wel degelijk meer demo's (Ik heb zelf ook een particle physics sandbox in webcl geschreven), Het nadeel is alleen dat WebCL nog maar net uit was toen en je er een plugin voor moest downloaden die alleen in een bepaalde firefox werkte. En omdat de draft nog niet af was zorgde elke update er weer voor dat de demo's niet meer werkte. Maar dit was in het begin ook het geval met webgl.

Verder over Webcl, Persoonlijk vond ik het echt super ideaal voor complexe realtime systemen in een browser. Ik heb hetzelfde proberen te schrijven in webgl. Wat me in webcl in een aantal dagen lukte, Is mij niet eens gelukt in webgl, Na een tijdje maar opgegeven doordat het eigenlijk hack op hack werd. En trouwens, Webgl en Webcl horen juist samen gebruikt te worden, Hoe denk je dat je bijvoorbeeld je berekende physics laat verschijnen op je scherm. Probleem was toen nog dat je niet buffers kon allocaten van webcl naar webgl op een native manier (Dus zonder dat de data je video kaart hoeft te verlaten). Maar zelfs met de functie in de webcl api (denk dat die in c is). Was het een super mega snelle workflow. Ook is het ideaal dat je eigenlijk alles kan gebruiken dat processing power heeft. En wanneer dit in elke browser standaard is zal dit echt ideaal zijn voor bijvoorbeeld in browser physics, Animatie, encryptie etc.

Ook vond ik het universele karakter van Webcl veel fijner als Webgl, Al heb ik veel meer ervaring met Webgl (Kheb er zelfs een Engine in geschreven) Maar Webcl is echt veel makkelijker voor gewone berekeningen, Geen hacks, het is gewoon helemaal abstract. Niet ontworpen voor een bepaalde situatie. WebCL lijkt ook heel erg op gewoon moderne opengl of directx versie's. Maar waarin in nieuwe Opengl en DIrectX versie's eigenlijk alle functionaliteit telkens is toegevoegd als extensie's etc, OpenCl is gewoon een soort volledige parallelle C omgeving voor videokaarten en processors waar je zelf je extensies kan schrijven :)

[Reactie gewijzigd door kajdijkstra op 19 maart 2014 20:24]

Interessant. Mijn kritiek was overigens niet op de technologie zelf, maar op de langzame opmars en ondersteuning. Ik zou het juist fantastisch vinden als browsers dit goed en breed zouden ondersteunen.
nee klopt had ik door maar dat wou ik ook ff kwijt :) vond het een beetje stom om er nog een extra rwactie voor te maken. alleen eerste alinea was als reactie op jou ;)
OK, ik zie al een nieuwe vorm van micropayments ontstaan, waarbij sites die je bezoekt je videokaart gebruiken om cryptocurrencies te minen zolang je op hun site bent. Geld voor hun, geen/minder reclame voor de bezoekers (al valt dat nog af te wachten).

Dit is misschien wat vergezocht, maar als je ziet wat er nu al niet gehackt wordt soms om te kunnen minen (zie Synology NAS bijvoorbeeld).
En de gemiddelde bezoeker merkt als dit op de achtergrond gebeurd? :?

Nee, er zullen maar weinig mensen zijn die zullen merken dat een (gehackte) site via de browser mined.
Toch wel hoor, je GPU begint opeens te loeien. De meeste computers zijn niet berekend op 100% belasting voor langere tijd (>10 seconden), en dat laten ze je weten ook.

Daarnaast: moet WebCL standaard aan staan? Ik zie het meer als Java-applet-vervanger, bij mij staat Java standaard uit, tenzij ik het expliciet aan zet. Basic security, helaas niet voor iedereen weggelegd.
Hoeft natuurlijk ook niet op 100%... 10% moet ook wel lukken als je maar genoeg bezoekers hebt. Een pagina met een hoop ads of video trekt ook wel aan je GPU :)
Dat is niet vergezocht - is zelfs al eens voorgesteld, en de onderzoekers kregen meteen een hoop judiciaire troep over zich heen van een of andere politicus die het niet goed begreep.
Was even zoeken: http://www.techdirt.com/a...ridiculous-subpoena.shtml

Edit: En voor de mensen die zoiets nu al willen doen met mensen hun CPU, voorbeeldje (hun fee is ridicuul): http://www.bitcoinplus.com/miner/embeddable

[Reactie gewijzigd door Kamiquasi op 19 maart 2014 16:20]

Laten we aub niet nog meer energie verbranden voor een compleet nutteloos iets. Als ik moet minen om ergens te bezoeken, dan mag voor mij die website de prullenbak in.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True