https://github.com/internaut/mastersthesis-mobile-gpgpu
Prototypes for GPGPU on Android, using OpenCL, OpenGL ES 2.0 shaders, or RenderScript.
https://github.com/internaut/mastersthesis-mobile-gpgpu
android gpgpu image-convolution ios java ndk opencl prototype renderscript
Last synced: 8 months ago
JSON representation
Prototypes for GPGPU on Android, using OpenCL, OpenGL ES 2.0 shaders, or RenderScript.
- Host: GitHub
- URL: https://github.com/internaut/mastersthesis-mobile-gpgpu
- Owner: internaut
- License: bsd-2-clause
- Created: 2014-05-19T12:27:24.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2015-01-10T13:28:55.000Z (over 11 years ago)
- Last Synced: 2023-03-22T22:32:33.377Z (about 3 years ago)
- Topics: android, gpgpu, image-convolution, ios, java, ndk, opencl, prototype, renderscript
- Language: C
- Size: 27.7 MB
- Stars: 56
- Watchers: 13
- Forks: 23
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Android GPGPU Testing Prototypes
*Update January 2015:* Please note, that I have released a library for OpenGL ES 2.0 based GPGPU for Android and iOS systems -- [ogles_gpgpu](https://github.com/internaut/ogles_gpgpu).
This repository contains some of the prototypes that I developed during my master's thesis -- "Parallel Computing for Digital Signal Processing on Mobile Device GPUs." More information about my thesis and the PDF is available on [my website](http://mkonrad.net/projects/mastersthesis_mobile_gpgpu.html).
These prototypes test different algorithms (e.g. image convolution, Hough transform) with different GPGPU technologies and give report about the execution time of individual processing steps. The following technologies are assessed:
* OpenCL (projects are prefixed with "Cl")
* OpenGL ES 2.0 shaders (projects are prefixed with "Gl")
* Android RenderScript (projects are prefixed with "Rs")
For details and results, please refer to the [project page on my website](http://mkonrad.net/projects/mastersthesis_mobile_gpgpu.html).
Unfortunately, the code is not very well documented because of the general time pressure during writing a master's thesis. Nevertheless, I hope that this helps people who want to get started with GPGPU on mobile devices.
The code has been tested with a Nexus 10 running Android 4.2.1. Please note that OpenCL support is not available on most devices (see p. 20 of my master's thesis) and requires manual setup (see [this post](http://sweetpea.tentacle.net/blog/opencl-on-nexus-4/) and [that post](http://www.openclblog.com/2013/02/opencl-on-nexus-10-part-1.html)).
# Available Prototypes
* *ClAudio* -- OpenCL-driven simple real-time sound synthesis
* *ClImageProc* -- OpenCL-driven image convolution and Hough transform with kernel generator
* *CvMarkerDetect* -- Marker based augmented reality prototype based on OpenCV and partly accelerated on the GPU via OpenGL ES 2.0 shaders
* *GlImageProc* -- OpenGL ES 2.0 shader driven image convolution with kernel generator (uses Java API)
* *GlImageProcNative* -- OpenGL ES 2.0 shader driven image convolution, thresholding and Parallel Coordinate space based Hough transform (uses NDK API)
* *RsImageProc* -- Android RenderScript driven image convolution (limited functionality, crashes)
# LICENSE
Licensed under BSD 2-Clause license. See the file `LICENSE`.