mastersthesis-mobile-gpgpu - Prototypes for GPGPU on Android, using OpenCL, OpenGL ES 2

  •        55

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. 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.

https://github.com/internaut/mastersthesis-mobile-gpgpu

Tags
Implementation
License
Platform

   




Related Projects

vexcl - VexCL is a C++ vector expression template library for OpenCL/CUDA

  •    C++

VexCL is a vector expression template library for OpenCL/CUDA. It has been created for ease of GPGPU development with C++. VexCL strives to reduce amount of boilerplate code needed to develop GPGPU applications. The library provides convenient and intuitive notation for vector arithmetic, reduction, sparse matrix-vector products, etc. Multi-device and even multi-platform computations are supported. The source code of the library is distributed under very permissive MIT license.

Chlorine - Dead Simple OpenCL

  •    C++

Chlorine is the easiest way to interact with OpenCL compatible devices. It is a header-only C++11 library that allows you to write cross-platform code that runs on GPUs without ever touching the complicated OpenCL API, leaving you free to write code that matters: kernels that process data. Chlorine is composed of just two headers: chlorine.hpp, and its dependency, the OpenCL C++ Bindings. To integrate Chlorine into your own project, install OpenCL; then add chlorine/include to your include paths and link with OpenCL. Chlorine also requires a compiler with C++11 support. An example of how to use Chlorine is below, or read a more detailed walkthrough if you prefer.

compute - A C++ GPU Computing Library for OpenCL

  •    C++

Boost.Compute is a GPU/parallel-computing library for C++ based on OpenCL. The core library is a thin C++ wrapper over the OpenCL API and provides access to compute devices, contexts, command queues and memory buffers.

Image Resizer GPGPU

  •    

Make images smaller, resizing and resampling with incredible performance, scalability and ease with features such as GPGPU processing and distributed computing.

Arraymancer - A fast, ergonomic and portable tensor library in Nim with a deep learning focus for CPU, GPU, OpenCL and embedded devices

  •    Nim

Arraymancer is a tensor (N-dimensional array) project in Nim. The main focus is providing a fast and ergonomic CPU, Cuda and OpenCL ndarray library on which to build a scientific computing and in particular a deep learning ecosystem. The library is inspired by Numpy and PyTorch. The library provides ergonomics very similar to Numpy, Julia and Matlab but is fully parallel and significantly faster than those libraries. It is also faster than C-based Torch.


js - turbo.js - perform massive parallel computations in your browser with GPGPU.

  •    Javascript

turbo.js is a small library that makes it easier to perform complex calculations that can be done in parallel. The actual calculation performed (the kernel executed) uses the GPU for execution. This enables you to work on an array of values all at once. turbo.js is compatible with all browsers (even IE when not using ES6 template strings) and most desktop and mobile GPUs.

Framework7 - Full Featured HTML Framework For Building iOS & Android Apps

  •    Javascript

Framework7 - is a free and open source mobile HTML framework to develop hybrid mobile apps or web apps with iOS & Android native look and feel. It is also an indispensable prototyping apps tool to show working app prototype as soon as possible in case you need to. The main approach of the Framework7 is to give you an opportunity to create iOS & Android apps with HTML, CSS and JavaScript easily and clear.

hashcat - World's fastest and most advanced password recovery utility

  •    C

hashcat is the world's fastest and most advanced password recovery utility, supporting five unique modes of attack for over 200 highly-optimized hashing algorithms. hashcat currently supports CPUs, GPUs, and other hardware accelerators on Linux, Windows, and macOS, and has facilities to help enable distributed password cracking. hashcat is licensed under the MIT license. Refer to docs/license.txt for more information.

neanderthal - Fast Clojure Matrix Library

  •    Clojure

Neanderthal is a Clojure library for fast matrix and linear algebra computations based on the highly optimized native libraries of BLAS and LAPACK computation routines for both CPU and GPU.. Read the documentation at Neanderthal Web Site.

emu - a language for programming GPUs, with a focus on ergonomics first and performance second

  •    Rust

⚠ Please note that while Emu 0.2.0 is quite usable, it suffers from 2 key issues. It firstly does nothing to minimize CPU-GPU data transfer and secondly it's compiler is not well-tested. These can be reasons not to use Emu 0.2.0. A new version of Emu is in the works, however, with significant improvements in the language, compiler, and compile-time checker. This new version of Emu should be released some time in Q4 of 2019. But unlike OpenCL/CUDA/Halide/Futhark, Emu is embedded in Rust. This lets it take advantage of the ecosystem in ways...

