更新时间:2024-03-14 GMT+08:00
分享

训练网络迁移总结

  • 确保算法在GPU训练时,持续稳定可收敛。避免在迁移过程中排查可能的算法问题,并且要有好的对比标杆。如果是NPU上全新开发的网络参考PyTorch迁移精度调优,排查溢出和精度问题。
  • 理解GPU和NPU的构造以及运行的差别,有助于在迁移过程中问题分析与发挥NPU的能力。由于构造和运行机制的差别,整个迁移过程并非是完全平替,GPU在灵活性上是有其独特的优势的,而NPU上的执行目前还是依赖于算子的下发,对于NPU构造的理解是昇腾训练迁移中必备的知识,只有对于昇腾有基础理解,配合一些诊断工具,面对复杂问题时,才能进行进一步诊断与定位,进而发挥NPU的能力。
  • 性能调优可以先将重点放在NPU不亲和的问题处理上,确保一些已知的性能问题和优化方法得到较好的应用。通用的训练任务调优、参数调优可以通过可观测数据来进行分析与优化,一般来说分段对比GPU的运行性能会有比较好的参考。算子级的调优某些情况下如果是明显的瓶颈或者性能攻坚阶段,考虑到门槛较高,可以联系华为工程师获得帮助。
  • 精度诊断过程当前确实门槛较高,一般还是需要GPU上充分稳定的网络(包含混合精度)再到NPU上排查精度问题。常见的精度调测手段,包含使用全精度FP32,或者关闭算子融合开关等,先进行排查。对于精度问题,系统工程人员需要对算法原理有一定的理解,仅从工程角度分析有时候会非常受限,同时也可联系华为工程师进行诊断与优化。
分享:

    相关文档

    相关产品