边缘计算框架_边缘计算参考框架-程序员宅基地

技术标签: 边缘计算  人工智能  

1 云计算相关知识

1.1 概念及术语

PaaS/SaaS

私有云需要
(1) 服务器虚拟化
VMware ESXi或vSphere
(2) 网络虚拟化(SDN)
例如VMware NSX或Open vSwitch,这些来自开源领域的SDN产品。
(3) 存储虚拟化(SAN)
VMware提供VSAN,而Swift和Ceph则是开源领域的两款选项

云端管理软件
OpenStack、Oracle Cloud和VMware Integrated OpenStack等

开源私有云方案
Seafile&oWnCloud
云主机管理软件nano portal
超融合私有云
StarVCenter
一套国产超融合云平台IaaS软件,能通过整合企业数据中心(机房)硬件,轻松搭建私有云

CNCF(云原生计算基金会)
容器管理云平台 Rancher
还有kubesphere
KubeSphere 是在 Kubernetes 之上构建的面向云原生应用的分布式操作系统,完全开源,支持多云与多集群管理,提供全栈的 IT 自动化运维能力,简化企业的 DevOps 工作流。
dive显示docker层中的内容
大家所熟知的容器调度引擎有K8S, Swarm, Mesos和Rancher,这些都是开源的调度引擎
K8S入门推荐《k8s in action》这本书
k8s和docker核心干货
https://zhuanlan.zhihu.com/p/494054143
2022 年 4 月 dockershim 将会从 Kubernetes 1.24 中完全移除
containerd 是一个来自 Docker 的高级容器运行时,并实现了 CRI 规范。
OperatorHub.io
OperatorHub.io网站,它是K8S Operator的集中式存储库.
Kubernetes Operator
Operator 是由 CoreOS 开发的,用来扩展 Kubernetes API,特定的应用程序控制器,它用来创建、配置和管理复杂的有状态应用,如数据库、缓存和监控系统。Operator 基于 Kubernetes 的资源和控制器概念之上构建,但同时又包含了应用程序特定的领域知识。创建Operator 的关键是CRD(自定义资源)的设计。
Operator Framework
Operator Framework 同样也是 CoreOS 开源的一个用于快速开发 Operator 的工具包,该框架包含两个主要的部分:
Operator SDK: 无需了解复杂的 Kubernetes API 特性,即可让你根据你自己的专业知识构建一个 Operator 应用。
Operator Lifecycle Manager OLM: 帮助你安装、更新和管理跨集群的运行中的所有 Operator(以及他们的相关服务)

Proxmox VE(Proxmox Virtual Environment) 是一个集成OPENVZ 支持KVM应用的环境,开源虚拟机平台 。OpenVZ是基于Linux内核和作业系统的操作系统级虚拟化技术。OpenVZ允许物理服务器运行多个操作系统,被称虚拟专用服务器(VPS,Virtual Private Server)或虚拟环境(VE, Virtual Environment)。授权为GPLv2

基于kvm的虚拟机解决方案,还有RedHat的开源版本 oVirt。
都有web管理界面

HCI(Hyperconverged Infrastructure,即超融合)
SmartX(北京志凌海纳科技有限公司)是领先的超融合存储和虚拟化等IT基础架构与解决方案提供商。融合套件包括 SmartX 超融合基础设施中的 SMTX OS 和 CloudTower。 社区版完全免费,简单易得、功能丰富
虚拟化容器方案有KVM,VMware,Xenserver和Openstack。

云计算相关的考试
阿里云ACE认证
HCIP认证
华为云HCIE含金量更高?

2 人工智能相关概念

机器学习是人工智能的一个子领域。深度学习是机器学习的一个子领域,神经网络构成了深度学习算法的支柱。事实上,区分单个神经网络与深度学习算法的,是神经网络的节点层数或深度,深度学习算法必须超过三层。
机器学习
常见机器学习任务的端到端示例,例如图像分类、对象检测、姿势估计、问题回答、文本分类等。

2.1 术语及概念

IoT(Internet of Things,物联网)
onnx 叫做Open Neural Network Exchange。数据格式采用protobuf 如:onnx.proto
Pytorch -> ONNX -> TensorRT
Pytorch -> ONNX -> TVM
TF – onnx – ncnn
安装:pip onnx (同时也会装protobuf)
openvino:英特尔(Intel)为了让大家能够快速入门,提出了一项免费、跨硬体(CPU、 GPU、FPGA、ASIC)的开放电脑视觉推论及神经网路(深度学习)优化工具包「OpenVINO」( Open Visual Inference & Neural Network Optimization Toolkit),同时提供很多预先训谏及优化好的神经网路模型可供大家直接使用。
参考
Cann
TransPose
HRNet:人体姿势估计神经网络
HigherHRNet:自下而上的HRNet
参考
CNN(Convolution Neural Network,卷积神经网路)一般传统用于影像分类。
RNN(循环神经网络)
DNN (Deep Neural Network)
GAN
MXNet 是亚马逊(Amazon)选择的深度学习库。