NyuziProcessor - GPGPU microprocessor architecture

  •    C++

Nyuzi is an experimental GPGPU processor hardware design focused on compute intensive tasks. It is optimized for use cases like blockchain mining, deep learning, and autonomous driving. This project includes a synthesizable hardware design written in System Verilog, an instruction set emulator, an LLVM based C/C++ compiler, software libraries, and tests. It can be used to experiment with microarchitectural and instruction set design tradeoffs.

GPGPU Programming Resources

  •    C++

GPGPU stands for General-Purpose computation on GPUs. This project maintains various libraries, utility classes, and programming examples intended to aid development of applications that use GPUs for general-purpose computation.

py-videocore - Python library for GPGPU on Raspberry Pi

  •    Python

This is work in progress project. Backward compatibility is not guaranteed. PyVideoCore is a Python library for GPGPU on Raspberry Pi boards. The Raspberry Pi SoC integrates Broadcom VideoCore IV graphics core. It has 12 quad processor units (QPU) which is a dual-issue 16 way (4 way pipelined and 4 way true) SIMD processor. Read the following guide thoroughly to study its architecture.

pesdk-android-demo - A fully customizable photo editor for your app.

  •    Java

The PhotoEditor SDK is a powerful and multifaceted tool which enables you to equip your Android application with high-performant photo editing capabilities. The PhotoEditor SDK is written in Java and can easily be customized to entirely blend with your CI and provide your users with the exact feature set your use-case requires. The SDK ships with a large variety of filters, covering all state of the art style- and mood settings that can be previewed in real-time. Unlike other apps that allow a live preview of filters, the PhotoEditor SDK even provides a live preview when using high-resolution images.

Mobile-Security-Framework-MobSF - Mobile Security Framework is an automated, all-in-one mobile application (Android/iOS/Windows) pen-testing framework capable of performing static analysis, dynamic analysis, malware analysis and web API testing

  •    Python

Mobile Security Framework (MobSF) is an automated, all-in-one mobile application (Android/iOS/Windows) pen-testing framework capable of performing static, dynamic and malware analysis. It can be used for effective and fast security analysis of Android, iOS and Windows mobile applications and support both binaries (APK, IPA & APPX ) and zipped source code. MobSF can do dynamic application testing at runtime for Android apps and has Web API fuzzing capabilities powered by CapFuzz, a Web API specific security scanner. MobSF is designed to make your CI/CD or DevSecOps pipeline integration seamless. Your generous donations will keep us motivated.

react-native-photo-view - Pinch-to-zoom view for React Native (both iOS and Android)

  •    Objective-C

Provides custom Image view for React Native that allows to perform pinch-to-zoom on images. Works on both iOS and Android. This component uses PhotoDraweeView for Android and MWPhotobrowser on iOS.

DeepBeliefSDK - The SDK for Jetpac's iOS Deep Belief image recognition framework

  •    Javascript

The SDK for Jetpac's iOS, Android, Linux, and OS X Deep Belief image recognition framework. This is a framework implementing the convolutional neural network architecture described by Alex Krizhevsky, Ilya Sutskever, and Geoffrey Hinton. The processing code has been highly optimized to run within the memory and processing constraints of modern mobile devices, and can analyze an image in under 300ms on an iPhone 5S. It's also easy to use together with OpenCV.

ratchet - Build mobile apps with simple HTML, CSS, and JavaScript components.

  •    CSS

Build mobile apps with simple HTML, CSS, and JS components. Take note that our master branch is our active, unstable development branch and that if you're looking to download a stable copy of the repo, check the tagged downloads.

AIToolbox - A toolbox of AI modules written in Swift: Graphs/Trees, Support Vector Machines, Neural Networks, PCA, K-Means, Genetic Algorithms

  •    Swift

Playgrounds for Linear Regression, SVM, and Neural Networks are available. Now available in both macOS and iOS versions. ###New - Convolution Program For the Deep Network classes, please look at the Convolution project that uses the AIToolbox library to do image recognition.

TinyCrayon-iOS-SDK - A smart and easy-to-use image masking and cutout SDK for mobile apps.

  •    Swift

A smart and easy-to-use image masking and cutout SDK for mobile apps. TinyCrayon SDK provides tools for adding image cutout and layer mask capabilities to your mobile applications.