
Hacking WebGL for GPGPU
(Praktikum), Diplomarbeit
Description
WebCL is not expected to come alive in the next few years. WebGL und GLSL ES are intended to provide basic graphic effects, but they fail in general purpose computations within a browser window. The goal is to create a framework for GPGPU computation using WebGL. It should allow easy setup, high expressive power and robust computations over various architectures. There are already many partial solutions spread over various blogs on the web, but there are also many unsolved tasks. The goal is to solve the missing problems and to create a unified framework.
There is a lower-level GPGPU abstraction for CUDA/OpenCL.
Task
The student should create a framework for GPGPU on the top of the WebGL. It should allow to write scripts or programs using a high-level programming language which supports parallel computations natively or by extension(s). The good choice would be a simple extension to Java(script). On compilation, the framework should separate the sequential and parallel parts of the program and generate several scripts: a control script + WebGL shaders which can be run inside of canvas of a webpage.
First part of the task is to create a script parser which checks validity, independence of variables, finds synchronization points in the script and decides on efficient parallel execution using WebGL. It should be integrated to an IDE (e.g. Eclipse or similar). The second part of the task is to create a library of snippets which assemble the generated shaders. There are many features not available to WebGL, which are required for general computing. The student should identify them and find workarounds to implement them.
Requirements
The tasks requires knowledge in most of the following areas:- Parallel computing
- Shader programming
- Computer arithmetics and numerics
- Programming launguages theory
- Compilers theory
Tools
Any computer with a WebGL enabled browser.Environment
Required: Java, OpenGL, GLSL, JavaScript and Ajax
Optional: Eclipse, WebGL-Inspector