475|3

106

帖子

0

资源

一粒金砂(中级)

RK3399科普环节丨OK3399-C开发板+RK1808人工智能计算棒(主动模式) [复制链接]

一、  硬件平台

 

平台:OK3399-C

系统:Desktop

模块:TB-RK1808S0

环境准备:

< class="p" style="border:0px">飞凌OK3399-C开发板,rk1808人工智能计算棒(固件版本为V1.3.4),usb摄像头,摄像头和计算棒都插入OK3399-C开发板。

 

< class="p" style="border:0px">使用lsusb命令查看,如下(红框部分 2207:0018即为RK1808 人工智能计算棒):

 

< class="p" style="border:0px">输入命令如下:

 

< class="p" style="border:0px">

 

f_28aaf6367d9cf97dac74591b14b828fb&amp;t=jpg&amp;o=&amp;s=&amp;v=1591864990  

 

二、 概述

AI计算区分为四个不同的象限,分别是云端训练、云端推理,边缘训练以及边缘推理。其中终端推理,几乎都集中在Arm架构生态上。AI神经网络计算目前可以通过 CPU、GPU、DSP、NPU、FAGA等完成,但不同的硬件特性会导致效率和功耗的不同。其中NPU——嵌入式神经网络处理器采用“数据驱动并行计算”的架构,最擅长的就是视频、图像类的海量多媒体数据的处理,并且相比GPU等具有更低的功耗。我司推出OK3399-C Desktop+RK1808(含3Tops算力NPU)的组合,在满足AI边缘计算的情况下,使得功耗大幅降低。

RK1808计算棒拥有主动模式和被动模式两种模式。主动模式下,RK1808人工智能计算棒是一个专用AI应用模块。RK1808人工智能计算棒作为主动设备,RK1808人工智能计算棒内部默认已安装rknn-toolkit和rknn-api,上位机(也称宿主机)无需安装rknn-toolkit和rknn-api,模型及算法固化在RK1808人工智能计算棒中,OK3399-C通过USB口向计算棒输入数据(例如图片和视频流),RK1808人工智能计算棒自动完成数据的前处理、推理、后处理,然后把处理结果通过USB口输出给OK3399-C。

< class="p" style="border:0px">为了方便用户通过USB口传输数据,RK1808人工智能计算棒会把USB口虚拟成网卡等标准设备,用户只需通过标准设备接口的操作(例如网络的socket编程)即可完成对RK1808人工智能计算棒数据的输入和输出。

 

< class="p" style="border:0px">细节如下:

 

< class="p" style="border:0px">        1.RK1808计算棒插入上位机后,会被虚拟成网卡设备

 

< class="p" style="border:0px">        2.上位机OK3399-C进行虚拟网卡配置,配置IP为192.168.180.1,保证上位机和1808中间的网络连接正常

 

< class="p" style="border:0px">        3.计算棒默认IP为192.168.180.8,账号密码皆为toybrick,用户可以SSH登录计算棒,拷贝模型和server服务程序到计算棒

 

< class="p" style="border:0px">        4.计算棒端运行server服务程序,用来接收上位机的连接请求,并调用RKNN进行处理,再返回结果

 

< class="p" style="border:0px">        5.上位机运行client程序,连接server成功之后,发送推理请求,从1808端获取返回结果

 

< class="p" style="border:0px">

 

< class="p" style="border:0px"> f_0e9165f6714815631c685e4a8df9eca3&amp;t=jpg&amp;o=&amp;s=&amp;v=1591947130  

 

< class="p" style="border:0px">

 

< class="p" style="border:0px"> 

 

 

三、 计算棒网络 配置与网络 共享 配置

 

 

1、 计算棒网络 配置

< class="p" style="border:0px">上位机使用OK3399-C Forlinx Desktop系统,点击右下角网络按钮选择弹出窗口中的“Edit Connections...”选项:

 

< class="p" style="border:0px">

 

< class="p" style="border:0px"> f_894c68bcb79349f0cb08505e062225b0&amp;t=jpg&amp;o=&amp;s=&amp;v=1591947150  

 

< class="p" style="border:0px">

 

< class="p" style="border:0px">选择计算棒usb网卡生成的有线网络节点:

 

< class="p" style="border:0px"> f_891dc9440afe924fcf1b0b4a6009ad0b&amp;t=jpg&amp;o=&amp;s=&amp;v=1591947160  

 

< class="p" style="border:0px">

 

< class="p" style="border:0px">配置该节点为手动模式,设置IP:192.168.180.1,子网掩码:255.255.255.0,并保存:

 

< class="p" style="border:0px"> f_b32b3846037fb6322fc71f90c198672d&amp;t=jpg&amp;o=&amp;s=&amp;v=1591947170  

 

