Mentors: Hunyue Yau?
This project is currently just a proposal.
Please complete the requirements listed on the ideas page and fill out this template.
School: Karlsruhe Institute of Technology
Primary language (We have mentors who speak multiple languages): German, English
Typical work hours (We have mentors in various time zones):5AM - 3PM US Eastern
Previous GSoC participation: I love the idea of open source and especially open hardware.
About your project
Project name: GPGPU with OpenGL ES
The beagleboard ARM A8 Processor has an integrated graphics accelerator from PowerVR (SGX530 or 550). As the name implies this chip is mainly used and built for graphics rendering, but as the time shows there exist alot of other applications that profit from the parallel nature of graphic chips, like deep learning, bitcoin mining or analyzing DNA sequences. This is called GPGPU (general purpose computations on graphic processing units) and is done with api's like OpenCL or CUDA. The PowerVR SGX only supports the OpenGL ES 2.0 specification (but there also exist a propiertary openCL driver from IT https://university.imgtec.com/fun-with-beagle-video/ ??), this api is heavily targeted towards graphics rendering, but can also be exploited for general purpose computations. The goal of this project is, to show how to use the mostly unused graphics accelerator chip for general purpose computations using the OpenGL ES api. Therefore I will create samples, showing how to use the GPGPU and also show the timing difference when doing computations on CPU vs GPU. The samples could be convolution or matrix multiplication. For this project we target the AM335x family of beagleboards (pocketbeagle), why??
Provide a development timeline with a milestone each of the 11 weeks and any pre-work. (A realistic timeline is critical to our selection process.)
|Mar 29||Applications open, Students register with GSoC, work on proposal with mentors|
|Apr 13||Proposal complete, Submitted to https://summerofcode.withgoogle.com|
|May 17||Proposal accepted or rejected|
|Jun 07||Pre-work setup OpenGL ES drivers for beagleboard, Coding officially begins!|
|Jun 17||researching GPGPU on beagleboard, Introductory YouTube video|
|June 24||create matrix multiplication sample program|
|June 30||create convolution sample program (separable and non-separable convolution)|
|July 12 18:00 UTC||clean up code, fix bugs , Mentors and students can begin submitting Phase 1 evaluations|
|July 16 18:00 UTC||Phase 1 Evaluation deadline|
|July 23||measure timings between CPU / GPU|
|July 30||create tutorial on elinux how to do to GPGPU (is this a good place?)|
|Aug 06||add one more sample if time allows (vector reduction, compute histogram...)|
|August 10||finish everything, Completion YouTube video|
|August 16 - 26 18:00 UTC||Final week: Students submit their final work product and their final mentor evaluation|
|August 23 - 30 18:00 UTC||Mentors submit final student evaluations|
Experience and approach
In 5-15 sentences, convince us you will be able to successfully complete your project in the timeline you have described.
What will you do if you get stuck on your project and your mentor isn’t around?
If successfully completed, what will its impact be on the BeagleBoard.org community? Include quotes from BeagleBoard.org community members who can be found on http://beagleboard.org/discuss and http://bbb.io/gsocchat.
Please complete the requirements listed on the ideas page. Provide link to pull request.
Is there anything else we should have asked you?