小白也能看明白的openMP教程

OpenMP是一种用于共享内存并行系统的多线程程序设计方案,支持的编程语言包括C、C++和Fortran。OpenMP提供了对并行算法的高层抽象描述,特别适合在多核CPU机器上的并行程序设计。编译器根据程序中添加的pragma指令,自动将程序并行处理,使用OpenMP降低了并行编程的难度和复杂度。...

2019-08-16 14:38:58

阅读数 26

评论数 0

程序优化的要点——如何写出高效的代码?

程序优化的指导思想有3点: 选择合适的算法和数据结构; 编写出编译器能够有效优化以转化成高效可执行代码的源代码; 将大量的计算(比如矩阵运算)分为多多个部分进行多任务并行; 程序优化的几个入手点: 消除不必要的工作:如不必要的函数调用、条件测试和内存引用; 利用处理器的指令并行能力,...

2019-07-16 15:28:43

阅读数 13

评论数 0

cache line大小

我们都知道cache的作用是把主存储器的数据到寄存器的一个缓冲区,被称为高速缓存,其能够大大提高程序的性能,那么cache的性能受cache line size的影响很大。cache line大小到底有多大,其实它和和内存的一个参数关系比较大,就是ddr2,ddr3,ddr4: ddr2内存的c...

2019-07-12 16:53:43

阅读数 72

评论数 0

负数怎么用补码、反码、原码表示

所谓编码,就是一种规则,同样补码也是一种规则,它的意义在于,我们怎样从一串0和1组成的排列中解释出这这串0和1表示的数字是多少。 补码的规则是:假如变量的位长度是w,补码令最高位的权重为,其它位的权重都是正。比如一个8位的有符号数二进制是10000010,那它的有符号表示应该是。 很多人不明白...

2019-06-25 09:24:48

阅读数 32

评论数 0

c语言中左移、右移要注意的细节

左移规则:高位丢弃,低位补0 右移规则: 右移分为逻辑右移和算数右移,几乎所有的编译器都对有符号数使用算数右移,而对于无符号数必须用逻辑右移。 逻辑右移:高位补0,低位丢弃; 算数右移:高位补最高有效位的值,低位丢弃; 当移位的位数超过改变量类型的位数时,比如变量占用的内存有w...

2019-06-24 17:39:31

阅读数 67

评论数 0

c语言中位运算之布尔运算

c语言中位运算中的布尔运算有:&、|、~、^ &:按位与 |:按位或 ~:按位非 ^:按位异或,相同为0,相异为1。 计算规则如下: 位的逻辑运算的作用: 使用位向量做集合编码; 使用位向量做掩码mask; 使用异或的性质进行变量的交换值;...

2019-06-24 17:15:25

阅读数 48

评论数 0

寻址和字节顺序(大小端模式)

有些数据类型的内存会跨越多个字节,如int型就占据4个字节。对于这种对象(也就是变量),必须建立两个规则: 1、对象的地址是什么? 2、对象的数据在内存中是怎么排列的?也就是低地址是存储数据的低位还是高位? 比如有个int类型的变量x,其所占用的内存是0x100, 0x101, 0x10...

2019-06-24 16:47:50

阅读数 21

评论数 0

如何理解C语言32个关键字

C语言中总共有32个关键字,所谓关键字就是我们在定义变量名或者函数名的时候要避开这些关键字。 为了更好的理解这些关键字我根据它们的功能分为6种类型: 1 简单数据类型的关键字 char, short, int, long, float, double 2 复杂数据类型的关键字 struc...

2019-05-24 10:30:45

阅读数 21

评论数 0

程序员修炼之道总结1--注重实效的哲学

1 我的源码让猫给吃了:要有责任心,在为失败找借口之前先把接口处理掉; 2 软件的熵:熵的概念来自于物理学,指某个系统中“无序”的总量。热力学定律决定了熵总是倾向于最大化,当软件中的无序增长时,程序员称之为“软件腐烂”。“破窗户理论”告诉我们不要留着破窗户不修。 3 石头汤与煮青蛙:在你准备催...

2018-07-25 11:36:52

阅读数 34

评论数 0

ARM指令详细解释

本人喜欢编程,喜欢计算机,从事算法优化工作,常年使用arm neon,如果有志同道合的朋友,扩展IT圈人脉,遇到技术问题共同探讨,共同进步,欢迎添加微信 mybc_0,或者二维码 转自: http://blog.csdn.net/chshplp_liaoping/article/detai...

2018-03-19 11:20:32

阅读数 1031

评论数 0

neon介绍及建议

点击打开链接http://blog.csdn.net/xiewenhao12/article/details/52583694使用NEON主要有四种方法:NEON优化库(Optimized libraries)向量化编译器(Vectorizing compilers)NEON intrinsics...

2018-03-13 16:41:39

阅读数 137

评论数 0

学习计划(20180301)

学习计划:1, 学习了解图像各种格式(NV21,i420,Sensor RAW,等),学习了解图像处理的各种基本算法 (box 滤波,gaussian 滤波,积分图,插值上下采样等)2, 学习了解SIMD向量化的概念和方法等基础知识。如果以前没有向量化的基础,可以先 从ARM NEON入门,建议...

2018-03-04 16:00:09

阅读数 107

评论数 0

图像格式详解

1, 学习了解图像各种格式(NV21,i420,Sensor RAW,等)点击:http://www.cnblogs.com/azraelly/archive/2013/01/01/2841269.htmlYUV定义:分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而...

2018-03-03 23:02:23

阅读数 152

评论数 0

对编程注释的理解

注释写得很出色很不容易,但是写得糟糕却是人人可为止,糟糕的注释反而会帮倒忙,给阅读代码的程序员指向了一个错误的方向。很多技术文档中,已经有很全面的说明,这里不再多说,下面仅说明下自己的一些见解。 怎样才能写出出色的注释 1、同一个工程中,注释的格式要统一,因为代码阅读器对不同位置的注释语句,显...

2018-02-27 08:21:34

阅读数 510

评论数 0

联合体的正确使用方式

工作半年多了,一直还没用到union类型,所以一直是认为union没有什么特别的用处,甚至感觉没有存在的意义。直到有一天看到了union和位段一起使用时,才发现这才是”正确的打开方式“,union不是没用,而是一但用到,都是一些高级用法。先看看union是怎么和位段连用的。 typedef s...

2018-02-24 16:53:02

阅读数 624

评论数 0

cache、buffer、flash的区别

cache(缓存)、buffer(缓冲)、flash(闪存)这三个存储区翻译成中文后,很容易使初学者分不清3者的区别,猛然一听这三者好像都有存储很快的意思,但是这三者的作用大不相同,下面分别对其进行解释: 1、cache(缓存):cache是联接cpu和内存的一个高速存储器,使一个需要多次使用的...

2018-02-23 09:37:47

阅读数 774

评论数 3

提示
确定要删除当前文章?
取消 删除