|
|
( H _: _8 O+ J' i. u) d K
【新智元导读】Google Coral Edge TPU和NVIDIA Jetson Nano大比拼!本文从分别对两款最新推出的EdgeAI芯片做了对比,分析了二者各自的优劣势。
! Z, Y2 y0 T) I9 J q7 e$ c- T% W" x8 J% }4 m; Z3 f9 w
边缘智能被称作是人工智能的最后一公里。
3 I9 p1 ?7 h& N6 y
* x; M' d4 s& y5 ~1 j2 e8 P+ _Google刚刚在3月份推出了Coral Edge TPU,是一款售价不到1000元人民币的开发板(Coral Dev Board),由Edge TPU模块和 Baseboard 组成。参数如下:
@6 ?3 U9 ?. v* V# A/ Z2 K
9 x5 C. w9 M6 ?+ f4 E6 z
- z( V8 `1 z1 \" p9 R英伟达同样在上个月发布了最新的NVIDIA Jetson Nano,Jetson Nano是一款类似于树莓派的嵌入式电脑设备,其搭载了四核Cortex-A57处理器,GPU则是拥有128个NVIDIA CUDA核心的NVIDIA麦克斯韦架构显卡,内存4GB LPDDR4,存储则为16GB eMMC 5.1,支持4K 60Hz视频解码。
/ K, G, H |, m6 `% C& S目前位置并没有太多关于这两款产品的评测报告。今天新智元为大家带来一篇由网友Sam Sterckval对两款产品的评测,除此以外他还测试了i7-7700K + GTX1080(2560CUDA),Raspberry Pi 3B +,以及一个2014年的MacBook pro包含一个i7-4870HQ(没有支持CUDA的内核)。8 ]% n6 ^! x9 F; L: b, A
Sam使用MobileNetV2作为分类器,在imagenet数据集上进行预训练,直接从Keras使用这个模型,后端则使用TensorFlow。使用GPU的浮点权重,以及CPU和Coral Edge TPU的8bit量化tflite版本。, A/ z' U# [3 Z7 X ?, J2 c! ?
首先,加载模型以及一张喜鹊图像。先执行1个预测作为预热,Sam发现第一个预测总是比随后的预测更能说明问题。然后Sleep 1秒,确保所有的线程的活动都终止,然后对同一图像进行250次分类。9 @! @. c: q3 A E" e! i: A, @