目标检测常用的算法,比如Yolov3、Yolov4算法、Yolov5算法、Yolox算法。
参考文档

NLP 自然语言处理
常见图像分类模型(InceptionV3 和 MobileNet)
TensorFlow 是一个端到端平台,它可以让您轻松地构建和部署机器学习模型。
描述:用于数值计算的使用数据流图的开源软件库.

PyTorch是一个基于Torch的Python开源机器学习库,用于自然语言处理等应用程序。它主要由Facebookd的人工智能小组开发,不仅能够实现强大的GPU加速,同时还支持动态神经网络,这一点是现在很多主流框架如TensorFlow都不支持的。 PyTorch提供了两个高级功能:
1.具有强大的GPU加速的张量计算(如Numpy)
2.包含自动求导系统的深度神经网络
PyTorch不支持快速傅里叶?但支持动态神经网络
Torch是一个有大量机器学习算法支持的科学计算框架,是一个与Numpy类似的张量(Tensor) 操作库,其特点是特别灵活,但因其采用了小众的编程语言是Lua,所以流行度不高,所以其实Torch是 PyTorch的前身,它们的底层语言相同,只是使用了不同的上层包装语言。
Numpy是一个用python实现的科学计算包,包括:1、一个强大的N维数组对象Array;2、比较成熟的(广播)函数库;3、用于整合C/C++和Fortran代码的工具包;4、实用的线性代数、傅里叶变换和随机数生成函数。numpy和稀疏矩阵运算包scipy配合使用更加方便。

2.2 一些开发环境

端(手机与IOT设备)、边(基站与路由设备)、云(服务器)
量化/剪枝/蒸馏
MindSpore(AI框架):是华为自研的一个全场景的深度学习框架。
MindX SDK(昇腾SDK):行业SDK和应用解决方案。
ModelArts(AI开发平台):华为云AI开发平台。
MindStudio(全流程开发工具链):AI全流程开发IDE)

3 边缘计算框架

AWS的Greengrass
微软的Azure IoT Edge 运行时开源,要配合Azure
阿里的linkEdge
华为云智能边缘服务 IEF
华为的云边端一体开发模式EC
Linux基金会的Edgex Foundry
Cloud Foundry

KubeEdge和K3S
前者是华为捐给CNCF的

板卡上部署边缘集群方案
恩智浦EdgeScale:面向边缘计算的安全、可扩展设备管理套件
三个管理级别:
1、点击式仪表板用于快速开发和定制
2、命令行界面(CLI)用于提高管理大规模部署时的控制力
3、RESTful API用于与任何云计算框架集成,同时让OEM能够提供自己独特的最终用户体验
结合AWS亚马逊公有云部署
参考文档:
Real-time Edge Software User Guide
IMX yocto工程
LSDK Yocto project

边缘计算的优点:
低延迟:计算能力部署在设备侧附近,设备请求实时响应;
低带宽运行:将工作迁移至更接近于用户或是数据采集终端的能力能够降低站点带宽限制所带来的影响。尤其是当边缘节点服务减少了向中枢发送大量数据处理的请求时。
隐私保护:数据本地采集,本地分析,本地处理,有效减少了数据暴露在公共网络的机会,保护了数据隐私。
参考:
2020十大边缘计算开源项目
几款开源边缘计算平台

其他概念
(MEC)移动边缘计算?多接入边缘计算
屏蔽双绞线 (STP, Shielded Twisted Pair)
非屏蔽双绞线 (UTP, Unshielded Twisted Pair )
神经处理单元(NPU)

4 NXP实时边缘文档《Real-time Edge Software User Guide》解读

NXP edgescale
相关的三个Yocto层职责:
meta-real-time-edge 聚焦Cortex-A核上的Linux和裸金属应用编译
meta-nxp-harpoon 聚焦Cortex-A core上的RTOS编译.
meta-rtos-industrial 聚焦Cortex-M核上的RTOS编译

meta-real-time-edge/recipes-extended/real-time-edge-jailhouse 该脚本描述了如何编译运行在Cortex-A核上的 jailhouse
meta-real-time-edge/recipes-extended/real-time-edge-baremetal 该脚本描述了如何编译运行在Cortex-A核上的裸金属应用

