|
|
/ H" X4 X# A, D- @
【新智元导读】Google Coral Edge TPU和NVIDIA Jetson Nano大比拼!本文从分别对两款最新推出的EdgeAI芯片做了对比,分析了二者各自的优劣势。4 ]0 q" M6 E) |- W' `5 z$ \& g
* H3 N3 i, D2 K! r" E
边缘智能被称作是人工智能的最后一公里。
! i/ S8 S+ @8 N( m9 r$ ?! l" T1 P$ ?0 J9 A# k: O8 H9 f$ ]" w% r
Google刚刚在3月份推出了Coral Edge TPU,是一款售价不到1000元人民币的开发板(Coral Dev Board),由Edge TPU模块和 Baseboard 组成。参数如下:$ W/ `- K; e1 `+ U

( Z) ?' ~9 i5 i. E
, z2 @! D8 e9 l! ^6 }英伟达同样在上个月发布了最新的NVIDIA Jetson Nano,Jetson Nano是一款类似于树莓派的嵌入式电脑设备,其搭载了四核Cortex-A57处理器,GPU则是拥有128个NVIDIA CUDA核心的NVIDIA麦克斯韦架构显卡,内存4GB LPDDR4,存储则为16GB eMMC 5.1,支持4K 60Hz视频解码。, f! F% y ~, B* a
目前位置并没有太多关于这两款产品的评测报告。今天新智元为大家带来一篇由网友Sam Sterckval对两款产品的评测,除此以外他还测试了i7-7700K + GTX1080(2560CUDA),Raspberry Pi 3B +,以及一个2014年的MacBook pro包含一个i7-4870HQ(没有支持CUDA的内核)。. E8 ?# @- K: ~
Sam使用MobileNetV2作为分类器,在imagenet数据集上进行预训练,直接从Keras使用这个模型,后端则使用TensorFlow。使用GPU的浮点权重,以及CPU和Coral Edge TPU的8bit量化tflite版本。' j t$ l! Y* J6 m
首先,加载模型以及一张喜鹊图像。先执行1个预测作为预热,Sam发现第一个预测总是比随后的预测更能说明问题。然后Sleep 1秒,确保所有的线程的活动都终止,然后对同一图像进行250次分类。
% i4 j$ X) z$ R4 K
) Y( Q+ O6 I" Q& v6 r8 E对所有分类使用相同的图像,能够确保在整个测试过程中保持接近的数据总线。/ m# S9 b1 }1 P8 a
: V8 s: m) ~# e$ L- O对比结果 先来看最终的结果:( ]9 v5 b+ @! X1 @( n: O( Q

