这篇文章我们来认识一下线程间通信的一种手段—共享内存,共享内存由于其特殊性—共享内存是存在与每个进程的地址空间中的,通俗点就是这部分数据是对每个进程可见的,这样每个进程都可以在一定条件下直接操作共享内存中的数据,避免了数据的复制等耗时的操作,这也是共享内存比其他几种IPC机制(信号量、管道、消息队列等)的通信方式效率高的原因,但是共享内存也有缺点,那就是需要独立实现消息的同步机制。
gcc编译选项[C++]
上一篇博客还是在去年12月份,之后参加了ICRA2019大疆主办的人工智能挑战赛,比赛要做技术方案,又要办理加拿大签证,中间大概忙了三个月的时间,最近刚把最后一次技术报告提交,等待最终的参赛通知,所以把最近一段时间的新的总结一下,ICRA比赛相关的东西我会在赛后总结一下,发布在"ICRA2019"分类下。
Kaggle比赛kernel学习[小样本学习]
第一次参加kaggle比赛,发现kaggle参赛者们贡献的kernel真是神奇,方法多种多样,感觉自己的思路也别打通了,果然众人拾柴火焰高,一个难题竟然被各种各样的方式解决。但是也是深刻认识到,有些kaggle比赛,比的是硬件,而算法都差不多。
结合Keras代码透彻分析SSD网络
之前一直在做分类网路的工作,物体检测网络有了解,但是还没有从头训练过,这次通过几天时间的集中学习,终于理解了整个网络的大部分细节,这里作简要记录。
OpenCV中CUDA代码分析之hist篇
这篇文章是分析OpenCV中直方图部分的CUDA代码,代码位于~/opencv-3.4.1/modules/cudaimgproc/src/cuda/hist.cu
,代码量:少。
CUDA实现图像二值化
着重介绍了阈值二值化及ostu二值化的实现,算法本身很简单,主要是将算法并行化,有点费事,同时也注意到了对于时序性较强的算法,cuda移植后性能并不会得到大幅度提升,提升往往在10倍左右,值得深思。
CUDA编程中的blockIdx及threadIdx等预定义变量的具体含义
最近在用CUDA复现图像处理算法时,发现对threadIdx等这类基本概念还是模棱两可,故在此详细总结一下,加深印象。
CMakeLists快速入门
编写CMakeLists文件是一个程序员的基本素养,如何优雅地编写CMakeLists,是快乐编程的第一步。之前一直是用的最简单形式的CMakeLists文件,但随着开发的项目越来越庞大,不禁发觉CMakeLists的学问还是蛮大的。
Git完全教程
git是程序员必备技能之一,学会git,再也不怕瞎**乱改代码,再也不会忘记上次修改了什么地方,用git,快乐编程。
CUDA中常用的host端及device端函数理解
总结一些常用的host及device端函数,解释其内部具体的运行流程,包括一些重要结构体里面的变量,学习CUDA编程之后才发现,GTX 1070性能是真的差啊,被老黄阉割的不忍直视,不过这系列的显卡定位也不是数据计算的。