Harpoon提供了开发运行在一个或多个Cortex-A核上的实时应用的环境,该RTOS与linux并行运行

PTP部分可以参考该文档 4.3.5 Quick Start for IEEE 1588

安装网络配置工具:
参考 5.4.2.2 Installing Netopeer2-cli on Ubuntu18.04

  1. 安装依赖包
    apt install -y git cmake build-essential bison autoconf dh-autoreconf flex
    apt install -y libavl-dev libprotobuf-c-dev protobuf-c-compiler zlib1g-dev
    apt install -y libgcrypt20-dev libssh-dev libev-dev libpcre3-dev

  2. 安装 libyang --下载会慢一些
    $ git clone https://github.com/CESNET/libyang.git
    $ cd libyang
    $ git checkout v1.0-r4 -b v1.0-r4
    $ mkdir build && cd build
    $ cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr …
    $ make && make install

  3. 安装 sysrepo (v0.7.8) --编译时间会久一些
    $ git clone https://github.com/sysrepo/sysrepo.git
    $ cd sysrepo
    $ git checkout v0.7.8 -b v0.7.8
    $ mkdir build && cd build
    $ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr …
    $ make && make install

  4. 安装 libnetconf2
    $ git clone https://github.com/CESNET/libnetconf2.git
    $ cd libnetconf2
    $ git checkout v0.12-r2 -b v0.12-r2
    $ mkdir build && cd build
    $ cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr …
    $ make && make install

  5. 安装 protobuf: – 编译最久
    $ git clone https://github.com/protocolbuffers/protobuf.git
    $ cd protobuf
    $ git submodule update --init --recursive
    $ ./autogen.sh
    $ ./configure
    $ make && make install
    $ sudo ldconfig # refresh shared library cache.

  6. 安装 Netopeer2-cli(v0.7-r2):
    $ git clone https://github.com/CESNET/Netopeer2.git
    $ cd Netopeer2
    $ git checkout v0.7-r2 -b v0.7-r2
    $ cd cli
    $ cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr .
    $ make && make install

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Austin_2020/article/details/131936683

智能推荐

android 11.0 去掉recovery模式UI页面的选项_android recovery 删除 部分菜单-程序员宅基地

文章浏览阅读942次。在11.0 进行定制化开发,会根据需要去掉recovery模式的一些选项 就是在device.cpp去掉一些选项就可以了。_android recovery 删除 部分菜单

mnn linux编译_mnn 编译linux-程序员宅基地

文章浏览阅读3.7k次。https://www.yuque.com/mnn/cn/cvrt_linux_mac基础依赖这些依赖是无关编译选项的基础编译依赖• cmake(3.10 以上)• protobuf (3.0 以上)• 指protobuf库以及protobuf编译器。版本号使用 protoc --version 打印出来。• 在某些Linux发行版上这两个包是分开发布的,需要手动安装• Ubuntu需要分别安装 libprotobuf-dev 以及 protobuf-compiler 两个包•..._mnn 编译linux

利用CSS3制作淡入淡出动画效果_css3入场效果淡入淡出-程序员宅基地

文章浏览阅读1.8k次。CSS3新增动画属性“@-webkit-keyframes”,从字面就可以看出其含义——关键帧,这与Flash中的含义一致。利用CSS3制作动画效果其原理与Flash一样,我们需要定义关键帧处的状态效果,由CSS3来驱动产生动画效果。下面讲解一下如何利用CSS3制作淡入淡出的动画效果。具体实例可参考刚进入本站时的淡入效果。1. 定义动画,名称为fadeIn@-webkit-keyf_css3入场效果淡入淡出

计算机软件又必须包括什么,计算机系统应包括硬件和软件两个子系统,硬件和软件又必须依次分别包括______?...-程序员宅基地

文章浏览阅读2.8k次。计算机系统应包括硬件和软件两个子系统,硬件和软件又必须依次分别包括中央处理器和系统软件。按人的要求接收和存储信息,自动进行数据处理和计算,并输出结果信息的机器系统。计算机是脑力的延伸和扩充,是近代科学的重大成就之一。计算机系统由硬件(子)系统和软件(子)系统组成。前者是借助电、磁、光、机械等原理构成的各种物理部件的有机组合,是系统赖以工作的实体。后者是各种程序和文件,用于指挥全系统按指定的要求进行..._计算机系统包括硬件系统和软件系统 软件又必须包括

MYSQL 查找单个字段或者多个字段重复数据,清除重复数据_mysql查询某个字段重复的数据-程序员宅基地

