作者

寒武纪AE团队,腾讯云容器中心边缘计算团队,SuperEdge 开发者

SuperEdge 支持国产智能加速卡寒武纪 MLU220

SuperEdge 对应的商业产品 TKE Edge 也一直在硬件和加速方面在持续耕耘,不但支持 NVIDIA 系列 GPU的加速,还在 GPU 虚拟,QGPU 化等方面持续发力。本次联合寒武纪对国产智能边缘加速卡进行了支持,以利于用户在边缘进行模型训练和边缘智能推理性能的提升。下面是经过寒武纪 AE 团队和 SuperEdge 开源团队的联合测试,对国产寒武纪边缘计算加速卡兼容性的联合声明。

中科寒武纪科技股份有限公司的边缘智能加速卡 MLU220-M.2和分布式边缘容器管理系统 SuperEdge 与相互兼容,能够对搭载M.2的边缘设备在视频、图像、语音等应用上提供数十倍的加速能力, 在此发表联合声明。

下面给出两个分类网络在 CPU 和 M.2 上的吞吐性能对比。

网络模型 M.2(fps) CPU(fps)
vgg16 184 13
resnet50 417 29

可以看出 vgg16 M.2 是普通 i7-8700K的14倍,Resnet50 也是普通 i7-8700K 的14倍。

其中,CPU 采用的是 Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz

SuperEdge 边缘容器解决方案

SuperEdge 是2020年12月腾讯云联合英特尔、VMware 威睿、虎牙、寒武纪、美团、首都在线发布的基于原生Kubernetes 的边缘分布式容器管理系统。该系统把云原生能力扩展到边缘侧,很好的实现了云端对边缘端的管理和控制,极大简化了应用从云端部署到边缘应用的过程。2021年9月已被 CNCF 基金会接受,成为 CNCF Sandbox项目,由 CNCF 监管和运维。

SuperEdge提供了如下能力:

边缘自治

云边网络往往是弱网络,中间可能是有线、无线、WIFI……连接,可能是4G、5G网络,云边断链是常态。断连时间不定,短则三五分钟,长则数小时、几天,那么如何保证边缘服务不被驱逐,继续提供正常服务呢?

SuperEdge 的边缘自治能力,可以保证云边断连的情况下,边缘服务继续稳定运行,即使边缘节点断电重启,也能自动恢复已经部署到该节点的边缘服务继续运行。

分布式健康检查

SuperEdge 提供的边缘分布式健康检查能力有两个作用:

  • 只要边缘节点正常,边缘服务就不会驱逐

    SuperEdge 会在每个边缘节点部署一个 edge-health 的 deamonset,同一个边缘 Kubernetes 集群的节点会定期 Check 彼此,对彼此的健康性进行投票,并将投票结果反馈到云端。即使边缘 Kubernetes 集群的一个节点云边网络断连,其他节点也会把他的健康性反馈到云端,就不会对该节点进行驱逐。
  • 可分组进行分布式健康检查

    即把边缘 Kubernetes 集群的边缘节点分成多个组(同一机房,或者同一地域),每个组内的节点之间相互检查。这样做的好处是避免集群规模增大后节点之间的 Check 数据交互变大,占用节点流量,投票结果也难以达成一致的情况。

edge-health 的设计避免了由于云边网络不稳定造成的大量的 Pod 迁移和重建,保证了边缘服务的稳定。

服务访问控制

SuperEdge 自研的 ServiceGroup 实现了基于边缘计算的服务访问控制,主要有三个作用:

  • 一键把边缘服务部署到不同站点

    可以一键把同一套服务部署到位于同一边缘 Kubernetes 集群的不同站点,各个站点的服务完全保持一致。该特性目前支持 DeploymentGrid 以及 ServiceGrid 两种 Custom Resource,可以便捷的在同一个集群的多个机房或区域中各部署一组服务。
  • 同一站点可实现流量闭环

    各个站点虽然有同一套服务,但是会把本站点的访问只锁定本站点内,不会跨站点去访问其他站点的同一套服务。
  • 新站点自动部署相应服务

    新加入的站点,可指定服务标签自动部署同一套站点服务,为站点扩展提供了自动部署服务的支持。

云边隧道

边缘节点一般是没有公网IP的,或者在一个NAT网络背后,云端无法直接访问边缘节点,这就使得 kubectl logs、kubectl exec……等云端访问边缘节点的请求完全失灵。

SuperEdge 自研的云边自建隧道(目前支持TCP、HTTP、HTTPS、ssh)打通了不同网络环境下的云边连接问题。实现对无公网 IP 边缘节点的云端统一操作和维护。

批量添加局域网边缘节点及远程运维局域网边缘节点

