OpenGL 3.2GLSL 1.502010 年引入着色器存储缓冲区对象(SSBO)、细分着色器(Tessellation Shader)预览。 OpenGL 4.1GLSL 4.102011 年支持计算着色器(Compute Shader)、着色器存储缓冲区(SSBO)。
数据层 Image 为一个RGBA32F格式的2D Array纹理,SSBO为一种vbo, 全称为GL_SHADER_STORAGE_BUFFER,用于存储自定义类型的数据(主要就是卷积层和内积层的参数 在 shader 中,image 和 SSBO 示例如下: ? 2. 算子层 包括各类layer的实现,如卷积、正则、内积(全连接)、Softmax等。
YpVzwlsxETfwMMJmJVt/Ihxj/5LPRa9M+vAhmMb1Nj58FLG3UMVpp9pBwJCU4xAR1ou74N tSwfrTdjOhzMGPen+Lnht5/P6/4rH74cJ9sSbO6DrKR8sNOZZYxql7RHs
OpenGL 4.3将此称为着色器存储缓冲区对象 (SSBO)。这两个名称都以自己的方式描述。像素着色器以任意顺序并行运行,并且该存储缓冲区在它们之间共享。
OpenGL没有指定GL类型和共享变量存储之间的精确映射,尽管您可以使用std140布局规则和UBO / SSBO大小作为一般准则。
有个优点,用户可以直接获取opengl的纹理数据作为输入,传给TFLite解释器,避免从opengl->cpu->tflite解释器这个过程的数据拷贝,只需要将输入转换为OpenGL着色器存储缓冲区对象(SSBO