GLSL
juebai123
这个作者很懒,什么都没留下…
展开
-
GLSL层卷积(宽*高*输出通道数)(计算单位数)
增加计算单位数,可以加快计算速度。计算单位 从 iWidth * iHeight 增加到 iWidth * iHeight * outNum: mNumGroupsX = iWidth; int xSize = iHeight; mNumGroupsY = outNum; mNumGroupsZ = 1;//inNum; if (iHeight > 1024) printf("图片高度太大,不支持\n"); else textureParameters.shader_sou原创 2020-10-15 13:08:13 · 478 阅读 · 0 评论 -
GLSL层卷积(宽*高)(计算单位数)
这一步,用计算着色器来作层卷积接口于前面相同。这里将一个“缓存对象”来传送全部输入数据,卷积核,并回收卷积结果(前面部分结果,中间输入数据,后面部分卷积核)。用不到纹理,FBO(屏幕外帧缓冲区)。启用计算单位: mNumGroupsX = iWidth; mNumGroupsY = iHeight; mNumGroupsZ = 1;分配数据空间,并传送数据: //glGenBuffers(1, &buffOut);//在初始化中生成 glBindBuffer(原创 2020-10-12 10:47:16 · 705 阅读 · 0 评论 -
图像处理(使用计算着色器)
前面层卷积(使用片元着色器)还不够快,这里准备使用计算着色器。先实现一个小目标。使用计算着色器作图像处理。即一个卷积。以《GPGPU基础(五):使用compute shader进行通用计算及示例》为模板。有个疑问:该文为什么要计算2次,并使用了3个纹理呢?终于在《OpenGL编程指南(第八版)-中文扫描版》的第12.4.2章《计算着色器-示例-图像处理》找到答案:第一次对图像水平处理,第二次垂直处理。所以我们去掉哪个中间纹理,只要两个纹理(输入,输出),一次计算(卷积)就可以了。先载入原创 2020-10-04 19:47:22 · 963 阅读 · 1 评论 -
GLSL层卷积(缓存对象)
下载了《OpenGL编程指南(第八版)-中文扫描版》以及《OpenGL编程指南 VS2015代码》。该例子工程包已经设置好了 freeglut,glew 等库,只要安装了vs2015,马上就可以用,非常方便。在第11课《11.2-01BufferObject》中讲了:着色器可以对“缓存对象”读写。我们的层卷积中,也用一个“缓存对象”传送卷积核,并回收卷积结果(前半部分结果,后半部分核)。//核数据,核宽,输入维度,输出维度,偏置数据,输入数据,输出数据,是否激活//核大小:kw * kw原创 2020-09-21 19:23:02 · 326 阅读 · 0 评论 -
GLSL层卷积(纹理数组)
在《OpenGL-纹理数组》一文中看到纹理数组只用一个纹理对象就可以加载多个通道数据。在《学一学, Texture Array纹理数组》一文可以下载一个程序包,可以看到纹理数组的运用细节。在层卷积中可以减少着色器运行次数。把输入的多通道数据载入一个纹理数组中:int LoadGLTextures_arrayG(float *pTexData,int num){ glGenTextures(1, &texture); //绑定纹理 glBindTexture(原创 2020-09-15 09:21:30 · 733 阅读 · 0 评论 -
GLSL层卷积(先清理)
测试了《GPU编程之GLSL(五)——二维离散卷积》一文的程序,发现先运行哪个“clean.frag”,程序总运行时间更短,就以该文为模板来运行层卷积。先把《glsl着色器实现多重纹理与帧缓冲对象(fbo)》一文的着色器出错提示部分复制过来(不然,将不能调试着色器)。接口和前面相同,为了区别加一个G:void conv_initG(int argc, char* argv[],int h,int w)//核数据,核宽,输入维度,输出维度,偏置数据,输入数据,输出数据,是否激活//核大小:原创 2020-09-14 09:51:16 · 186 阅读 · 0 评论 -
GLSL层卷积(中间结果回传)
在Pudn.com 复制了一个 ”helloGPGPU_GLSL.cpp“ ,在《GPU通用计算——从Hello GPGPU开始》一文中有中文注解。该程序中 使用了一个纹理,用来保存着色器中间数据并再传着色器。这里也用1个纹理来回传中间结果相加,其它7个纹理用于卷积。生成一个空数据纹理://加法纹理void initadd(){ float * TexData= new float[imgWidth * imgHeight]; memset(TexData, 0,img.原创 2020-09-12 19:24:41 · 297 阅读 · 0 评论 -
GLSL层卷积
前面只是完成了一个0至1的进程,谈不上有多快。先了解下网络卷积层的特性吧,这样才有针对性。原创 2020-08-22 14:40:37 · 376 阅读 · 0 评论 -
使用 GLSL 运行网络(GLSL卷积)
使用GPU(OpenGL)来运行网络应该会快一点吧。原创 2020-08-17 08:45:10 · 796 阅读 · 0 评论