PS:要转载请注明出处,本人版权所有。

PS: 这个只是基于《我自己》的理解,

如果和你的原则及想法相冲突,请谅解,勿喷。

环境说明

  无

前言


  从2019年开始,我们公司的智能分析平台核心架构就开始逐渐的转向了RK3399PRO,这是我们公司的第三代智能分析平台,前面两代分别是TK1和TX2,但是因为众所周知的原因,这一代分析平台选择了国内的一些替代商。经过了2019年和2020年的实际部署和使用,对于第三代智能分析平台来说,有一个硬性缺陷就是NPU算力过低(INT8 3T),导致了某些算法达不到实时帧率,其其他的性能还是不错的,如CPU计算力、编解码等等。正是由于这个算力的缺陷,所以在2020年,我们调研了市场上的其他算力平台的情况,经过某些渠道,我们和寒武纪联系上了。寒武纪给我们介绍了他们的MLU200系列智能分析平台的情况,并提供了相应测试板卡,经过相应的测试后,我们技术人员及公司领导对其比较认可,因此决定第四代平台会加入寒武纪的推理模块,最终形成了以RK作为主控,寒武纪作为推理模块的形式,为什么这样搭建,后文有所提及。由于现在市场上已经出现了类似我们公司的第四代智能分析平台的产品,于是相关介绍可以进行解密脱敏发布。本系列文章就是对这个寒武纪平台做一些简单的介绍及总结。

  若文中引用部分存在侵权,请及时联系我删除。

寒武纪加速平台简介


  寒武纪加速平台是有两个部分构成,一个部分是算力硬件,一部分是配套的软件。