为了解决生产环境海量边缘节点的接入,SuperEdge 团队特提供了penetrator-controller组件支持了局域网内成千上万边缘节点的接入,并且还可以在云端远程登录到局域网内的边缘节点进行远程运维。

更多的特性可登录 SuperEdge 官网:https://superedge.io 进行查看,合作交流可在社区https://github.com/superedge/superedge 提 Issuse。

MLU220 是什么?

MLU220-M.2 是寒武纪为边缘计算专门打造的加速卡,它在手指大小的标准M.2加速卡上集成了 8TOPS 理论峰值性能,功耗仅为 8.25W,可以轻松实现终端设备和边缘端设备的 AI 赋能方案。支持视觉、语音、自然语言处理以及传统机器学习等多样化的人工智能应用,实现各种业务的边缘端智能化解决方案。

MLU220 具有如下特性:

  • 小个头大智能

    思元220芯片是面向边缘侧量身定制的智能化解决方案,在 U 盘大小的尺寸下就可以提供8路高清视频的实时智能分析,可广泛支持视觉、语音、自然语言处理以及传统机器学习等高度多样化的人工智能应用,为边缘计算节点装上智慧的大脑。

  • 新一代寒武纪硬件架构

    MLUv02 架构不是简单的从上一代升级而来,新架构基于片上网络(NOC)构建,多个 NPU 集群的并行效率。基于硬件的片内数据压缩,提升缓存有效容量和带宽。新架构提供 INT16,INT8,INT4,FP32,FP16 的全面 AI 精度支持,满足多样化神经网络的计算力要求,通用、性能兼备。

  • 计算弹性和可编程

    思元220芯片支持多类神经网络,NeuWare 软件栈可以轻松部署推理环境。BANG Lang 编程环境可对计算资源做直接定制,满足多样化 AI 定制要求,专业而不专用。

  • 加速卡硬件规格

    加速卡硬件规格可概括如下:

    参数 规格
    型号 MLU220-M.2
    内存 4GB, LPDDR4, 3200MHz
    AI算力 8TOPS(INT8)
    编解码能力 支持H.264,H.265, VP8, VP9;解码8x1080P@30Hz;编码4x1080P@30Hz
    图片解码 支持JEPG最大分辨率8K;解码410 fps@1080P;编码400 fps@1080P
    接口规格 M.2 2280, B+M Key (PCIE 3.0 X2)
    功耗 8.25W (3.3V 2.5A)
    结构尺寸 80mm x 22mm x 7.3mm(无散热)/21.3mm(带散热)
    散热 被动散热

MLU220 能用来做什么?

MLU220 小巧的体积,强大的算力,使得它可广泛应用于智慧交通、智能电网、智能制造、智能金融等边缘计算场景,下面是一些典型的应用场景的介绍:

智慧交通



为保障道路安全和有序,在城市中的十字路口和关键道路部署多路摄像头及 MLU220 边缘加速卡。

MLU220 可实现对多路摄像头输入图像的解码处理;基于深度学习技术,MLU220 可实现对监控路段的行人,机动车,和非机动车的检测,跟踪及结构化,在交通业务上进一步做到智能车流人流统计,违法抓拍取证,关键人车的识别抓取等,极大提高交通部门效率。

智慧工厂

为打造现代化智能制造的智慧工厂,在厂区工位部署多路摄像头及 MLU220 边缘加速卡。

凭借独立的编解码单元,MLU220 可实现对多路摄像头图像的解码;在强大的算力支持下,MLU220 可实现对工人的检测,姿态识别以及对工件的检测和识别,从而实现检测工人是否在岗,工人操作是否合规以及工件是否按规定摆放等工厂的智能管理。

智慧畜牧



为实现畜牧业生产管理,安全健康监控和养殖环境智能检测,在养殖基地部署多路摄像头和 MLU220 边缘加速卡;通过深度学习技术,实现对种猪的识别,检测,实例分割和跟踪,进一步实现对种猪的点数,健康检测,吃食统计,屠宰辅助等智能养殖技术,减少人力成本,提供养殖效率。

如何在 SuperEdge 上使用寒武纪 MLU220

我们基于 SuperEdge 演示如何使用寒武纪边缘智能加速卡:

