Share
VIDEOS 1 TO 50
WebCL Demos in SIGGRAPH 2014
WebCL Demos in SIGGRAPH 2014
Published: 2014/12/04
Channel: Hyeon Seok Jung
WebCL and WebGL interactions demo
WebCL and WebGL interactions demo
Published: 2011/09/12
Channel: Frédéric Langlade-Bellone
Many particles flow simulation (WebCL)
Many particles flow simulation (WebCL)
Published: 2011/10/27
Channel: regis portalez
Louco de refri e os Critinos - bumbum balão  (webcl
Louco de refri e os Critinos - bumbum balão (webcl
Published: 2017/04/07
Channel: Souza Divulga
Nokia WebCL prototype
Nokia WebCL prototype
Published: 2011/05/03
Channel: Tomi Aarnio
Enhancing HTML5 Gaming using WebCL
Enhancing HTML5 Gaming using WebCL
Published: 2014/04/20
Channel: TIZEN Indonesia
WebCL comparative tests
WebCL comparative tests
Published: 2012/05/04
Channel: João
Web app graphics with WebCL
Web app graphics with WebCL
Published: 2015/05/22
Channel: Crosswalk Project
SPH in WebGL (with WebCL interop)
SPH in WebGL (with WebCL interop)
Published: 2014/08/28
Channel: Yu Wang
Chromium-WebCL running Superconductor demos
Chromium-WebCL running Superconductor demos
Published: 2014/02/21
Channel: ScalableVision
OpenCL to WebCL with Emscripten (QJulia demo)
OpenCL to WebCL with Emscripten (QJulia demo)
Published: 2013/08/01
Channel: anthony liot
OpenCL to WebCL with webcl-translator (ocltoys jugCLer Demo)
OpenCL to WebCL with webcl-translator (ocltoys jugCLer Demo)
Published: 2013/10/29
Channel: anthony liot
WebCL talk @LyonJS, 2012/05/22
WebCL talk @LyonJS, 2012/05/22
Published: 2012/11/27
Channel: Frédéric Langlade-Bellone
WebCL in Firefox NBody demo
WebCL in Firefox NBody demo
Published: 2011/07/22
Channel: Adrien Plagnol
Firefox WebCL : Partying Particles [Demonstrations}
Firefox WebCL : Partying Particles [Demonstrations}
Published: 2012/05/23
Channel: Frédéric Langlade-Bellone
OpenCL to WebCL with Emscripten (oclNbody Nvidia demo)
OpenCL to WebCL with Emscripten (oclNbody Nvidia demo)
Published: 2014/01/20
Channel: anthony liot
Web app graphics without WebCL
Web app graphics without WebCL
Published: 2015/05/22
Channel: Crosswalk Project
OpenCL to WebCL with Emscripten (oclFilter Nvidia demo)
OpenCL to WebCL with Emscripten (oclFilter Nvidia demo)
Published: 2014/01/30
Channel: anthony liot
WebCL fluid demo (WebKit Vs Firefox)
WebCL fluid demo (WebKit Vs Firefox)
Published: 2014/05/23
Channel: anthony liot
OpenCL to WebCL with Emscripten (fluid demo)
OpenCL to WebCL with Emscripten (fluid demo)
Published: 2014/03/26
Channel: anthony liot
SPH - WebCL - WebGL
SPH - WebCL - WebGL
Published: 2014/08/08
Channel: BiancaWong
WebCL in Firefox simple demo
WebCL in Firefox simple demo
Published: 2011/07/19
Channel: Adrien Plagnol
Firefox WebCL : Partying Particles [Introduction}
Firefox WebCL : Partying Particles [Introduction}
Published: 2012/05/23
Channel: Frédéric Langlade-Bellone
Particle System with Simple Boundary Condition (WebCL + WebGL)
Particle System with Simple Boundary Condition (WebCL + WebGL)
Published: 2011/09/24
Channel: teruhisa
SPH using WebCL+WebGL
SPH using WebCL+WebGL
Published: 2014/08/22
Channel: BiancaWong
JS  Вопросы
JS Вопросы
Published: 2016/04/13
Channel: jspro
Superconductor "Sunburst" demo in custom Chromium borwser with WebCL support
Superconductor "Sunburst" demo in custom Chromium borwser with WebCL support
Published: 2013/12/02
Channel: ScalableVision
OpenCL to WebCL with Emscripten (Mandelbulb demo)
OpenCL to WebCL with Emscripten (Mandelbulb demo)
Published: 2013/08/02
Channel: anthony liot
JQueryTO 2014: Ross McKegney
JQueryTO 2014: Ross McKegney
Published: 2014/03/18
Channel: jimicy
WebCL-WebGL Inter-Operations in a Custom Chromium Browser
WebCL-WebGL Inter-Operations in a Custom Chromium Browser
Published: 2013/11/08
Channel: ScalableVision
Samsung WebCL Demo untuk Aplikasi Tizen
Samsung WebCL Demo untuk Aplikasi Tizen
Published: 2012/05/06
Channel: TIZEN Indonesia
WebCL RayTraced quaternion julia
WebCL RayTraced quaternion julia
Published: 2013/05/03
Channel: anthony liot
DevFest Constance 2013: High Performance JavaScript
DevFest Constance 2013: High Performance JavaScript
Published: 2013/11/11
Channel: GDG Bodensee
Superconductor linegraph_3d demo running in custom Chromium browser with WebCL support
Superconductor linegraph_3d demo running in custom Chromium browser with WebCL support
Published: 2013/12/09
Channel: ScalableVision
Performat UI limitations with  WebCL  And  Web Workers
Performat UI limitations with WebCL And Web Workers
Published: 2013/12/12
Channel: Robert Lara III
8 - Neil Trevett - WebGL & WebCL
8 - Neil Trevett - WebGL & WebCL
Published: 2012/04/04
Channel: The Khronos Group
Transpiling C/C++ to JavaScript with Emscripten
Transpiling C/C++ to JavaScript with Emscripten
Published: 2016/03/17
Channel: Dave Voyles
PConlinepublicitario
PConlinepublicitario
Published: 2016/01/11
Channel: pconline webcl
SC11 OpenCL BOF - Tasneem Brutch, Samsung
SC11 OpenCL BOF - Tasneem Brutch, Samsung
Published: 2011/11/29
Channel: The Khronos Group
MC MK SP - Chavosa (Webclipe Oficial) (DJ Jorgin)
MC MK SP - Chavosa (Webclipe Oficial) (DJ Jorgin)
Published: 2015/01/28
Channel: LEGENDA FUNK
TLDR: Do You Want a Virtual Reality?
TLDR: Do You Want a Virtual Reality?
Published: 2014/03/20
Channel: LockerGnome Tech Geek Nerd Talk
Emscripten
Emscripten
Published: 2013/05/06
Channel: Aaron Dodson
OpenROAD :: Accelerate your World 2016
OpenROAD :: Accelerate your World 2016
Published: 2016/02/16
Channel: The Khronos Group
GPU Acceleration for the Web – State of the Union with Neil Trevett
GPU Acceleration for the Web – State of the Union with Neil Trevett
Published: 2014/10/01
Channel: John Wilson
Mc Davi - Vai Dar Briga (Lançamento 2017)
Mc Davi - Vai Dar Briga (Lançamento 2017)
Published: 2016/11/19
Channel: Canal Bomba Funk
OpenROAD :: Accelerate your World
OpenROAD :: Accelerate your World
Published: 2014/08/13
Channel: The Khronos Group
Premiacion de la Eliminatoria CNC Frikiplaza Morelia
Premiacion de la Eliminatoria CNC Frikiplaza Morelia
Published: 2016/06/22
Channel: Zerokun85
Marching Cubes in a browser
Marching Cubes in a browser
Published: 2014/11/25
Channel: Yu Wang
The BEST RSPS: Project Destiny 474 2007 Runescape Remake
The BEST RSPS: Project Destiny 474 2007 Runescape Remake
Published: 2013/01/28
Channel: LetsPlayRuneShiver
Project Destiny (Runescape 2007 Remake) - Let
Project Destiny (Runescape 2007 Remake) - Let's Play #2 Killing The KBD
Published: 2013/02/02
Channel: LetsPlayRuneShiver
NEXT
GO TO RESULTS [51 .. 100]

WIKIPEDIA ARTICLE

From Wikipedia, the free encyclopedia
Jump to: navigation, search
WebCL
WebCL Logo.svg
Developer(s) WebCL Working Group
Stable release
1.0 / March 19, 2014; 3 years ago (2014-03-19)[1]
Operating system Cross-platform
Type API
Website www.khronos.org/webcl/

WebCL (Web Computing Language) is a JavaScript binding to OpenCL for heterogeneous parallel computing within any compatible web browser without the use of plug-ins, first announced in March 2011. It is developed on similar grounds as OpenCL and is considered as a browser version of the latter. Primarily, WebCL allows web applications to actualize speed with multi-core CPUs and GPUs. With the growing popularity of applications that need parallel processing like image editing, augmented reality applications and sophisticated gaming, it has become more important to improve the computational speed. With these background reasons, a non-profit Khronos Group[2] designed and developed WebCL, which is a Javascript binding to OpenCL with a portable kernel programming, enabling parallel computing on web browsers, across a wide range of devices. In short, WebCL consists of two parts, one being Kernel programming, which runs on the processors (devices) and the other being JavaScript, which binds the web application to OpenCL. The completed and ratified specification for WebCL 1.0 was released on March 19, 2014.[2]

Since OpenCL is also used for parallel computing, WebCL is built to extend that to web browser. Both OpenCL and WebCL will have updates coming up, which can be a problem if the APIs of WebCL aren’t in sync with OpenCL. Also, starting an entirely new API would mean building everything from scratch considering the compatibility issues, which might take long as there could be many bugs.

Implementation[edit]

Currently, no browsers natively support WebCL. However, non-native add-ons are used to implement WebCL. For example, Nokia developed a WebCL extension.[3] Mozilla does not plan to implement WebCL in favor of OpenGL ES 3.1 Compute Shaders.

WebCL working draft[edit]

Example Code[edit]

The basic unit of a parallel program is kernel. A kernel is any parallelizable task used to perform a specific job. More often functions can be realized as kernels. A program can be composed of one or more kernels. In order to realize a kernel, it is essential that a task is parallelizable. Data dependencies and order of execution play a vital role in producing efficient parallelized algorithms. A simple example can be thought of the case of loop unrolling performed by C compilers, where a statement like:

for(i = 0; i< 3 ; i++)
	c[i] = a[i] + b[i];

can be unrolled into:

c[0] = a[0] + b[0];
c[1] = a[1] + b[1];
c[2] = a[2] + b[2];

Above statements can be parallelized and can be made to run simultaneously. A kernel follows a similar approach where only the snapshot of the ith iteration is captured inside kernel. Let’s rewrite the above code using a kernel:

__kernel add(__global float* a, __global float* b, __global float*c)
{
	int i = get_global_id(0);

	if(i<3)
		c[i] = a[i] + b[i];
}

Running a WebCL application involves the following steps:

  1. Allow access to devices and provide context
  2. Hand over the kernel to a device
  3. Cause the device to execute the kernel
  4. Retrieve results from the device
  5. Use the data inside JavaScript

Further details about the same can be found at[5]

Exceptions List[edit]

WebCL, being a JavaScript based implementation, doesn’t return an error code when errors occur. Instead, it throws an exception such as OUT_OF_RESOURCES, OUT_OF_HOST_MEMORY, or the WebCL-specific WEBCL_IMPLEMENTATION_FAILURE.[6] The exception object describes the machine-readable name and human-readable message describing the error. The syntax is as follows:

exception WebCLException : DOMException {
  DOMString name;              // A string representation of the numeric error code, e.g. "INVALID_VALUE"
  DOMString? message;          // An implementation-specific description of what caused the exception
};

From the code above, it can be observed that the message field can be a NULL value.

List of few other exceptions:

  1. INVALID_OPERATION – if the blocking form of this function is called from a WebCLCallback
  2. INVALID_VALUE – if eventWaitList is empty
  3. INVALID_CONTEXT – if events specified in eventWaitList do not belong to the same context
  4. INVALID_DEVICE_TYPE – if deviceType is given, but is not one of the valid enumerated values
  5. DEVICE_NOT_FOUND – if there is no WebCLDevice available that matches the given deviceType

More information on exceptions can be found in the specs document.[6]

There is another exception that is raised upon trying to call an object that is ‘released’. On using the release method, the object doesn’t get deleted permanently but it frees the resources associated with that object. In order to avoid this exception, ‘releaseAll’ method can be used, which not only frees the resources but also deletes all the associated objects created.

Security[edit]

WebCL, being an open-ended software developed for web applications, there is lot of scope for vulnerabilities in the design and development fields too. This forced the developers working on WebCL to give security the utmost importance. Few concerns that were addressed are:

  1. Out-of-bounds Memory Access: This occurs by accessing the memory locations, outside the allocated space. An attacker can rewrite or erase all the important data stored in those memory locations. Whenever there arises such a case, an error must be generated at the compile time, and zero must be returned at run-time, not letting the program override the memory. A project WebCL Validator,[7] was initiated by the Khronos Group (developers) on handling this vulnerability.
  2. Memory Initialization: This is done to prevent the applications to access the memory locations of previous applications. WebCL ensures that this doesn’t happen by initializing all the buffers, variables used to zero before it runs the current application. OpenCL 1.2 has an extension ‘cl_khr_initialize_memory’, which enables this.[6]
  3. Denial of Service: The most common attack on web applications cannot be totally eliminated by WebCL or the browser. OpenCL can be provided with watchdog timers and pre-emptive multitasking, which can be used by WebCL in order to detect and terminate the contexts that are taking too long or consume lot of resources. There is an extension of OpenCL 1.2 ‘cl_khr_terminate_context’ like for the previous one, which enables to terminate the process that might cause a denial of service attack.[6]

Related Browser Bugs[edit]

See also[edit]

References[edit]

  1. ^ "Khronos Releases WebCL 1.0 Specification". 
  2. ^ a b "Khronos Releases WebCL 1.0 Specification". Khronos Group. Retrieved March 19, 2014. 
  3. ^ "WebCL". Nokia Research. Retrieved May 6, 2012. 
  4. ^ "Crosswalk - WebCL Overview". 
  5. ^ "Accelerating web applications with OpenCL". 
  6. ^ a b c d "WebCL Specification". www.khronos.org. Retrieved 2016-09-14. 
  7. ^ "KhronosGroup/webcl-validator". GitHub. Retrieved 2016-09-14. 

External links[edit]

Disclaimer

None of the audio/visual content is hosted on this site. All media is embedded from other sites such as GoogleVideo, Wikipedia, YouTube etc. Therefore, this site has no control over the copyright issues of the streaming media.

All issues concerning copyright violations should be aimed at the sites hosting the material. This site does not host any of the streaming media and the owner has not uploaded any of the material to the video hosting servers. Anyone can find the same content on Google Video or YouTube by themselves.

The owner of this site cannot know which documentaries are in public domain, which has been uploaded to e.g. YouTube by the owner and which has been uploaded without permission. The copyright owner must contact the source if he wants his material off the Internet completely.

Powered by YouTube
Wikipedia content is licensed under the GFDL and (CC) license