总体目标:增大吞吐(减少气泡),减少显存(中间缓存的activation尽可能少),保持和原始计算的结果等价;
GPipe:
画出了backward时长大约是forward的2倍;
最后才更新weight,是为了保持和原始计算的等价,weight不能变;
缺点:forward激活保留的太多,占显存;或者activation checkpointing导致的重新计算太多,浪费GPU算力。
1F1B(PipeDream):
最多缓存一部分micro-batch的激活,优先处理backward,目的是释放activation的显存
整体时长,和GPipe一样,但降低了activation缓存所需的显存量;