用 edgeadm 创建一个 SuperEdge 边缘 Kubernetes 集群

  • 下载 edgeadm 安装包

    arch=amd64 version=v0.6.0 && rm -rf edgeadm-linux-* && wget https://superedge-1253687700.cos.ap-guangzhou.myqcloud.com/$version/$arch/edgeadm-linux-$arch-$version.tgz && tar -xzvf edgeadm-linux-* && cd edgeadm-linux-$arch-$version && ./edgeadm
  • 初始化边缘 Kubernetes Master 节点

    ./edgeadm init --kubernetes-version=1.18.2 --image-repository superedge.tencentcloudcr.com/superedge --service-cidr=10.96.0.0/12 --pod-network-cidr=192.168.0.0/16 --install-pkg-path ./kube-linux-*.tar.gz --apiserver-cert-extra-sans=<Master Public IP> --apiserver-advertise-address=<Master Intranet IP> --enable-edge=true
  • 加入一个带寒武纪边缘智能加速卡的边缘节点

    ./edgeadm join <Master Public/Intranet IP Or Domain>:Port --token xxxx --discovery-token-ca-cert-hash sha256:xxxxxxxxxx --install-pkg-path <edgeadm kube-* install package address path> --enable-edge=true

    关于 edgeadm 安装边缘 Kubernetes 集群的详细介绍可参考:用 edgeadm 一键安装边缘 K8s 集群和原生 K8s 集群

安装寒武纪边缘智能加速卡的插件

  • 安装边缘智能加速卡的插件

    kubectl create -f https://github.com/Cambricon/cambricon-k8s-device-plugin/blob/master/device-plugin/examples/cambricon-device-plugin-daemonset.yaml
  • 检查插件是否安装成功

     kubectl get node <边缘节点NodeName> -o json --output="jsonpath={.status.allocatable}"

    看到边缘节点 node status.allocatable 有 cambricon.com/mlu 有相关资源值表示边缘智能加速卡及插件安装成功。

    "allocatable": {
    "cambricon.com/mlu": "1", ## MUL卡资源
    "cpu": "12",
    ...
    "memory": "16164684Ki",
    "pods": "110"
    }

    看到allocatable里面存在cambricon.com/mlu并且其资源值大于等于0,表示寒武纪边缘智能加速卡及其插件已经安装成功。

    mlu插件下载地址:https://github.com/Cambricon/cambricon-k8s-device-plugin

    mlu监控组件:https://github.com/Cambricon/mlu-exporter

使用边缘智能加速卡进行边缘应用加速

在提交边缘相应负载的时候指定 cambricon.com/mlu 来应用寒武纪边缘智能加速卡进行加速, 比如:

apiVersion: v1
kind: Pod
...
spec:
containers:
- image: 10.13.30.52:5000/yolov4:latest
name: yolov4-ctr
resources:
limits:
cambricon.com/mlu: 1 ## 指定加速卡limits
requests:
cambricon.com/mlu: 1 ## 指定加速卡requests
...

未来

未来寒武纪和腾讯云会在边缘硬件和边缘云服务上进行更多的合作,为边缘 AI、边缘 IoT,数字化,人工智能……进行软硬件的赋能,并且相应能力在相关的商业产品中对用户提供支持,欢迎关注腾讯云边缘计算云平台 TKE Edge 和寒武纪相关加速商业产品,试用体验边缘更多的加速产品。

关于我们

更多关于云原生的案例和知识,可关注同名【腾讯云原生】公众号~

福利:

①公众号后台回复【手册】,可获得《腾讯云原生路线图手册》&《腾讯云原生最佳实践》~

②公众号后台回复【系列】,可获得《15个系列100+篇超实用云原生原创干货合集》,包含Kubernetes 降本增效、K8s 性能优化实践、最佳实践等系列。

【腾讯云原生】云说新品、云研新术、云游新活、云赏资讯,扫码关注同名公众号,及时获取更多干货!!

