jasperzhong / read-papers-and-code

My paper/code reading notes in Chinese
45 stars 3 forks source link

SIGCOMM workshop NetAI '20 | Is Network the Bottleneck of Distributed Training? #73

Closed jasperzhong closed 4 years ago

jasperzhong commented 4 years ago

https://arxiv.org/pdf/2006.10103.pdf

from: chaokun

上个月就听说了,今天才看到arxiv

jasperzhong commented 4 years ago

这摘要很劲爆啊,明天起来好好看看

jasperzhong commented 4 years ago

前半部分讲的是network bandwidth其实并不是瓶颈,因为其实增大bandwidth, scaling efficiency并没有增大, image

而且网络利用率很低 image

这说明bandwidth并没有被完全利用。导致这一点的原因又是什么呢?首先被怀疑的当然是CPU,因为TCP的打包拆包需要很多CPU资源。但实际上CPU利用率并不高.

image

那既然不是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 还需要研究下代码。

jasperzhong commented 4 years ago

simulation的细节依然没看懂.. 直接看结论吧. image

如果bandwidth能够完全利用,看上去40Gbps就能满足resnet的需求了. VGG似乎还是很差,得到100Gbps.

他们还研究了gradient compression的模拟情况,直接除以compression ratio. 这里没考虑compression的开销,不严谨. 所以他们得出10X的压缩率就已经够大了,其实不对,加上压缩的开销,10倍绝对不够.

image

discussion一直在怼gradient compression啊,汗... 里面提到了EFA可以绕过OS Kernel做传输有点意思.

我很赞同这篇文章的中心思想:瓶颈是网络协议栈. 但gradient compression也不是文章说的那样一无是处...