开发流程
本文档详细讲述了开发应用软件的相关工作和流程,主要包括搭建DDK开发环境、模型转换、算子开发和开发过程。
搭建DDK开发环境
DDK为用户提供基于昇腾AI处理器的相关算法开发工具包,可以用于构建相关工程的编译环境。具体搭建指导请参见搭建DDK开发环境。
模型转换
将开源框架的网络模型,例如Caffe、TensorFlow等框架训练好的模型,通过离线模型生成器OMG(Offline Model Generator)将其转换成昇腾AI处理器支持的离线模型。模型转换过程中可以实现算子调度的优化、权值数据重排、量化压缩、内存使用优化等,可以脱离设备完成模型的预处理。具体转换方法请参见模型转换。
算子开发
当开发者想自己开发算子以此提高计算性能,或者昇腾AI软件栈不支持模型中的算子时,开发者可以选择自己开发算子。具体开发流程请参见算子开发,TE自定义算子开发框架的接口说明请参见TE API参考,自定义算子插件开发的接口说明请参见GE API参考。
应用软件开发
上述准备工作完成后,就可以基于昇腾AI软件栈进行应用软件的开发,具体开发流程和方法请参见应用软件开发。
在开发过程中,开发者会调用表2-1所示的昇腾AI软件栈组件实现应用开发和模型推理。
组件 |
说明 |
参考文档 |
---|---|---|
框架管理器(Framework ) |
将原始神经网络模型转换成昇腾AI处理器支持的形态,并将转换的模型与昇腾AI处理器相融合,引导神经网络运行并高效发挥其性能。 |
|
流程编排器(Matrix) |
负责完成神经网络在昇腾AI处理器上的落地与实现,统筹整个神经网络生效的过程。 |
|
数字视觉处理模块(DVPP) |
Davinci架构对输入数据有固定的格式要求,如果数据未满足架构规定的输入格式、分辨率等要求,需要调用DVPP进行格式转换,从而保证后续的推理业务。 |
|
数据回传工具(IDE-daemon-hiai) |
提供接口给Matrix和Framework调用,用于DVPP预处理数据和神经网络数据回传。 |
为了保证在开发应用过程中数据传输、DVPP处理以及模型推理环节进行较高性能的处理,开发者可以参考高性能应用编程章节提供的建议进行应用开发,以便快速构建起自己的高性能应用。
此外,为了提升代码的开发效率,针对昇腾AI处理器的软件组件和推理业务开源了一些代码样例和工具,请登录https://www.huaweicloud.com/ascend/resources/CodeSamples获取。