
引擎模块
1、数据层
Image 为一个RGBA32F格局的2D Array纹理,SSBO为一种vbo,
Program 为 着色器链接而成的 opengl program,NetInfo 由 proto 定义,用于规定收集构造。
在 shader 中,image 和 SSBO 示例如下:
layout(rgba32f, binding = 0) writeonly uniform highp image2DArray uOutput;//Imagelayout(rgba32f, binding = 1) readonly uniform highp image2DArray uInput;//Imagelayout(binding = 2) readonly buffer kernel { mat4 values[];} uKernel;//SSBO- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
2、算子层
包含各类layer的实现,如卷积,正则,内积(全连接),Softmax等。
每一个layer要负责申请本身的输出内存(image)。
3、构造层
根据 NetInfo 的信息,创建各类算子并构成DAG(有向无环图),执交运算并输出结不雅。

对象模块
包含一个构造转换器、参数初始化和拷贝对象。拷贝对象是比较轻易掉足的,因为卷积层和内积层的参数须要补零对齐及重排。
机能与效不雅
跟开源的 caffe-android-lib 比较
https://github.com/sh1r0/caffe-android-lib
库大年夜小
caffe-android-lib 11M
DeeplearningOGL 440K
全自立开辟的,毫无疑问要小很多很多。
运行效力
Oppo R9 (MT6755, GPU: Mali-T860)上的测试结不雅:
持续运行十次,去除第一次的结不雅(移动设备上一般都是动态调频的,第一次跑的时刻CPU/GPU的频率还没调起来,会比较慢)。
Lenet 收集:
caffe-android-lib:5.0~5.2ms(线程设为4)
DeeplearningOGL:3.6-3.8 ms
较CPU版本(包含了neon与多线程优化)晋升了 50%阁下的效力,已经大年夜大年夜超出预期了,在GPU更好的机械上(如mate8上)表示会更佳。
比拟于 CNNdroid 更是好很多了。

人像抠图的场景很流畅,且不须要隔帧计算。
【编辑推荐】
- 为什么 Linus Torvalds 偏爱x86而不是ARM架构
- 数据平滔喔赡计算才能:哪些GPU更合适深度进修和数据库?
- ARKit & OpenGL ES - ARKit 道理及实现
- 微办事架构:基于微办事和Docker容器技巧的PaaS云平台架构设计(微办事架构实施道理)
- 谈一下关于CQRS架构若何实现高机能
推荐阅读
比来几年,在DDD的范畴,我们经常会看到CQRS架构的概念。我小我也写了一个ENode框架,专门用来实现这个架构。CQRS架构本身的思惟其实异常简单,就是读写分别。是一个很好懂得的思惟。就像>>>详细阅读
地址:http://www.17bianji.com/lsqh/36068.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示