基于CUDA的Where - What网络与增强可变大小HOG特征的快速人体检测
1. Where - What网络(WWN)的CUDA并行化
核心操作本质上是排序,这是计算机科学中著名的NP问题,有许多并行算法可供选择,这里采用了专为并行机器设计的双调排序网络。因此,在详细的算法层面,WWN也可以并行化。
在实现上,基于GPU的并行计算作为PC上有吸引力的并行处理技术之一,发展迅速。GPU已演变成高度并行、多线程、多核的处理器(核心数远多于CPU),且具有非常高的内存带宽。在GPU编程技术中,NVIDIA设计的通用并行计算架构CUDA被大多数程序员广泛接受,本研究使用GPU/CUDA对WWN进行并行化。
- 预响应计算的并行化 :从公式可知,每个神经元预响应计算的主要操作是自底向上权重与自底向上输入的内积。实验中,此计算分配给27个块中的6840个线程,即每个线程为V2中的一个神经元执行内积,使6840个相同操作可并发执行,节省大量时间。
- Hebbian学习的并行化 :与预响应计算的并行化类似,Hebbian学习更新的自底向上和自顶向下权重也分配给线程。不同的是,由于数据量小,块内每个线程对应共享内存(低延迟)中向量的一两个元素,而非全局内存(高延迟)中向量的所有元素。此外,考虑到分支结构会极大影响并行处理的加速效果,在网络训练前,将公式所需的查找表从CPU传输到GPU。
- Top - k竞争的并行化 :排序中读写操作频繁,因此应尽可能使用低延迟的内存单元,CUDA中共享内存是最佳选择。由于同一块内的线程(实验中GPU
超级会员免费看
订阅专栏 解锁全文

774

被折叠的 条评论
为什么被折叠?