文章浏览阅读4w次,点赞85次,收藏305次。前文重复数据的情况分为两种:单个字段 数据重复多个字段 数据重复所以该篇的内容就是包括单个字段的重复数据查找 与 去重多个字段的重复数据查找 与 去重正文示例 accountinfo 表数据如下:场景一 单个字段重复数据查找 & 去重我们要把上面这个表中 单个字段 account字段相同的数据找出来。思路 分三步 简述:第一步要找出重复数据,我们首先想到的就是,既然是重复,那么数量就是大于 1..._mysql查询某个字段重复的数据

【转】用 Eclipse 平台的CDT控件进行 C/C++ 开发-程序员宅基地

文章浏览阅读88次。原文地址:http://www.ibm.com/developerworks/cn/linux/opensource/os-ecc/用 Eclipse 平台进行 C/C++ 开发Pawel Leszek 是 Studio B 的一位作家,他是一位专长于 Linux/Win/Mac OS 系统体系结构和管理的独立软件顾问和作家。他具有许多操作系统、编程语言和网络协议方面的经验..._eclipse c++ 创建控件

随便推点

mysql rownum写法_mysql应用之类似oracle rownum写法-程序员宅基地

文章浏览阅读133次。rownum是oracle才有的写法,rownum在oracle中可以用于取第一条数据,或者批量写数据时限定批量写的数量等mysql取第一条数据写法SELECT * FROM t order by id LIMIT 1;oracle取第一条数据写法SELECT * FROM t where rownum =1 order by id;ok,上面是mysql和oracle取第一条数据的写法对比,不过..._mysql 替换@rownum的写法

eclipse安装教程_ecjelm-程序员宅基地

文章浏览阅读790次,点赞3次,收藏4次。官网下载下载链接:http://www.eclipse.org/downloads/点击Download下载完成后双击运行我选择第2个,看自己需要(我选择企业级应用,如果只是单纯学习java选第一个就行)进入下一步后选择jre和安装路径修改jvm/jre的时候也可以选择本地的(点后面的文件夹进去),但是我们没有11版本的,所以还是用他的吧选择接受安装中安装过程中如果有其他界面弹出就点accept就行..._ecjelm

Linux常用网络命令_ifconfig 删除vlan-程序员宅基地

文章浏览阅读245次。原文链接:https://linux.cn/article-7801-1.htmlifconfigping <IP地址>:发送ICMP echo消息到某个主机traceroute <IP地址>:用于跟踪IP包的路由路由:netstat -r: 打印路由表route add :添加静态路由路径routed:控制动态路由的BSD守护程序。运行RIP路由协议gat..._ifconfig 删除vlan

redux_redux redis-程序员宅基地

文章浏览阅读224次。reduxredux里要求把数据都放在公共的存储区域叫store里面,组件中尽量少放数据,假如绿色的组件要给很多灰色的组件传值,绿色的组件只需要改变store里面对应的数据就行了,接着灰色的组件会自动感知到store里的数据发生了改变,store只要有变化,灰色的组件就会自动从store里重新取数据,这样绿色组件的数据就很方便的传到其它灰色组件里了。redux就是把公用的数据放在公共的区域去存..._redux redis

linux 解压zip大文件(解决乱码问题)_linux 7za解压中文乱码-程序员宅基地

文章浏览阅读2.2k次,点赞3次,收藏6次。unzip版本不支持4G以上的压缩包所以要使用p7zip:Linux一个高压缩率软件wget http://sourceforge.net/projects/p7zip/files/p7zip/9.20.1/p7zip_9.20.1_src_all.tar.bz2tar jxvf p7zip_9.20.1_src_all.tar.bz2cd p7zip_9.20.1make && make install 如果安装失败,看一下报错是不是因为没有下载gcc 和 gcc ++(p7_linux 7za解压中文乱码

Http请求中获取请求的真实的IP地址_获取http请求ip-程序员宅基地

文章浏览阅读2.1w次,点赞6次,收藏31次。获取客户端IP一、标题网络上常见的请求头1、X-Forwarded-For2、Proxy-Client-IP3、WL- Proxy-Client-IP4、HTTP_CLIENT_IP5、X-Real-IP二、注意事项1、非标准请求头2、不一定存在3、多重代理顺序4、请求头伪造三、代码场景样例一、标题网络上常见的请求头1、X-Forwarded-For这是一个 Squid 开发的字段,只有在通过了 HTTP 代理或者负载均衡服务器时才会添加该项。格式为X-Forwarded-For: client1, _获取http请求ip

推荐文章

热门文章

相关标签