客户是人工智能工作负载的内存效率计算的领导者。该客户提供超高效、高性能的人工智能芯片,以实现人工智能应用的新领域。通过将内存高效计算的功率效率与数字处理的稳健性相结合,客户为神经网推理开发了一个突破性的新芯片架构。客户正在寻找一个技术合作伙伴,为其推理芯片的神经网络推理层创建一个软件加速。
该项目
客户的推理芯片是市场上的新产品。为了增加对各种流行的神经网络架构的支持并获得最佳的推理性能,必须在他们的SDK中提供对这些模型的支持,并且必须为推理芯片优化神经网络架构的不同层。客户的要求是手工优化每个神经网络推理运算器,利用客户独特的内存效率架构,在ALU上使用SIMD指令,在整个芯片上使用MIMD。
挑战
客户的架构在市场上是独一无二的,同时也是一个相当复杂的架构。客户的开发生态系统,包括编译器、调试器等,正在开发中,他们的SDK也有望在项目执行期间持续更新。
客户希望建立一个由10多名工程师组成的团队,每个人都具有从事微架构感知内核优化的知识和经验,并能在短期内开始为该项目做出贡献。
MulticoreWare 的优势和方法
MCW在很短的时间内组建了一个由10多名工程师组成的团队。该团队拥有多年来从类似项目中获得的大量相关经验,在这些项目中,MCW开发团队致力于为各种DSP、GPU和NPU平台优化计算机视觉和机器学习训练及推理算法。
客户给了一套为物体检测和分割问题创建的神经网络架构,这些架构的层需要为客户的推理芯片进行优化,同时还需要为每一个目标每秒帧数进行优化。因此,MCW必须对这些架构的各个层进行手工优化,将管道连接起来,并确保整个网络在硬件上以目标的每秒帧数运行。
从项目开始到结束的执行流程: –
- MCW提出了详细的设计方案,说明如何在设备上构建端到端的神经网络模型,包括各层之间的通信、数据放置等,并得到客户的认可。
- 网络中的操作/层被分配给不同的团队成员,每个人都单独优化网络的不同层,专注于功能和性能。网络中的每一层都经过精心设计和优化,以充分利用设备的计算元素和数据存储器。每个模型层的功能正确性是根据TensorFlow层的输出进行测试的。
- 在优化了各个层之后,端到端的模型被放在一起,用随机和实时数据进行测试,以验证其在模拟器平台上的功能正确性。
- 一旦模型通过了模拟器环境中的所有测试,MCW就在实际推理设备上测试了神经网络模型,并对性能进行了测量。
- MCW团队对网络的不同层次进行了优化,使给定网络的性能始终满足/超过客户设定的目标每秒帧数。
成果
MCW在客户最小的帮助下提出了一个端到端的神经网络模型推理设计,并达到了目标FPS。结果,网络在模拟器平台和设备上成功运行,功能正确,性能理想。此外,客户对该结果和执行模式感到满意,因为MCW可以独立实现这一目标,最大限度地减少其关键工程师的开销。