软件开发说明(重要)
EP模式下软件开发说明
Atlas 200 EP模式是指Atlas 200作为PCIe从设备接入CPU系统工作的模式,整体示意图如图6-1所示。在EP模式下,业务软件运行在Host侧,通过PCIe通道与Atlas 200 进行交互,将AI任务卸载到Ascend 310芯片中运行。
在这种应用模式下,需要注意CPU选型,考虑CPU与Atlas 200 兼容。
Atlas 200的兼容性要求如下:
- 支持PCIe MSI-X中断,至少可分配116个MSI-X中断。
- BAR空间大小要求(3个BAR,大小分别为128KB,16MB,64MB)。
与SOC模式不同,在EP模式下,CPU作为Host侧,Atlas 200作为Device侧,两者通过PCIe进行数据通信,因此在EP模式下,Host侧与Device侧将会发生数据的跨侧传输,所谓的跨侧传输为:传输的数据需要序列化为二进制,通过PCIE或DMA等硬件完成数据传输后,反序列为有效数据。因此对于自定义数据结构,需要用户自定义序列化与反序列化函数,Matrix框架主要提供两种序列化/反序列函数定义方式,分别为普通接口和高速接口,普通接口适合256K以下的数据传输,高速接口适合256K以上的数据传输(高速接口传输小内存块,速度与普通接口类似),详情请参考《Matrix API参考》中的“Graph::SetDataRecvFunctor”和“Engine::SetDataRecvFunctor”章节。
除此之外,由于部分代码运行于Host侧,部分代码运行于Device侧,因此代码需要分开进行编译,用户需要根据自己选取的CPU型号以及OS类型,使用合适的编译器进行代码编译,以便正确编译运行业务。
EP模式下的业务开发与Atlas 500十分相似,可以认为Atlas 500就是Atlas 200运行在EP模式下的例子。在Atlas 500中,Hi3559A作为主处理器,即图6-1中的CPU,Atlas 200作为PCIe从设备,由Hi3559A CPU对其进行控制,完成业务流。
因此,若用户在EP模式下进行业务软件开发,Atlas 200硬件底板设计参考《Atlas 200 AI加速模块 硬件开发指南(型号 3000)》,搭建开发环境与执行环境请参考《Atlas 200 AI加速模块 1.0.0.SPC200及以上 系统软件开发指南(型号 3000)》。业务软件开发可以参考Atlas 500的业务软件开发文档《Atlas 500 应用软件开发指南》。
SOC模式下软件开发说明
Atlas 200 SOC模式是指Atlas 200作为主/协处理器的模式。如果Atlas 200作为主/协处理器,主处理器和协处理器的应用软件开发流程基本一致,业务软件开发的方法可以参见本文档的软件代码开发内容。