RENDER ZONE

http://www.ontmoeting.nl/renderzone/

homepage

 

OpenCL


OpenCL (Open Computing Language) is een programmeertaal, framework en platform ontwikkeld door Apple voor het uitvoeren van onder andere complexe parallelle berekeningen op de CPU en de GPU (ook bekend als GPGPU). De taal is gebaseerd op een dialect van de C programmeertaal en stelt applicaties in staat om op een uniforme wijze diverse soorten processoren te gebruiken voor allerlei berekeningen. En uitgerekend Apple heeft er in augustus 2015 de brui aangegeven door Metal voor hun eigen mobiele maar nu ook desktop platform naar voren te schuiven.

Bron: Wikipedia

OpenCL en OpenGL zullen wellicht in de toekomst samen smelten, maar de krachten van Metal en DirectX en de bereidheid van software makers om daarmee door te gaan of te starten moeten worden afgewacht.

 

OpenCL biedt de mogelijkheid om met NVIDIA en met AMD grafische kaarten te kunnen werken, waardoor het niet alleen de twee hoofd leveranciers betreft, maar ook op Windows en Macintosh computers kan worden gebruikt.

Het is min of meer de tegenhanger van de door NVIDIA bedachte CUDA core techniek, waarbij parallele processen in korte tijd, tegelijkertijd, kunnen worden verwerkt. Render programma's lenen zich voor dergelijke processen in het bijzonder. 3D-modeleer programma's nauwelijks, aangezien het daar om seriële processen gaat. Het ene proces volgt het andere op, waardoor er geen tijdwinst kan worden geboekt indien over een goede OpenCL compatibele kaart wordt beschikt.

Bij render programma's is het render proces redelijk gemakkelijk in stukken op te delen, waardoor de uitkomst, de uiteindelijke rendering vrijwel parallel kan worden berekend, hetgeen een forse tijdwinst met zich meebrengt.

OpenCL komt van oorsprong bij Apple vandaan en wordt lang niet zo goed ondersteund en gedocumenteerd als dat bij NVIDIA met CUDA cores het geval is. Terwijl Apple zich de laatste tijd voornamelijk zijn computers met de goedkopere AMD kaarten uitrust, die niet met CUDA cores overweg kunnen. Ligt het voor de hand om dan juist met vol in te zetten op OpenCL. Dat gebeurt echter onvoldoende. Sterker ze hebben de support van de Khronos Group aangaande OpenGL en OpenCL opgezegd.


The open standard for parallel programming of heterogeneous systems

https://www.khronos.org/opencl/

OpenCL is the first open, royalty-free standard for cross-platform, parallel programming of modern processors found in personal computers, servers and handheld/embedded devices. OpenCL (Open Computing Language) greatly improves speed and responsiveness for a wide spectrum of applications in numerous market categories from gaming and entertainment to scientific and medical software.

OpenCL provides vendor optimaized cross-platform ,cross-vendor access to hetegrogeneous compute resources.

Implementers of OpenCL

Intel
Texas Instruments
( Apple, Inc.)
NVIDIA Corporation
MediaTek Inc
QUALCOMM
AMD
Altera Corporation
Vivante Corporation
Xilinx, Inc.
ARM Limited
Imagination Technologies
STMicroelectronics International NV
IBM Corporation
Creative Labs
Samsung Electronics

 

OpenCL 2.1

The OpenCL 2.1 provisional specification and header files are available in the Khronos Registry

Post a comment on the OpenCL 2.1 feedback thread on the Khronos forums

File a bug in the Khronos Bugzilla system under OpenCL 2.1 - good for detailed fixes and error founds in the specification.


https://nl.wikipedia.org/wiki/OpenCL

OpenCL werd door Apple bij de Khronos Group voorgesteld als open standaard, zoals OpenGL en OpenAL, standaarden voor respectievelijk 3D-computergraphics en 3D-geluid. Op 16 juni 2008 werd de Compute Working Group opgericht bij Khronos Group met als doel met standaardiseren van berekeningen op heterogene data (data van allerlei bronnen) en parallelle berekeningen op de CPU en de GPU.[2] Op 9 december 2008 werd versie 1.0 van de standaard uitgebracht.[3] Op dezelfde dag kondigde NVIDIA ook aan deze versie geheel te zullen ondersteunen.[4] Op 12 december 2008 werd OpenCL door AMD en NVIDIA voor het eerst gedemonstreerd op SIGGRAPH Asia 2008.

Aan OpenCL wordt meegewerkt door allerlei bedrijven, zoals Activision, Blizzard, AMD, (Apple verleende medewerking in het verleden), Electronic Arts, Ericsson, IBM, Intel, Motorola, Nokia, NVIDIA, Samsung en Texas Instruments.

OpenCL is uitgebracht in Mac OS X 10.6 Snow Leopard.[5]

Sinds de versie 10.10 bevat ook Ubuntu ondersteuning voor OpenCL applicaties.[6] (en onofficieel sinds 9.10 [7])

 

Toepassingen

OpenCL kan toegepast worden op gebieden waarbij de rekenkracht van de grafische kaart een prestatievoordeel biedt. Voorbeelden zijn: simulaties van vloeistoffen, beeldbewerking, wiskundige operaties (vb. Fast Fourier Transform), medische beeldverwerking en computerspellen. Het aantal toepassingen neemt snel toe, waaronder hybride rekenmodellen, samen met de CPU.

API

Een andere variant op de OpenCL is OpenCL-API. De OpenCL-API zorgt voor functies die toegang geven tot applicaties om parallel computer taken te beheren. Het somt de openCL capabele hardware op in een systeem en stelt ze klaar voor gebruik van datastructuren tussen applicaties en OpenCl. Het controleert ook de compilatie en de indiening van kernels naar de GPU. Het heeft ook een rijke set aan functies die wachttijden beheren en ook synchronisatie.


OpenCL specifications version 2.0

https://www.khronos.org/registry/cl/specs/opencl-2.0.pdf

286 pages

Platform model

One host plus one or more copute devices each with one or more compute units composed of one or more processing elements.

 


AMD

Intro to OpenCL tutorial

http://developer.amd.com/tools-and-sdks/ope
ncl-zone/opencl-resources/introductory-tutorial-to-opencl/

OpenCL is a young technology, and, while a specification has been published (www.khronos.org/registry/cl/), there are currently few documents that provide a basic introduction with examples. This article helps make OpenCL easier to understand and implement.


Hands on OpenCL

An open source two-day lecture course for teaching and laerning OpenCL

https://handsonopencl.github.io/


homepage

omhoog