什么是模型迁移
将原本设计用于GPU或其他三方平台的深度学习模型训练代码,经过模型代码修改等适配操作,来适应NPU的架构和编程,让模型能在NPU上进行高性能运行。
为什么要做模型迁移
在将模型从其他三方平台迁移到NPU时,由于硬件架构和库的不同,涉及到一系列底层到上层的适配操作。以GPU为例,模型迁移至NPU需要适配的原因可分为三方面:
- 计算架构差异
CUDA(Compute Unified Device Architecture)+ CuDNN是NVIDIA GPU的并行计算框架,而CANN(Compute Architecture for Neural Networks)是华为NPU的异构计算架构。
- 深度学习框架差异
为了支持NPU硬件,需要对PyTorch框架进行适配:包括适配张量运算、自动微分等功能,以便在NPU上高效执行。PyTorch正在原生支持NPU,以提供给用户更好的模型体验,实现迁移修改最小化。
如何进行模型迁移
本手册端到端给出了模型迁移流程指南,具体请参考迁移总体思路章节。