欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

AI集成产品中海量数据处理的嵌入式解决方案(一)

程序员文章站 2022-03-03 19:19:01
将来的AI产品将采样海量数据,如果将数据传输到数据中心的计算机中处理,将导致整个网络难以负荷。因此,更多的公司逐项使用边缘计算来削减不断上升的数据管理成本。这款GreenWaves生产出来的GAP8植入到IoT应用的无线传感设备中,即可做到在传感器中处理数据。这款处理器可以捕捉,分析,分类并根据丰富的数据源(例如图像,声音,雷达,红外线或震动)进行融合。同时,GreenWaves也提供了一些工具来协助芯片的开发设计。GAP8应用了基于RISC-V的平行超低功率(PULP)。PULP作为一个开源计算平台...

将来的AI产品将采样海量数据,如果将数据传输到数据中心的计算机中处理,将导致整个网络难以负荷。因此,更多的公司逐项使用边缘计算来削减不断上升的数据管理成本。这款GreenWaves生产出来的GAP8植入到IoT应用的无线传感设备中,即可做到在传感器中处理数据。
这款处理器可以捕捉,分析,分类并根据丰富的数据源(例如图像,声音,雷达,红外线或震动)进行融合。
同时,GreenWaves也提供了一些工具来协助芯片的开发设计。

GAP8应用了基于RISC-V的平行超低功率(PULP)。PULP作为一个开源计算平台,向开发者提供了社区和一套完整的工具链,有助于集成商更快地开发出创新定制嵌入式解决方案。
AI集成产品中海量数据处理的嵌入式解决方案(一)

GAP8架构:
AI集成产品中海量数据处理的嵌入式解决方案(一)
1.IO外设用于连接捕获外界信号的装备(相机,麦克风等)和控制设备。
2.用于控制,通信和安全功能的结构控制器核心
3.8个经过结构优化的内核集群,和一个HWCE(卷积硬件加速器),可以执行矢量化和并行化算法。

GAP8中又两种级别的内存:
1.较大的二级,所有处理器和DMA单元均可访问
2.两个较小的一级,一个用于FC,另一个由所有的集群核心共享。

在开始使用板子前,我们首先要在Linux上安装SDK,SDK中提供了可以在GAP8 IoT的应用处理器上编译和运行的app。

SDK中提供了支持GAP8的所有必须的工具和OS

详细安装说明在添加链接描述

其中需要注意的是,按步骤安装时要确保Linux上执行python --version时应该是python3的版本,如果不是需要安装后,然后set一下python版本

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.4 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2`

之后run一下:

sudo update-alternatives --config python

然后把python3设置成默认:

sudo update-alternatives  --set python /usr/bin/python3.6

安装好sdk后我们就要开始测试板子啦~ 如果没有的话也没关系,gap_sdk里提供了一个gvsoc,这是一个虚拟平台,模拟了声音图像等采集系统,可以做simulation。如果要使用的话进入目录cd ~/gap_sdk,然后make gvsoc就可以了。

现在在gvsoc上测试一下自己之前的配置是否成功了:

虚拟平台还可以转储VCD轨迹,该轨迹显示随时间变化的几个组件的状态,例如内核的PC(程序计数器),DMA传输等。与指令轨迹相比,它提供了更好的概览。
这里选择vcd激活,一旦平台运行,它将在build文件夹中生成一个名为all.vcd的VCD文件, 该文件是包含所有信号值的原始文件。
另一个名为view.gtkw的文件已生成,可以使用GTKwave打开。 这是一个脚本文件,它将使用最有趣的信号设置视图。 启用VCD跟踪时,将在模拟开始时显示要执行的命令。

cd ~/Downloads/gap_sdk/examples/pmsis/helloworld
make clean all run platform=gvsoc runner_args="--vcd"

如果在板子上运行:

make clean && make PMSIS_OS=freertos platform=board io=host all -j && make platform=board io=host run

然后就能看到输出了:

*** PMSIS HelloWorld ***

     Entering main controller
     [32 0] Hello World!
     Cluster master core entry
     [0 7] Hello World!
     [0 0] Hello World!
     [0 4] Hello World!
     [0 5] Hello World!
     [0 3] Hello World!
     [0 1] Hello World!
     [0 2] Hello World!
     [0 6] Hello World!
     Cluster master core exit
     Test success !
     Detected end of application, exiting with status: 0
     Loop exited
     commands completed

关于这里的option,可以在添加链接描述

第二章讲一下如何在板子上如何训练一个模型

本文地址:https://blog.csdn.net/weixin_39852636/article/details/109471420