Bridging the Semantic Gaps of GPU Acceleration for Scaleout CNN-based Big Data Processing: Think Big, See Small
在这篇论文中,作者分析了CNN运行在GPU上时的性能瓶颈,并为CNN建立了性能模型以及解决性能瓶颈的方法。作者提出了D3NN, a Distributed, Decoupled, and Dynamically tuned GPU acceleration framework.
CNN: AlexNet GoogLeNet VGGNet, 使用Caffe训练
GPU: Tesla k20c
CPU: Intel Xeon E5530
集群: 一个master节点,8个slave节点
信息收集工具: Nvidia Visual Profiler
数据集:ILSVRC2012 (157.3GB)
D3NN包含四个特性,根绝CNN每层输入数据的大小动态选择最优batch size,针对单节点的CNN性能分析模型,分布式的数据处理框架,减少资源竞争的方案。
该方案主要是用来回答两个问题,1. 什么时候需要应该batch调节方法;2. 如何选择最优的batch size。作者用 c p R a t i o cpRatio cpRatio表示每层网路需要的资源与可用的资源的比值(详细解释见作者论文)。 c p R a t i o = G r i d S i z e m a x B l o c k s cpRatio=frac{GridSize}{maxBlocks} cpRatio=maxBlocksGridSize如果 c p R a t i o > 1 cpRatio>1 cpRatio>1表示GPU可用的资源都能被CNN消耗,因此不需要调用调节方法。根据实验观察到当 G r i d S z i e GridSzie GridSzie是 m a x B l o c k s maxBlocks maxBlocks的整数倍时,CNN的性能最好。
作者采用了三种方案进行数据处理,1. Producer-Consumer:在每个slave node将数据预处理和数据处理分开;2. Semaphore-based数据同步方案保证最大的单节点吞吐率;3. Analytical-based 性能模型提高资源利用率。
作者通过实验发现,在CNN计算的过程中,在某个阶段会出现所有的进程竞争同一资源,这个阶段之后又变成了所有进程都不再竞争资源。这就造成了,资源利用的不平衡。作者采用了流水线的方式解决这一问题。
本文发布于:2024-01-31 22:23:32,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170671101431791.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |