- Aim of the Project
- Clone and build the Repository
- Sharing internet connection from linux to BeagleBone Black
- File Structure
- Programming Languages used
- Result
- Triangle using GLUT library
- Rectangle using GLUT library
- Matrix Multiplication
- Transpose of a matrix
- Addition of a matrix with its own transpoe
- Multiplication of Array using Scalar
- Contributors
- References and Acknowledgment
- License
Working on a library for performing GPGPU (General Purpose GPU) computations on BeagleBone Black using OpenGLES
Clone the repository:
git clone https://github.com/Pratham-Bot/GPGPU-with-GLES.git
Create the build folder and enter it:
mkdir GPGPU-with-GLES/cmake-build && cd GPGPU-with-GLES/cmake-build
Run the cmake command:
cmake ..
If running on your host, you need to specify the location of EGL and OpenGL ES libraries:
cmake .. -DEGL_INCLUDE_DIR=/usr/include/ -DGLES2_INCLUDE_DIR=/usr/include
Building the repository
make
Internet connection can be established as shown here
📦Eklavya--GPGPU with GLES
┣ 📂benchmark #contain benchmarking applications to compare performance bbetween CPU and GPU
┣ 📂cmake #contains open2..cmake and config file
┣ 📂exmaples #contains .c code for computations
┃ ┗ 📂array_add_fixed16 #contains array addition .c file
┃ ┗ 📂array_add_float #contains array addition .c file
┃ ┗ 📂array_x4 #contains array multilication code by 4
┃ ┗ 📂array_x9 #contains array multilication code by 9
┃ ┗ 📂chain_conv2d_float #contains 2D convolution example
┃ ┗ 📂chain_simple_float #contains 2D convolution example
┃ ┗ 📂fir_conv_float
┃ ┗ 📂mult_mat_int #conatin logic for mmatrix multiplication
┃ ┗ 📂testing #conatins tetsing file for benchmarking
┣ 📂include #launch files
┣ 📂shaders #contains .fs code to be performed on GPU
┣ 📂src #contains source files
┗ 📂include
┣ 📜.gitignore
┣ 📜CMakeLists.txt
┣ 📜LICENSE
┗ 📜README.md
- C
- GLSL
-
GLES 2.0
-
GLFW- Graphics Library Framework (GLFW) allows users to create and manage OpenGL windows, while handling keyboard, mouse and joystick inputs. GLFW and FreeGLUT are alternatives to the same functions.
-
GLUT- The OpenGL Utility Toolkit Library provides high level utilities to simplify OpenGL programming, especially in interacting with the Operating System. GLUT is designed for simple to moderately complex programs focused on OpenGL rendering.
-
EGL- EGL (Embedded System Graphics Library) is the interface between OpenGL ES and the underlying native display platform.
-
GLEW- GLEW (OpenGL Extension Wrangler Library) is a cross-platform C/C++ extension loading library that provides an effcient mechanism to determine which extensions are supported on the platform.
-
GLAD- GLAD allows the user to include only those extensions which they wish to, leading to faster compile times. GLEW can detect which dependencies are available at compile time, leading to better adaptability.
-
Transpose of a matrix
- SRA VJTI Eklavya 2022.
- Referred This to understand OpenGL functions.
- Referred This to understand matrix multiplication code base.
- This website helped us to get the conceptual knowledge of OpenGL.
- Offical Website of OpenGL.
- PowerSDK Installations guide
- Special Thanks to our mentors Krishna Narayanan and Kunal Agarwal for guiding us throughout the Eklavya Journey.