SuperEdge再添国产智能加速卡支持,为边缘智能推理再提速10倍的更多相关文章

  1. SmartIDE v0.1.18 已经发布 - 助力阿里国产IDE OpenSumi 插件安装提速10倍、Dapr和Jupyter支持、CLI k8s支持

    SmartIDE v0.1.18 (cli build 3538) 已经发布,在过去的Sprint 18中,我们集中精力推进对 k8s 远程工作区 的支持,同时继续扩展SmartIDE对不同技术栈的支 ...

  2. 人工智能AI智能加速卡技术

    人工智能AI智能加速卡技术 一. 可编程AI加速卡 1. 概述: 这款可编程AI加速器卡具备 FPGA 加速的强大性能和多功能性,可部署AI加速器IP(WNN/GNN,直接加速卷积神经网络,直接运行常 ...

  3. 使用Olami SDK 语音控制一个支持HomeKit的智能家居的iOS程序

    前言 HomeKit是苹果发布的智能家居平台.通过HomeKit组件,用户可以通过iphone.iPad和ipod Touch来控制智能灯泡,风扇.空调等支持HomeKit的智能家居,尤其是可以通过S ...

  4. Android微信智能心跳方案 Android微信智能心跳方案

    原文地址: http://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=207243549&idx=1&sn=4ebe4beb81 ...

  5. 【智能合约】编写复杂业务场景下的智能合约——可升级的智能合约设计模式(附Demo)

    智能合约的现状 以太坊在区块链上实现了智能合约的概念,用于:同质化通证发行(ERC-20).众筹.投票.存证取证等等,共同点是:合约逻辑简单,只是业务流程中的关键节点,而非整个业务流程.而智能合约想解 ...

  6. 10倍处理能力 阿里云推云上首个支持12层4K非编NAS产品

    5月23日,阿里云在2017云栖大会·成都峰会上正式推出了云上首个支持广电级非编的文件存储产品------NAS Plus,作为阿里云文件存储NAS的升级款,NAS Plus提供高达200Gbps的吞 ...

  7. 从零开始的DIY智能家居 - 基于 ESP32 的智能浇水器

    前言 上次 土壤湿度传感器 完成之后,就立下一个 flag 要搭建一个智慧浇水的智能场景,现在终于有时间填坑了!(o゚▽゚)o 智慧浇水场景的核心设备有三个: 检测土壤状态的:土壤湿度传感器 通过这个 ...

  8. 图像转置的SSE优化(支持8位、24位、32位),提速4-6倍。

    一.前言 转置操作在很多算法上都有着广泛的应用,在数学上矩阵转置更有着特殊的意义.而在图像处理上,如果说图像数据本身的转置,除了显示外,本身并无特殊含义,但是在某些情况下,确能有效的提高算法效率,比如 ...

  9. SSE图像算法优化系列四:图像转置的SSE优化(支持8位、24位、32位),提速4-6倍

    一.前言 转置操作在很多算法上都有着广泛的应用,在数学上矩阵转置更有着特殊的意义.而在图像处理上,如果说图像数据本身的转置,除了显示外,本身并无特殊含义,但是在某些情况下,确能有效的提高算法效率,比如 ...

随机推荐

  1. Java秘诀!Java赋值运算符介绍

    运算符丰富是 Java 语言的主要特点之一,它提供的运算符数量之多,在高级语言中是少见的. Java 语言中的运算符除了具有优先级之外,还有结合性的特点.当一个表达式中出现多种运算符时,执行的先后顺序 ...

  2. SpringBoot 后端接收前端传值的方法

    1.通过HttpServletRequest接收,适用于GET 和 POST请求方式       通过HttpServletRequest对象获取请求参数 @RestController @Reque ...

  3. Dapr-服务调用

    前言 上一篇对Dapr进行了了解,并搭建了Dapr环境.接下来就对Dapr的各个构建块类型的了解.应用实际案例. 一.服务调用: 在许多具有多个需要相互通信的服务的环境中,都会面临着很多问题. 如: ...

  4. 【UE4】Windows 的几种打包方式

    简述 自动化工具(Unreal Automation Tool,简称 UAT) 自动化工具使用特定的命令 BuildCookRun 封装流程包含 构建(Build):该阶段将为所选择的平台编译可执行文 ...

  5. 记一次 .NET 某资讯论坛 CPU爆高分析

    大概有11天没发文了,真的不是因为懒,本想前几天抽空写,不知道为啥最近求助的朋友比较多,一天都能拿到2-3个求助dump,晚上回来就是一顿分析,有点意思的是大多朋友自己都分析了几遍或者公司多年的牛皮藓 ...

  6. [敏捷软工团队博客]Beta阶段项目展示

    团队成员简介和个人博客地址 头像 姓名 博客园名称 自我介绍 PM 测试 前端 后端 dzx 秃头院的大闸蟹 大闸蟹是1706菜市场里无菜可卖的底层水货.大闸蟹喜欢音乐(但可惜不会),喜欢lol(可惜 ...

  7. 大厂面试题系列:重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分

    面试题:重载(Overload)和重写(Override)的区别.重载的方法能否根据返回类型进行区分 面试官考察点猜想 这道题纯粹只是考查基础理论知识,对实际开发工作中没有太多的指导意义,毕竟编辑器都 ...

  8. golang常用库:cli命令行/应用程序生成工具-cobra使用

    golang常用库:cli命令行/应用程序生成工具-cobra使用 一.Cobra 介绍 我前面有一篇文章介绍了配置文件解析库 Viper 的使用,这篇介绍 Cobra 的使用,你猜的没错,这 2 个 ...

  9. 顺时针打印矩阵 牛客网 剑指Offer

    顺时针打印矩阵 牛客网 剑指Offer 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 ...

  10. cf16E Fish(状压DP)

    题意: N只FISH.每个回合会有一只FISH吃掉另一个FISH.直到池塘里只剩一只FISH. 给出aij:第i只FISH吃掉第J只FISH的概率. 问每一只FISH是最后存活者的概率. Input ...