1. 在关于下一代的电子产品设计中,边缘计算是目前最前沿的视角。这是因为人工智能已经被赋予了第四次工业革命的头衔,但是让这些聪明的计算落地,需要数不清的智能电子器件来实现,而不能仅仅是在电脑上做一些图像识别和视频捕捉的功能。
目前比较常用的人工智能解决方案都要通过wifi联网,把前端采集到的图片,声音信号上传到云端,让云端海量的服务器来实现计算功能把结果反馈到终端。这个比较典型的就是亚马逊的ECHO音箱,多维声场捕捉的只是高精度的声音信号,具体这些是代表的那种语言,转换成文字,要在海量的文本语义中准确识别,确实不是终端所胜任的。
但是,ARM在这方面并没有放弃,率先实现了边缘计算的概念,而且门槛低至ARM-M0++。换言之,就是让终端采集到的数据在终端就直接计算出结果,不用再依赖通讯通道了,在终端完成大规模的计算,就是简单理解的边缘计算。
这样,这些开发板就不用再简单的玩点灯的blink游戏了,就可以赋予更重的计算任务,同时也可以实现更有趣的应用。
2. 实现边缘计算的方法就是调用CMSIS-NN库,这个库中包含了很多强计算的函数库,尤其注意是需要启用DSP协处理器的,即要设置DSP=1.
目前在边缘计算上尝试的MCU厂家并不多,NXP提供了一些范例,也在NXP上有一些经验,那么在GD32F350RB是否可以实现呢。本帖就测试一下。
3. 首先创建一个工程,选择GD32F350RB芯片
4. 其次,选择安装的初始库,一定要选定NN和DSP,
然后进行编译,发现编译通过,但是系统资源不足,显示内存不足。
修改使用microLib,再次编译,显示部分程序资源不足。
5.这样的初步验证,程序和代码可以在GD32F350上执行,但是如何确定代码占用的资源,并进行优化,是编程的一个,相对于缩小层数,并且降低中间buff的占用,还可以加载外部的内存,把中间数据swap到外存,这样就可以完成计算了。
具体就是优化的过程,这个初步可以验证这个范例代码是可以在这个平台执行的。
具体代码分析和使用说明逐步解释。
本帖最后由 北方 于 2018-9-20 11:56 编辑