# opengl-es-compute-shader-sample **Repository Path**: zhanyuan1/opengl-es-compute-shader-sample ## Basic Information - **Project Name**: opengl-es-compute-shader-sample - **Description**: 使用opengl es实现算子加速计算 - **Primary Language**: C++ - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2020-06-16 - **Last Updated**: 2023-03-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OpenGL ES Compute Shader Sample #### 介绍 使用gpu后端opengl es实现算子加速计算. 目前实现了opengl的加法算子。 #### 代码说明 * egl_wrapper.cc/h: egl初始化和关闭接口。EGL是opengl与底层窗口系统之间的接口。opengl渲染好的图形最终通过EGL接口下发到屏幕上进行显示。虽然我们只使用opengl的compute shader,即通用计算接口,但还是需要通过EGL来进行资源初始化,否则opengl会工作异常。 * gl_wrapper.cc/h:opengl es接口封装,主要包含数据在CPU和GPU内存之间的拷贝、GPU内存分配、创建compute shader实例等。 * gl_operator_add.cc:使用NHWC格式的加法运算实现。 * gles_sample.cc:测试程序。 #### 编译说明 本工程目标文件支持x86和arm平台运行,假设编译主机为Ubuntu 18.04: 1. 如果需要在x86上执行,请安装 ``` sudo apt install libgles2-mesa-dev libegl1-mesa-dev ``` 2. 如果需要在arm上执行,请安装最新Android NDK:下载并解压至任一目录,将以下命令添加至环境变量 ``` export ANDROID_NDK=/your/dir/android-ndk-r21 ``` 3. 默认使用x86平台,如需要编译arm版本,请在build.sh中将PREDICT_PLATFORM变量设置为 ``` PREDICT_PLATFORM="arm64" ``` 4. 编译 ``` chmod +x build.sh ./build.sh ``` #### 使用说明 编译完成后会生成build/gles_sample可执行文件,放到对应目标平台执行即可。