- f5 ?9 I% j# f+ x 线性刻度,FPS - ?" F. ?( U, f% C
对数刻度,FPS% R- y' C2 B6 p; x( a
$ ?3 a# p" l8 h" C6 f6 s ) B/ y$ f2 `. L' w* `. ?! x
线性刻度,推理时间(250x)7 G0 B0 i r, U% h5 T
5 M8 P3 f1 w1 \/ w$ H4 @! j# pSam发现使用CPU的量化tflite模型得分是不同的,但似乎它总是返回与其它产品相同的预测结果,他怀疑模型有点奇怪,但能确保它不会影响性能。1 v5 b" p; r! o4 ^0 I5 m. `+ C
对比分析 第一个柱状图中我们可以看到有3个比较突出的数据,其中两个2个是由Google Coral Edge TPU USB加速器实现的,第3个是由英特尔i7-7700K辅助NVIDIA GTX1080实现。: G$ B) j4 m4 Y: j
我们再仔细对比一下就会发现,GTX1080实际上完全无法跟Google的Coral对飚。要知道GTX1080的最大功率为180W,而Coral Edge TPU只有2.5W。3 n5 o2 v8 ?$ D4 [0 R, P
NVIDIA Jetson Nano的得分并不高。虽然它有一个支持CUDA的GPU,但实际上并没比那台2014年MBP的i7-4870HQ快太多,但毕竟还是比这款四核,超线程的CPU要快。- X+ [; g5 i4 \1 C( a
然而相比i7 50W的能耗,Jetson Nano平均能耗始终保持在12.5W,也就是说功耗降低75%,性能提升了10%。3 k( c) m6 z5 t4 c. i! H4 E) H% J
NVIDIA Jetson Nano
, y( H+ @5 u7 J: O3 `尽管Jetson Nano并没有在MobileNetV2分类器中表现出令人印象深刻的FPS率,但它的优势非常明显:; d" i" x, e& }, K* Q, {
它很便宜,能耗低,更重要的是,它运行TensorFlow-gpu或任何其他ML平台的操作,和我们平时使用的其他设备一样。只要我们的脚本没有深入到CPU体系结构中,就可以运行与i7 + CUDA GPU完全相同的脚本,也可以进行训练!Sam强烈希望NVIDIA应该使用TensorFlow预加载L4T。# t( l) L3 O2 T ~
+ C# L- Q; Q7 a6 S& G# a
Google Coral Edge TPU$ j% G' L( Y U9 s y
Sam毫不掩饰的表达了他对Google Coral Edge TPU的精心设计以及高效率的喜爱。下图我们可以对比Edge TPU有多小。 q. C+ o2 f' {. r0 ?" {+ @: Q
7 z* l4 O8 h9 {& J T5 Y
Penny for scale,来源:谷歌
, N. q* n$ K2 F, ?3 E: v5 Z! P, ^/ w% M
Edge TPU就是所谓的“ASIC”(专用集成电路),这意味着它具有FET等小型电子部件,以及能够直接在硅层上烧制,这样它就可以加快在特定场景下的推力速度。但Edge TPU无法执行反向传播。9 W' d% V4 J9 Z( E G! a
+ z% s7 e g/ S2 D- c
Google Coral Edge TPU USB加速器$ r+ D! e: Q" y5 u7 i( l. ?7 p
" O K H% K% k; S' e' \0 h4 r+ Q下图显示了Edge TPU的基本原理。
2 Q' C+ V" R5 l' M! V
) E3 y1 t y% Z7 }; w& q9 K像MobileNetV2这样的网络主要由后面带有激活层的卷积组成。公式如下:
- ]& \0 c7 u/ m) y- ]% f9 P ( ]+ a9 b% a& t6 _ ?
卷积5 _. |0 Z2 a9 h1 B
6 F$ y2 e7 u" v. `3 J6 T+ L1 U" a
这意味着将图像的每个元素(像素)与内核的每个像素相乘,然后将这些结果相加,以创建新的“图像”(特征图)。这正是Edge TPU的主要工作。将所有内容同时相乘,然后以疯狂的速度添加所有内容。这背后没有CPU,只要你将数据泵入左边的缓冲区就可以了。
1 t* m+ y' I- S+ X, \7 D# g1 ?$ K/ j我们看到Coral在性能/瓦特的对比中,差异如此大的原因,它是一堆电子设备,旨在完成所需的按位操作,基本上没有任何开销。
/ Z0 p- w; b* r总结 为什么GPU没有8位模型?# b" _0 l! [1 ]( h8 {
GPU本质上被设计为细粒度并行浮点计算器。而Edge TPU设计用于执行8位操作,并且CPU具有比完全位宽浮点数更快的8位内容更快的方法,因为它们在很多情况下必须处理这个问题。/ o: M. ?! }- N) W; @: _
为何选择MobileNetV2?/ f# v+ o' }4 P2 F
主要原因是,MobileNetV2是谷歌为Edge TPU提供的预编译模型之一。
; I# f! C" N7 `; q( uEdge TPU还有哪些其他产品?
# v! ?; G$ S# K它曾经是不同版本的MobileNet和Inception,截至上周末,谷歌推出了一个更新,允许我们编译自定义TensorFlow Lite模型。但仅限于TensorFlow Lite模型。而反观Jetson Nano就没有这方面的限制。 d) G# F4 l6 P- p
Raspberry Pi + Coral与其他人相比
0 s- G/ C2 ~* H& j为什么连接到Raspberry Pi时Coral看起来要慢得多?因为Raspberry Pi只有USB 2.0端口。4 v/ m, W9 S9 R1 i2 \2 u, q
i7-7700K在Coral和Jetson Nano上的速度都会更快一些,但仍然无法和后两者比肩。因此推测瓶颈是数据速率,不是Edge TPU。
1 p; ?7 l9 q# D+ O. u) J: q 6 b# a$ G9 L+ v5 Q
. ~, j5 ^: S) P( D3 ^
【加入社群】
6 X( z2 V/ J5 R- t6 Y/ p
1 t! W0 m, ^% O( C: J' o( b: I2 {4 b8 e1 _: y( R4 }+ {1 }$ z
来源:http://www.yidianzixun.com/article/0Lt3VMHK1 ]" P. C4 y4 U5 m: `
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|