浙江天奥建设集团网站,html字体代码大全,安徽省高等级公路工程建设指挥部网站,企业线上推广公司先看GPU结构#xff0c;我们常说显存的时候#xff0c;说的一般就是Global memory 训练的过程中#xff0c;我们为了反向传播过程#xff0c;必须将中间的结果#xff08;激活值#xff09;存储下来。 在训练的过程中#xff0c;那些会消耗内存呢#xff1f;
model we…先看GPU结构我们常说显存的时候说的一般就是Global memory 训练的过程中我们为了反向传播过程必须将中间的结果激活值存储下来。 在训练的过程中那些会消耗内存呢
model weightsoptimizer satesintermediate activation values
对于有N层的神经网络来说内存的消耗是O(N)的。
检查点技术
在前向传播的时候只选择保留部分数值当进行反向传播时所需要的中间值会进行重计算。 这样虽然会增减计算成本但是也大大减少了内存占用。
模型并行
将模型进行拆分 数据并行
将minibatch 划分成更小的micobatch训练每个batch的时候每个工作节点获得一个microbatch
梯度更新
各个节点之间计算出来的梯度要统一可以使用 all-reduce或者 使用一个参数服务器用来统一更新各个节点之间的梯度。 为了加快训练可以使得参数传递和计算过程互相掩盖 READING LIST:
ZeROBeyond Data and Model Parallelism for Deep Neural NetworksGSPMD: General and Scalable Parallelization for ML Computation Graphs