Closed jasperzhong closed 4 years ago
这摘要很劲爆啊,明天起来好好看看
前半部分讲的是network bandwidth其实并不是瓶颈,因为其实增大bandwidth, scaling efficiency并没有增大,
而且网络利用率很低
这说明bandwidth并没有被完全利用。导致这一点的原因又是什么呢?首先被怀疑的当然是CPU,因为TCP的打包拆包需要很多CPU资源。但实际上CPU利用率并不高.
那既然不是CPU的问题,那只能是网络协议栈
不够efficient了。
我也得到过相同的结论。我在做梯度压缩的时候,就在想其实节约下来的时间,真的是因为带宽不够吗?我想了下其实不是,25Gpbs的带宽已经很大了,resnet50也就98MB而已,15.68ms就可以完全传输完,PS需要传输两次,也就31ms左右,更何况还是和backward是overlapped的,我记得P100上做backward需要120ms,V100比P100快3倍左右,也需要40ms。讲道理,通信基本可以被overlapped掉,其实带宽不是瓶颈。
真正的瓶颈在于网络协议栈的开销,只要你用TCP/IP,这个开销无法避免。开销与传输数据量成正比。
但是,梯度压缩,通过减少数据传输,其实是降低了网络协议栈的开销。这应该是梯度压缩能够work的原因。
这也是为什么RDMA能够轻松上100% scaling efficiency的原因,不是因为它有100Gbps的带宽,而是跳过了传统的网络协议栈。
后半部分的simulation没怎么看懂。https://github.com/netx-repo/training-bottleneck 还需要研究下代码。
simulation的细节依然没看懂.. 直接看结论吧.
如果bandwidth能够完全利用,看上去40Gbps就能满足resnet的需求了. VGG似乎还是很差,得到100Gbps.
他们还研究了gradient compression的模拟情况,直接除以compression ratio. 这里没考虑compression的开销,不严谨. 所以他们得出10X的压缩率就已经够大了,其实不对,加上压缩的开销,10倍绝对不够.
discussion一直在怼gradient compression啊,汗... 里面提到了EFA可以绕过OS Kernel做传输有点意思.
我很赞同这篇文章的中心思想:瓶颈是网络协议栈. 但gradient compression也不是文章说的那样一无是处...
https://arxiv.org/pdf/2006.10103.pdf
from: chaokun
上个月就听说了,今天才看到arxiv