- 博客(13)
- 资源 (9)
- 收藏
- 关注
原创 ncnn使用winograd的卷积实现条件及基本流程
NCNN的winograd卷积使用条件是:kernel为3x3,stride为1x1,kernel的扩展系数为1x1 输入和输出的channel个数大于等于32,小于等于128 bottom_blob padding后的blob 的width和height小于等于120Winograd的卷积实现主要有如下几个步骤:把kernel data进行扩充为8x8,并重新排列; 把bott...
2018-12-28 13:34:51 2303 1
原创 Winograd算法
Winograd算法描述如下:选择一个多项式,它的值要比大。然后,把它分解为k+1个互质的实系数多项式相乘,例如, 设。求解,得到。 计算出 和 ,这里,i=0,1,...,k 。 计算出 , 这里,i=0,1,...,k 。 通过使用,计算出。 完成。就是的乘积。...
2018-12-26 15:00:36 1643
原创 中国剩余定理
中国剩余定理,在给定模数和求模后的余数,且模数是质数,且被求模的数是小于所有模数积的正整数,则可以唯一确定该正整数。中国剩余定理数学描述如下:在给定对于,,它标识“c除以模数后的余数”,这里的模数是两两互质的。那么,可以在范围内可以得到唯一的正整数c,,mod是求模运算。这里,,,是模 的数论倒数( 为 模 意义下的逆元),即,可以通过公式求得。其中,GCD标识“ gr...
2018-12-26 11:18:57 177
原创 ncnn conv5x5s1_neon的aarch64的汇编解析,做的还是蛮不错的,给NCNN点赞
000000000000e470 <_ZN4ncnnL14conv5x5s1_neonERKNS_3MatERS0_S2_S2_RKNS_6OptionE>: e470: a9a97bfd stp x29, x30, [sp,#-368]! //把x29和x30存放到[sp0-368], sp = sp0-368 e474: 91...
2018-12-25 16:10:50 2403
原创 ncnn conv5x5s1_neon的非NEON实现解析
函数: static void conv5x5s1_neon(const Mat& bottom_blob, Mat& top_blob, const Mat& _kernel, const Mat& _bias, const Option& opt)说明:这个卷积实现有三个分支,使用NEON aarch64指令的分支, 使用NEON arm32...
2018-12-20 15:23:31 1159
原创 基于块的矩阵相乘与常规的相乘的对比试验
因为基于块的矩阵相乘会比较好的利用缓存机制,作如下试验,测试一下性能。测试代码如下: #include <stdio.h> #include <iostream> #include <string> #include <malloc.h> #include <memory.h> #in...
2018-12-17 17:56:25 213
原创 NEON的Registers, vectors, lanes and elements
NEON的Registers, vectors, lanes and elementsNEON指令和浮点指令使用相同的寄存器文件,称之为“NEON和浮点寄存器文件”。它跟ARM core 寄存器文件完全区分开。NEON和浮点寄存器文件是一组可以作为32-bit、64-bit或128-bit的寄存器来访问。对于一个指令,哪个寄存器是可用的依赖于它是一个NEON指令还是一个VFP指令。本文把N...
2018-12-17 14:29:20 513
原创 比较NEON与其它的技术实现
比较NEON与其它的技术实现 NEON与ARMv6 SIMD的比较 ARMv6架构引入了一个很小的SIMD指令集,它能够并行执行打包到标准32-bit通用寄存器的多个16-bit或8-bit值。这些指令在没有增加额外计算单元情况下,提升了2倍或4倍的速度。ARMv6 SIMD 指令“UADD8 R0, R1, R2”并行执行一个32-bit寄存器里的4个8-bit值与另一个32-bit寄...
2018-12-14 17:41:08 1218
原创 ncnn2mem
文件:ncnn2mem.cpp说明 :将ncnn的proto文本文件转换成二进制文件,并基于layer name在ncnn的param中的顺序进行编号,生成*.id.h文件。 把ncnn的param和model二进制文件dump到*.mem.h文件中该操作比较简单,不做详细的描述;在ncnn模型加载时,会对这两种模型存储形式分别进行描述。如果需要将网络结构和模型合并为一个文件,需...
2018-12-11 17:36:09 2271
原创 caffe2ncnn
转化后的ncnn param文件 格式如下: 7767517 第一行是一个magic value,是个fixed value [layers count] [blobs count] ...
2018-12-11 16:27:30 1195
原创 android demo 的only position independent executables (PIE) are supported错误与GCC中的pie和fpie选项
在android 系统中,./ReadWriteProc.out ./fanbingbing.jpg ./fanbingbing.jpg <"./ReadWriteProc.out": error: only position independent executables (PIE) are supported.需要在编译中,设置-...
2018-12-05 14:10:59 1754
转载 普通程序员如何转向AI方向
普通程序员如何转向AI方向https://www.cnblogs.com/skying555/p/6245907.html 眼下,人工智能已经成为越来越火的一个方向。普通程序员,如何转向人工智能方向,是知乎上的一个问题。本文是我对此问题的一个回答的归档版。相比原回答有所内容增加。 一. 目的 本文的目的是给出一个简单的,平滑的,易于实现的学习方法,帮助 “普通” 程序员踏...
2018-12-03 11:32:42 110
epoll内核代码学习
2011-06-15
jcifs_java_implement_cifs
2011-03-21
linux qos的介绍和使用
2011-03-14
vnc软件client端
2009-04-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人