|
|
4 t% g/ P: k* X! B2 U
【新智元导读】Google Coral Edge TPU和NVIDIA Jetson Nano大比拼!本文从分别对两款最新推出的EdgeAI芯片做了对比,分析了二者各自的优劣势。
I0 o; q: M) z. e, O* }
2 q. t1 g: }/ o边缘智能被称作是人工智能的最后一公里。, X$ y: U6 q. _
% g6 X$ u* w o! s* z: `/ U5 SGoogle刚刚在3月份推出了Coral Edge TPU,是一款售价不到1000元人民币的开发板(Coral Dev Board),由Edge TPU模块和 Baseboard 组成。参数如下:& @) r4 W; e2 F- f- c: y
% x% q3 c' ?2 t# y1 k

, A- G" {* `; j9 Y6 w6 Z+ o: C v英伟达同样在上个月发布了最新的NVIDIA Jetson Nano,Jetson Nano是一款类似于树莓派的嵌入式电脑设备,其搭载了四核Cortex-A57处理器,GPU则是拥有128个NVIDIA CUDA核心的NVIDIA麦克斯韦架构显卡,内存4GB LPDDR4,存储则为16GB eMMC 5.1,支持4K 60Hz视频解码。. p: w. H' f' j
目前位置并没有太多关于这两款产品的评测报告。今天新智元为大家带来一篇由网友Sam Sterckval对两款产品的评测,除此以外他还测试了i7-7700K + GTX1080(2560CUDA),Raspberry Pi 3B +,以及一个2014年的MacBook pro包含一个i7-4870HQ(没有支持CUDA的内核)。# \ t" b7 W: Z6 m# R4 R* h
Sam使用MobileNetV2作为分类器,在imagenet数据集上进行预训练,直接从Keras使用这个模型,后端则使用TensorFlow。使用GPU的浮点权重,以及CPU和Coral Edge TPU的8bit量化tflite版本。
8 W6 h# O" f- B& O$ ]首先,加载模型以及一张喜鹊图像。先执行1个预测作为预热,Sam发现第一个预测总是比随后的预测更能说明问题。然后Sleep 1秒,确保所有的线程的活动都终止,然后对同一图像进行250次分类。9 p2 c+ ~/ ~5 ]9 ?
2 t8 I! P$ l7 e0 D% g, V
对所有分类使用相同的图像,能够确保在整个测试过程中保持接近的数据总线。0 k8 J M! m7 Q X5 b
& Z; v$ O" f C
对比结果 先来看最终的结果:
: j$ H% x7 q' o( f8 Q9 r 2 w4 y* f6 d0 k: w1 ]8 R
线性刻度,FPS
y$ m* M. M8 y8 z3 |对数刻度,FPS
! `4 o; P6 f, N% k/ \* E8 Q* k5 Y! p4 L) U$ a8 x
. E$ m9 m6 q2 u% z6 p' G0 }
线性刻度,推理时间(250x)
! }5 i- d% a: d/ _* D! Z3 k% N9 D) J/ Y% f
Sam发现使用CPU的量化tflite模型得分是不同的,但似乎它总是返回与其它产品相同的预测结果,他怀疑模型有点奇怪,但能确保它不会影响性能。6 {) i8 C+ r6 P8 `
对比分析 第一个柱状图中我们可以看到有3个比较突出的数据,其中两个2个是由Google Coral Edge TPU USB加速器实现的,第3个是由英特尔i7-7700K辅助NVIDIA GTX1080实现。
, Q, N: L6 H8 |( A& @/ I9 W# H我们再仔细对比一下就会发现,GTX1080实际上完全无法跟Google的Coral对飚。要知道GTX1080的最大功率为180W,而Coral Edge TPU只有2.5W。
5 N r* r6 f0 fNVIDIA Jetson Nano的得分并不高。虽然它有一个支持CUDA的GPU,但实际上并没比那台2014年MBP的i7-4870HQ快太多,但毕竟还是比这款四核,超线程的CPU要快。" I5 Y8 ^! _1 c' O# B+ k
然而相比i7 50W的能耗,Jetson Nano平均能耗始终保持在12.5W,也就是说功耗降低75%,性能提升了10%。2 C. b: a- L+ l6 N# d
NVIDIA Jetson Nano8 M. y0 P9 v& P! m+ A; G
尽管Jetson Nano并没有在MobileNetV2分类器中表现出令人印象深刻的FPS率,但它的优势非常明显:: P8 l$ d( ^% e% ]" N3 r
它很便宜,能耗低,更重要的是,它运行TensorFlow-gpu或任何其他ML平台的操作,和我们平时使用的其他设备一样。只要我们的脚本没有深入到CPU体系结构中,就可以运行与i7 + CUDA GPU完全相同的脚本,也可以进行训练!Sam强烈希望NVIDIA应该使用TensorFlow预加载L4T。 c& ^, @0 P/ Q

: j) f. z5 F: b) J6 }: ^Google Coral Edge TPU
6 L7 m" T6 e! O( L; H7 o) kSam毫不掩饰的表达了他对Google Coral Edge TPU的精心设计以及高效率的喜爱。下图我们可以对比Edge TPU有多小。
( l9 H. N: @# n) N, i/ }2 {5 z' \
9 A; `8 h' c* {+ F Z* ZPenny for scale,来源:谷歌 ?, R* h/ [9 A7 a
/ h$ `. a* o" G
Edge TPU就是所谓的“ASIC”(专用集成电路),这意味着它具有FET等小型电子部件,以及能够直接在硅层上烧制,这样它就可以加快在特定场景下的推力速度。但Edge TPU无法执行反向传播。 o, d2 d7 G% u% K% e
3 W7 `. K3 h; y. k
Google Coral Edge TPU USB加速器
( g# ~, T J8 @
1 x) b& I' W. ^ z A9 w1 O/ F9 ]下图显示了Edge TPU的基本原理。
/ X! v9 J" S" y; r
6 V& Y W; ?7 @1 v9 [% G2 U像MobileNetV2这样的网络主要由后面带有激活层的卷积组成。公式如下:" R" l" v N; x' G& [+ q6 M

0 P; T) M( l$ X7 C% m卷积
+ F% ~1 \6 w" i: t" {- f
2 A9 t% ^1 s2 t) G7 L这意味着将图像的每个元素(像素)与内核的每个像素相乘,然后将这些结果相加,以创建新的“图像”(特征图)。这正是Edge TPU的主要工作。将所有内容同时相乘,然后以疯狂的速度添加所有内容。这背后没有CPU,只要你将数据泵入左边的缓冲区就可以了。: m0 q. A2 i) N
我们看到Coral在性能/瓦特的对比中,差异如此大的原因,它是一堆电子设备,旨在完成所需的按位操作,基本上没有任何开销。
; Z+ D5 r: c; o& Y, p# t5 B, g总结 为什么GPU没有8位模型?
* ^! ~4 F- |) b+ _1 ?+ d x6 P) CGPU本质上被设计为细粒度并行浮点计算器。而Edge TPU设计用于执行8位操作,并且CPU具有比完全位宽浮点数更快的8位内容更快的方法,因为它们在很多情况下必须处理这个问题。
, J6 S% o- k' u- d, Y/ |/ o为何选择MobileNetV2?2 G- u& _. [' X/ p2 k; w
主要原因是,MobileNetV2是谷歌为Edge TPU提供的预编译模型之一。- V0 t. s0 }7 w% [3 e6 w
Edge TPU还有哪些其他产品?
( }0 V( v" Q X它曾经是不同版本的MobileNet和Inception,截至上周末,谷歌推出了一个更新,允许我们编译自定义TensorFlow Lite模型。但仅限于TensorFlow Lite模型。而反观Jetson Nano就没有这方面的限制。2 K% s% P/ x" d5 I3 r i% P
Raspberry Pi + Coral与其他人相比
# A* R& k0 J) y: t: d7 v; ]; W; w为什么连接到Raspberry Pi时Coral看起来要慢得多?因为Raspberry Pi只有USB 2.0端口。# o) d$ H3 s' t
i7-7700K在Coral和Jetson Nano上的速度都会更快一些,但仍然无法和后两者比肩。因此推测瓶颈是数据速率,不是Edge TPU。0 c4 M1 V7 N# ^, ]

& M1 X% P' a1 ~
6 o. I+ b% c {# a# E) F1 o/ k: K【加入社群】
l5 ~! J: ^& S( V / h0 A/ W1 A: M# \! g5 j3 h# S
& w& o- X& y, w% x* L# m来源:http://www.yidianzixun.com/article/0Lt3VMHK$ [: m8 W4 q0 k5 H N- r
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|