寒武纪硬件部分

  首先,这里介绍的是寒武纪的MLU200系列,在本文发布时,其实其MLU200系列的升级版,MLU300系列也在寒武纪内部及其相关的合作伙伴正在测试。

  对于MLU200系列来说,我们从其官网可以看到,大概存在3个系列,一个是边缘端推理MLU220(只支持推理),一个是服务器端推理MLU270(只支持推理),一个是MLU290(支持训练和推理)。可以从其官网(https://www.cambricon.com/) 查看更加详细的介绍。

  对于MLU220来说,这里介绍两个比较重要的参数,具备两种形态,一种是INT8 8T算力+8.25W功耗,一种是INT8 16T算力+16.5W功耗。MLU220边缘端模块正是我们公司第四代智能分析平台的核心部件之一,但是由于其CPU计算能力较弱,导致不能够进行大量的业务逻辑运算,这也是某些场景可能需要其他主控的原因。

  对于MLU270来说,除了部署服务端的智能分析算法外,其对我们来说最重要的功能是作为模型移植的硬件。我们的智能分析算法想要比较好的工作在MLU220边缘端,就必须要经过MLU270上进行模型移植,这也是后续文章的重点之一。

  对于MLU290来说,我们公司没有使用,但是看其介绍,一般来说都是应用在各云厂商、机房和服务中心等,其的最大亮点是支持模型训练。

寒武纪软件部分

  寒武纪软件部分我大概可以分为3类,一个是驱动,一个是运行时库,一个是其相关的算法框架等。如其官网的结构图:

  从上图来看,在相关的算法框架那块里面,还包含了两个我们实际用到了,但是其图中没有给出的介绍。图中的相关算法框架部分都是用于算法训练、推理、移植使用的。其实在推理部分来看(运行时之上),还应该包含寒武纪出的两个开源工程:EasyDK以及CNStream。

  EasyDK是其基于其运行时库封装的一些常用和简易接口,对我们来说,可能最常用的就是关于离线模型推理部分。相关介绍请参见其官网: https://github.com/Cambricon/easydk

  CNStream是其基于EasyDK封装的一套应用层库,我觉得其和deepstream和MediaPipe有异曲同工之妙。相关介绍请参见其官网:https://github.com/Cambricon/CNStream

  其实从这里我们可以看出,一般来说,我们自己的推理端的程序和服务,有三种形态:

  • 基于CNStream进行开发,其封装的还不错,并行处理的还行,但是可能就是不能够很好的和自己以前的程序框架移植和融合。
  • 基于EasyDK进行开发,简化调用及开发流程,但是会有些坑需要去阅读EasyDk源码和运行时相关的SDK文档。
  • 基于其运行时相关的SDK文档进行开发,需要花大量的时间进行学习,适合长期工作在此平台的相关人员。

  对于我们公司来说,我们现在基本工作在EasyDK和其运行时之间,基于这两个进行混合编程,最终的理想状态是直接基于其运行时库进行开发。

寒武纪加速平台使用简介


  在前言部分已经介绍过了,我们公司的第四代智能分析平台的核心构成部分是MLU220。因此,我们公司做的事情其实将已经训练好的Caffe、Pytorch等框架的模型移植到寒武纪平台。寒武纪平台根据其定位做了云端和终端的商业定位。其官网介绍图如下:

  下面我对我司使用的基本流程做一个简介。

部署流程简介

  寒武纪平台的部署流程有一条主线是将一个原始模型转为一个离线模型。基本流程如下:

  • 得到算法的原始模型,如caffe/pytorch/tensorflow等框架的模型。
  • 配置对应框架模型的模型转换环境,有两种一种是手动配置,一种是docker。
  • 使用对应的框架模型转换环境,进行模型量化、转换得到离线模型。
  • 开发支持离线模型的程序应用,调用离线模型进行推理并做其他处理。

  关于我司使用的基本流程,后续文章将会有一个实例来详细展开说明,这里就不多介绍了。

后记


  本文主要介绍了寒武纪加速平台的一些概念。更多的详情,请查看寒武纪官网相关的介绍。

  其实看到国内的各个软硬一体厂商发展的还是不错的,希望他们可以取得更加长足的发展,希望他们为国产争光。

参考文献

  • https://www.cambricon.com/
  • 其他相关保密资料。

打赏、订阅、收藏、丢香蕉、硬币,请关注公众号(攻城狮的搬砖之路)

PS: 请尊重原创,不喜勿喷。

PS: 要转载请注明出处,本人版权所有。

PS: 有问题请留言,看到后我会第一时间回复。

寒武纪加速平台(MLU200系列) 摸鱼指南(一)--- 基本概念及相关介绍相关推荐

  1. 寒武纪加速平台(MLU200系列) 摸鱼指南(三)--- 模型移植-分割网络实例

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 环境说明 Ubuntu 18.04 MLU270 加速卡一张 寒 ...

  2. 寒武纪加速平台(MLU200系列) 摸鱼指南(二)--- 模型移植-环境搭建

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 环境说明 Ubuntu 18.04 MLU270 加速卡一张 前 ...

  3. 寒武纪加速平台(MLU200系列) 摸鱼指南(四)--- 边缘端实例程序分析

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 环境说明 MLU220 开发板 Ubuntu18.04 + ML ...

  4. vscode最强摸鱼指南,老板站在身后也看不出来的那种

    大家好,我是前端实验室的大师兄!一名资深的互联网玩家,专注分享大前端领域技术.面试宝典.学习资料等~ 俗话说,只工作不玩耍,聪明的孩子也变傻 2022年的第一个上班周已经到来,而大师兄还没从假期中回味 ...

  5. Java人必备高端摸鱼指南,教你靠本事摸鱼

    哈喽大家好啊! 虽然说五一假期结束了,不过我相信许多小伙伴们都和我一样,虽然人来上班了,但是心还留在了家里,需要一段时间从假期余额用尽的悲伤中释怀一下- ​ 所以,我昨天摸了一天鱼- 就像老话说的那样 ...

  6. 摸鱼指南—edge冲浪小游戏

    断网后,在edge浏览器无意间发现一个小游戏 感觉比chrome浏览器的小恐龙好玩多了 游戏网址(联网状态下也可以打开):http://edge://surf/ 它有三种游戏模式分别是:无尽模式.计时 ...

  7. RK3588平台开发系列讲解(DP篇)DP的相关调试手段

    平台 内核版本 安卓版本 RK3588 Linux 5.10 Android12

  8. RK3588平台开发系列讲解(Pinctrl篇)Pinctrl设备树介绍

    平台 内核版本 安卓版本 RK3588 Linux 5.10 Android12

  9. RK3568平台开发系列讲解(安卓篇)Android Telephony框架介绍

最新文章

  1. 承德大数据产业发展态势良好
  2. git服务器安装位置,Linux服务器安装gitlabe-runner,并部署包到指定目录,还有踩的一些坑~~...
  3. 游戏对象之间发送和接收消息
  4. 电商扣减库存_以电商为例 | B端产品经理,怎么做好库存系统设计
  5. 【转】php和java之间rsa加密互通
  6. 前端:uniapp封装组件用法笔记
  7. 【转】设置Win32窗口背景颜色
  8. 17-比赛2 C - Maze (dfs)
  9. Command NetWork(POJ-3164)
  10. 1.790E308java_java基础知识总结
  11. js 中通过 var 在声明的变量中写方法
  12. 手机如何双声道录音_如何在手机端实现电话录音功能?
  13. WhatsApp Botim 筛号,筛选群发消息,WhatsApp、Botim协议
  14. 使用Python生成docx文档
  15. python画图像_使用python绘制SDSS图像
  16. PTA - 数据库合集4
  17. Tolerance Analysis 尺寸公差分析
  18. html5 red5,一个基于red5+flash的网络聊天室red5Chat
  19. deepin 切换大黄蜂显卡驱动
  20. 画板数据保存成文件的两种方法小结

热门文章

  1. 每日一题 - 剪绳子
  2. loadrunner 12 --录制手机app脚本
  3. 循序渐进学SAP系列(一):--SAP该如何入门
  4. 微信开发者工具小技巧——快速创建小程序的新页面。
  5. 两行命令查看wifi密码
  6. 东北农业大学考研计算机大纲,东北农业大学339农业知识综合一考研大纲
  7. 抖音短视频账号运营方案
  8. 基于stc51单片机的指纹解锁模块
  9. chrome浏览器多页签唯一关闭时自动注销
  10. 本人新开的一个人才网站,玉环人力网