< class="p" style="border:0px">

 

< class="p" style="border:0px">终端输入ifconfig指令查看网络节点配置如下,可见usb网卡配置完成:

 

< class="p" style="border:0px"> f_0ec9ebf7b4bb72168df642a0fb3e2563&amp;t=jpg&amp;o=&amp;s=&amp;v=1591947180  

 

< class="p" style="border:0px">

 

< class="p" style="border:0px">ping一下1808计算棒网络192.168.180.8,如下网络可以连通:

 

< class="p" style="border:0px"> f_dbf2e246d915a4d84acec068438bd3f2&amp;t=jpg&amp;o=&amp;s=&amp;v=1591947189  

 

< class="p" style="border:0px">

 

< class="p" style="border:0px">使用ssh登录1808计算棒,用户名和密码默认都为toybrick,如下登陆成功:

 

< class="p" style="border:0px"> f_f40e88fb234edf7a4eeaa027cb1361cf&amp;t=jpg&amp;o=&amp;s=&amp;v=1591947198  

 

< class="p" style="border:0px">

 

2、网络 共享 配置

< class="p" style="border:0px"> 运行ifconfig,可以看到eth0、wlan0等宿主机网卡,我们用于访问外网,enx10dcb69f022c为USB网卡(RK1808人工智能计算棒虚拟网卡)。不同的系统网卡名称可能不一样,以实际网卡名称为准。

 

f_6fe5d8ba047a54599d499012926cbfbb&amp;t=jpg&amp;o=&amp;s=&amp;v=1591947206  

 

< class="p" style="border:0px">首先配置宿主机网络,使宿主机可以连通以太网,这里我们使用wlan0节点来上网,具体配置不再赘述。

 

< class="p" style="border:0px">命令行执行如下命令,其中enx10dcb69f022c需要修改成用户本地实际值;正常情况只要设置一次即可,若拔插设备发现网卡名称改变了或者用户手动删除该网卡,则需要重新设置。

 

< class="p" style="border:0px">1. sudo nmcli connection add con-name toybrick type ethernet ifname enx10dcb69f022c autoconnect yes ip4 192.168.180.1/24

 

< class="p" style="border:0px">配置NAT功能,执行如下命令,其中eno1需要修改成用户本地实际值;关机失效,所以每次电脑重启都要重新设置。

 

< class="p" style="border:0px">1. sudo sysctl   -w net.ipv4.ip_forward=1

 

< class="p" style="border:0px">sudo iptable -F

 

sudo iptables -t nat -F
sudo  iptables  -t  nat  -A POSTROUTING -o wlan0 -j MASQUERADE

 

注意:以自己开发板联网的实际端口为准,例:eth0

iptables命令部分释义如下:

iptables --help

--flush   -F [chain] Delete all rules in  chain or all chains 

--table       -t table table to manipulate (default: `filter') 

--append  -A chain Append to chain 

--jump -j target target for rule (may load target extension) 

 

MASQUERAD,地址伪装,算是snat中的一种特例,可以实现自动化的snat

SNAT是source networkaddress translation的缩写,即源地址目标转换。比如,多个PC机使用ADSL路由器共享上网,每个PC机都配置了内网IP,PC机访问外部网络的时候,路由器将数据包的报头中的源地址替换成路由器的ip,当外部网络的服务器比如网站web服务器接到访问请求的时候,他的日志记录下来的是路由器的ip地址,而不是pc机的内网ip,这是因为,这个服务器收到的数据包的报头里边的“源地址”,已经被替换了,所以叫做SNAT,基于源地址的地址转换。

DNAT是destination networkaddress translation的缩写,即目标网络地址转换,典型的应用是,有个web服务器放在内网配置内网ip,前端有个防火墙配置公网ip,互联网上的访问者使用公网ip来访问这个网站,当访问的时候,客户端发出一个数据包,这个数据包的报头里边,目标地址写的是防火墙的公网ip,防火墙会把这个数据包的报头改写一次,将目标地址改写成web服务器的内网ip,然后再把这个数据包发送到内网的web服务器上,这样,数据包就穿透了防火墙,并从公网ip变成了一个对内网地址的访问了,即DNAT,基于目标的网络地址转换。

此帖出自ARM技术论坛

回复

1584

帖子

0

资源

版主

神经计算棒里面要写程序吗?


回复

1810

帖子

3

资源

版主

如果有空,记得修改一下,代码可以用代码,要不看着标签太多了,看着头晕呀!

回复

18

帖子

0

资源

一粒金砂(中级)

如果有空,记得修改一下,代码可以用代码,要不看着标签太多了,看着头晕呀!

的确


回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

最新文章 更多>>
    关闭
    站长推荐上一条 1/10 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表