: Z2 M) X' |) L3 l对所有分类使用相同的图像,能够确保在整个测试过程中保持接近的数据总线。
3 A3 D& x2 N) |" R( t8 i8 w7 r+ U
9 g5 `6 S4 w7 n" V- N+ E; C. N对比结果 先来看最终的结果:5 z8 z0 B9 z% ?2 M

& G) Z v5 z; V7 _8 T% F 线性刻度,FPS ) d4 L0 d/ ?6 h, L4 f1 E
对数刻度,FPS
- e6 `3 e3 r6 d- O: G( g# ~( \1 ?% G; b/ f; I& B" o- E7 ]
! t$ Q" p6 W# w. Y# p
线性刻度,推理时间(250x) Y: X) Q% S( E
1 |2 [& R7 X8 Z& V8 ^# k' F3 |7 X$ LSam发现使用CPU的量化tflite模型得分是不同的,但似乎它总是返回与其它产品相同的预测结果,他怀疑模型有点奇怪,但能确保它不会影响性能。
: a- I5 N b8 f8 S' D( {对比分析 第一个柱状图中我们可以看到有3个比较突出的数据,其中两个2个是由Google Coral Edge TPU USB加速器实现的,第3个是由英特尔i7-7700K辅助NVIDIA GTX1080实现。
9 u/ ?$ _& @) H! h5 ]/ V: G我们再仔细对比一下就会发现,GTX1080实际上完全无法跟Google的Coral对飚。要知道GTX1080的最大功率为180W,而Coral Edge TPU只有2.5W。
( S5 \" j {0 B4 m/ `; m( jNVIDIA Jetson Nano的得分并不高。虽然它有一个支持CUDA的GPU,但实际上并没比那台2014年MBP的i7-4870HQ快太多,但毕竟还是比这款四核,超线程的CPU要快。
f& j4 j' P+ N O然而相比i7 50W的能耗,Jetson Nano平均能耗始终保持在12.5W,也就是说功耗降低75%,性能提升了10%。
: ]7 x1 }+ n; p B* P* gNVIDIA Jetson Nano+ y" @! o9 Z5 f" d) O
尽管Jetson Nano并没有在MobileNetV2分类器中表现出令人印象深刻的FPS率,但它的优势非常明显:
2 H4 B, h$ d+ H它很便宜,能耗低,更重要的是,它运行TensorFlow-gpu或任何其他ML平台的操作,和我们平时使用的其他设备一样。只要我们的脚本没有深入到CPU体系结构中,就可以运行与i7 + CUDA GPU完全相同的脚本,也可以进行训练!Sam强烈希望NVIDIA应该使用TensorFlow预加载L4T。
# e% O( @; B9 X8 ]
1 Y! I' v: @& `% TGoogle Coral Edge TPU
Y7 J; R' A+ u7 [. z* @Sam毫不掩饰的表达了他对Google Coral Edge TPU的精心设计以及高效率的喜爱。下图我们可以对比Edge TPU有多小。
: G4 X# [' \& F: Y 3 a# G h/ f+ J5 P o# U c. g
Penny for scale,来源:谷歌
, c4 N; H; p8 ^. @4 K* a
7 J, J: v- [' Z1 p) @Edge TPU就是所谓的“ASIC”(专用集成电路),这意味着它具有FET等小型电子部件,以及能够直接在硅层上烧制,这样它就可以加快在特定场景下的推力速度。但Edge TPU无法执行反向传播。
! j# a" `" b/ ]( m% L 8 Q, C. n9 {1 I
Google Coral Edge TPU USB加速器- k/ }, J( e' a
; w0 U' c1 j1 A) i" W5 {/ t2 ^
下图显示了Edge TPU的基本原理。
0 w1 X2 k: [1 Q3 D) Q; J 9 }, e* q [* _$ |0 ]
像MobileNetV2这样的网络主要由后面带有激活层的卷积组成。公式如下:2 W% ]. O4 z* B3 {- h
" O* \! A# j0 I4 o. D7 Y
卷积% y0 m; A+ N/ z3 x. e
8 U- A1 N- R* t D( a4 T这意味着将图像的每个元素(像素)与内核的每个像素相乘,然后将这些结果相加,以创建新的“图像”(特征图)。这正是Edge TPU的主要工作。将所有内容同时相乘,然后以疯狂的速度添加所有内容。这背后没有CPU,只要你将数据泵入左边的缓冲区就可以了。/ N1 x) u. o: `2 X9 p' V
我们看到Coral在性能/瓦特的对比中,差异如此大的原因,它是一堆电子设备,旨在完成所需的按位操作,基本上没有任何开销。
1 H* E3 D" X+ h8 j6 Y; p3 a- u总结 为什么GPU没有8位模型?
0 m! z2 R' ^5 r0 S9 sGPU本质上被设计为细粒度并行浮点计算器。而Edge TPU设计用于执行8位操作,并且CPU具有比完全位宽浮点数更快的8位内容更快的方法,因为它们在很多情况下必须处理这个问题。
5 p5 z' T1 n: N6 Q) U) e为何选择MobileNetV2?0 e6 X- s7 }3 L. ?: L
主要原因是,MobileNetV2是谷歌为Edge TPU提供的预编译模型之一。
' O4 `4 w% L" J% \' FEdge TPU还有哪些其他产品?4 z) l% V0 A/ Q; k6 O1 N
它曾经是不同版本的MobileNet和Inception,截至上周末,谷歌推出了一个更新,允许我们编译自定义TensorFlow Lite模型。但仅限于TensorFlow Lite模型。而反观Jetson Nano就没有这方面的限制。
2 V0 c% n4 H0 X4 v% m% a( s" SRaspberry Pi + Coral与其他人相比
; m; {9 a& X; v: t' ] O3 g为什么连接到Raspberry Pi时Coral看起来要慢得多?因为Raspberry Pi只有USB 2.0端口。
' q' U! i* u+ I$ q; fi7-7700K在Coral和Jetson Nano上的速度都会更快一些,但仍然无法和后两者比肩。因此推测瓶颈是数据速率,不是Edge TPU。; R) A! W( U; v- v W0 A

( s9 _- g5 P; ?6 L/ h" F 9 O; F/ T: F% j& x0 m* z3 U
【加入社群】! f* P A8 X) z8 `3 a

- s- I; }4 N% r2 q% r! {
) X* Y$ X$ Q$ R6 `来源:http://www.yidianzixun.com/article/0Lt3VMHK# K3 b% F0 G. Q
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|