上午
跑了没有数据的 gpt 175b (一半长), 使用了八张 v100 32g pcie.
mp 的 latency 是 14636ms, 而 pp 是 57313ms. 考虑到 pp 其实只利用了一个卡, 所以 pp 其实还挺棒的 (?)
下午
摸鱼摸了挺久. 还去宿舍安全学习了.
读了 gpt forward 的代码, 感觉 pipeline 优化已经做了. 只要 batch size 大, 应该打得挺满, 但是没有做 orca 那个工作里的 sequence 上的优化, 可能会导致 pipeline 不那么满?
用 nsys 跑了一把小一点的模型, mp 和 pp 的时间大概是 9:16.
nsys 结果是 pp 里面 send/recv 占了大概 13.5%
的时间. 而 80%
以上的时间在矩阵乘. 感觉打得挺满的, 有点令人疑惑. 可能需要一个有效一点的方式来刻画一下 pp 的 bubble 的情况.
mp 里面 nccl allreduce kernel 时间明显很长, 占到了 57.7%
, 而 gemm 只有 17.4
.
结论是首先 pp 的通信量是减少了, 但由于不知道什么问题导致它的吞吐量没有上去. 明天可以花一些时间来研究这个问题. 另外需要准备一下周四 reading group 的内容?