Tengine支持GPU / CPU异构调度

嵌入式AI雪梨君 发表了文章 • 0 个评论 • 22 次浏览 • 2019-06-17 17:49 • 来自相关话题

随着深度学习的快速发展,把深度学习算法部署到嵌入式设备的需求也日益增加。目前开源的嵌入式推理框架中,有支持ARM CPU加速推理的,也有支持GPU加速的,但这些移动端推理框架中,还没有一个框架能够进行CPU / GPU异构调度。 ...查看全部

随着深度学习的快速发展,把深度学习算法部署到嵌入式设备的需求也日益增加。

目前开源的嵌入式推理框架中,有支持ARM CPU加速推理的,也有支持GPU加速的,但这些移动端推理框架中,还没有一个框架能够进行CPU / GPU异构调度。

如今,Tengine作为ARM人工智能平台的软件框架,首次发布支持CPU / GPU异构调度。

Tengine的GPU / CPU异构调度的原理是:

下面我们将演示,如何调用Tengine进行GPU / CPU异构调度,进行检测网络MobilenetSSD的推理加速。

我们的测试环境是Linux的测试平台是开发板萤火虫RK3399:

Tengine是通过调用Arm Compute Library(ACL)进行GPU加速,我们使用的ACL版本为18.05:

为了发挥GPU的最高性能,我们需要设置GPU的频率到最高频率:

显示的 GPU 频率应该是 800000000 。

git clone Tengine项目:

在配置文件中打开开关CONFIG_ACL_GPU = y,并指定ACL路径:

编译:

下载MobilenetSSD模型,可以从[Tengine model zoo](https://pan.baidu.com/s/1LXZ8vOdyOo50IXS0CUPp8g)(psw:57vb)下载模型〜/ tengine / models /路径下:

执行时需要设置一些环境变量:

设置GPU_CONCAT = 0,是为了避免GPU / CPU在的concat这一层在GPU / CPU频繁来回传输数据造成性能损失;

设置ACL_FP16 = 1,是支持GPU用float16的数据格式进行推理计算;

设置REPEAT_COUNT = 100,是让算法重复执行100次,取平均时间作为性能数据;

taskset 0x1用于绑定CPU0(1A53)执行程序;执行的时候需要加-d acl_opencl来打开使用gpu的开关。

从下图可以看到,GPU用半浮点精度float16的检测结果是正确的。

我们对比了 Tengine 用纯 CPU 进行 MobilenetSSD 的推理计算的性能:

可以看出,通过GPU / CPU异构调度(GPU + 1A53)的性能大约是两个CPU大核A72的性能,且A53的占用率为50%左右。

Tengine支持的GPU / CPU异构调度,有两个方面的优势:

一方面,把NN网络中的主要算子在GPU运行,把特定算子在CPU上运行,使得开发者的开发成本大大降低,开发者可以快速通过Tengine将深度学习算法在GPU / CPU上运行起来。

另一方面,把深度学习算法跑在GPU上,其余的CPU计算资源就可以用于其他算法,比如SLAM中的特征提取,路径规划等算法,充分利用了GPU / CPU计算资源。

计算机视觉教学内容介绍-EAIDK-610

嵌入式AI雪梨君 发表了文章 • 0 个评论 • 18 次浏览 • 2019-06-17 17:47 • 来自相关话题

EAIDK-610是专为AI开发者和学生精心打造,面向边缘计算的人工智能开发套件。学生或者开发者可以使用此套件了解人工智能的相关知识,了解计算机视觉、人脸检测、人脸识别、双目立体视觉等相关算法,并且可以使用此套件做一些扩展,做产品原型的验证。 ...查看全部

EAIDK-610是专为AI开发者和学生精心打造,面向边缘计算的人工智能开发套件。学生或者开发者可以使用此套件了解人工智能的相关知识,了解计算机视觉、人脸检测、人脸识别、双目立体视觉等相关算法,并且可以使用此套件做一些扩展,做产品原型的验证。

EAIDK-610硬件平台(EAI610-P0)使用高性能Arm SoC(瑞芯微rk3399),搭载OPEN AI LAB嵌入式AI开发平台AID(包含支持异构计算库HCL、嵌入式深度学习框架Tengine、以及轻量级嵌入式计算机视觉加速库BladeCV)。为AI应用提供简洁、高效、统一的API接口,加速终端AI产品的场景化应用落地实现。

计算机视觉教学主要内容如下:


01图像采集

图像采集主要介绍如何对EAI610-P0的视频图像进行采集,以及介绍V4L2,RockchipISP和RockchipRGA 的概念及简单操作应用。

02图像处理

图像处理是指对图像进行分析、加工、和处理,使其满足视觉、心理或其他要求的技术。图像处理是信号处理在图像领域上的一个应用。图像处理通过对MIPI摄像头采集到的图像应用多种处理方法,介绍了数字图像处理领域的常用概念和基本方法。

03视频编码

视频编码教学案例的目的是介绍视频压缩的原理,并以EAIDK610为例展示一个实际的视频硬编码实例。主要介绍的视频压缩的概念和历史,同时着重分析了H.264标准,在此基础上采用EAIDK610上的硬件编码作为实例,希望达到理论和实践相结合的教学目标。

04视频解码

视频解码介绍视频压缩的原理,并以EAIDK610为例展示一个实际的视频硬解码实例。教学方案介绍的视频压缩的概念和历史,同时着重分析了H.264标准,在此基础上采用EAIDK610上的硬件解码作为实例,希望达到理论和实践相结合的教学目标。

05视频分析之背景提取

背景提取主要介绍在EAI610-P0的实时采集视频图像基础上的背景提取,着重介绍和实现基于混合高斯模型和CodeBook的背景提取算法,最后对结果简单分析,并对其他算法进行简要介绍。

06人脸检测(传统机器学习方法)

人脸检测是为了学习人脸检测的概念,了解传统机器学习人脸检测方法,展示传统机器学习算法及应用开发过程。本教学方案以haar+adaboost算法为例,从算法的原理分析开始,不仅介绍了算法训练的过程,也展示了算法在嵌入式平台(EAI610-P0)的部署。

07人脸特征提取(深度学习方法)

人脸特征提取是以人脸特征提取方案为例,展示完整的深度学习算法及应用开发过程,同时介绍人脸识别中的核心算法概念。此教学方案以Light CNN 为例,从算法的原理分析开始,不仅介绍了算法训练的过程,也展示了算法在嵌入式平台(EAI610-P0)的部署。

08双目立体视觉

双目立体视觉是学习立体视觉的概念,掌握用双目相机计算深度信息的方法。从双目相机标定及矫正原理分析开始,介绍双目立体视觉的基础理论方法,并且介绍了基于SGBM的深度计算算法,最终在嵌入式平台(EAI610-P0)上使用两个高清相机模组部署。

09人脸识别系统

人脸识别是以人脸特征提取方案为例,展示完整的深度学习算法及应用开发过程,以 Light CNN 1 为例 ,从算法的原理及特点开始,不仅介绍了算法训练的过程,也展示了算法在嵌入式平台(EAI610-P0)的部署 。

010双路人脸门禁系统

双路人脸门禁系统是以嵌入式人工智能开发套件(EAIDK-610)为基础平台,人员进门时,网络摄像机(IPC)连续抓取多张人脸信息,并毫秒级地比对抓取照片和底库信息,比对成功后触发开门动作,人脸抓取、比对结果和人员进门的信息在显示设备上实时展示。

011目标检测(深度学习方法)

目标检测方案是在嵌入式平台上进行机器视觉的目标检测,通过深度学习的方法实现对多目标物体进行检测并识别。使用Arm的嵌入式人工智能开发套件(EAIDK-610)为基础平台,通过网络摄像机进行视频数据采集,EAIDK-610作为边缘智能处理对视频进行分析,并实时显示分析结果。

EAIDK-嵌入式人工智能开发套件(Embedded AI Development Kit 简称EAIDK),是全球首个采用Arm架构的人工智能开发平台,专为 AI 开发者精心打造,面向边缘计算的人工智能开发套件。

硬件平台具备语音、视觉等传感器数据采集能力,及适用于多场景的运动控制接口;智能软件平台支持视觉处理与分析、语音识别、语义分析、SLAM 等应用和主流开源算法,满足AI 教育、算法应用开发、产品原型开发验证等需求。

请问一下:Ra-01/Ra-02 LoRa 模块作为终端节点,可以与这个开发板套件的SX1301网关进上下通信吗?

lorawan雪梨君 回复了问题 • 2 人关注 • 1 个回复 • 40 次浏览 • 2019-06-17 12:03 • 来自相关话题

Lora系统产品即将推出视频教程

lorawan雪梨君 发表了文章 • 0 个评论 • 50 次浏览 • 2019-06-12 14:31 • 来自相关话题

为了给客户提供更直观生动的使用体验,我司针对教学产品、开发套件将逐步推出系列视频教程。先期将针对lora/lorawan相关产品推出视频教程,敬请关注。下面是先导片: ...查看全部

为了给客户提供更直观生动的使用体验,我司针对教学产品、开发套件将逐步推出系列视频教程。

先期将针对lora/lorawan相关产品推出视频教程,敬请关注。下面是先导片:


https://www.bilibili.com/video/av45125243/





LoraWan网关最大可支持多少节点,网络容量有多少?

lorawan雪梨君 回复了问题 • 2 人关注 • 1 个回复 • 50 次浏览 • 2019-06-12 10:59 • 来自相关话题

LPKT001开发套件几个问题

lorawan雪梨君 回复了问题 • 2 人关注 • 1 个回复 • 42 次浏览 • 2019-06-12 10:18 • 来自相关话题

Gateway怎么恢复到原始状态?

lorawan雪梨君 回复了问题 • 2 人关注 • 1 个回复 • 32 次浏览 • 2019-06-11 17:03 • 来自相关话题

我是上周六拿到手的开发套件跑了一晚上,1301发热比较大,这个正常吗?

lorawan雪梨君 回复了问题 • 2 人关注 • 1 个回复 • 31 次浏览 • 2019-06-11 17:02 • 来自相关话题

网关MAC地址这里一直显示是叹号,节点连接不上

lorawan雪梨君 回复了问题 • 2 人关注 • 1 个回复 • 30 次浏览 • 2019-06-11 17:01 • 来自相关话题

之前采购了贵公司的LPKT002高级套件,现在要做一下信号质量测试,请问有什么方法吗?

lorawan雪梨君 回复了问题 • 2 人关注 • 1 个回复 • 36 次浏览 • 2019-06-11 16:21 • 来自相关话题