|
|

: b1 N& ?0 S% H# {( A$ p【新智元导读】Google Coral Edge TPU和NVIDIA Jetson Nano大比拼!本文从分别对两款最新推出的EdgeAI芯片做了对比,分析了二者各自的优劣势。3 M, d. w( j! @0 a7 Q! f1 N
: w6 K) O( g8 ?' v8 \6 K边缘智能被称作是人工智能的最后一公里。
( q! H C9 ?+ }/ S) g9 T: t" V' D6 p, g) C, Y% a
Google刚刚在3月份推出了Coral Edge TPU,是一款售价不到1000元人民币的开发板(Coral Dev Board),由Edge TPU模块和 Baseboard 组成。参数如下:& a" m# t$ a$ J
# u- |) j1 i* B7 ^' {! e
: @9 \" e* }2 i4 q( ^+ }
英伟达同样在上个月发布了最新的NVIDIA Jetson Nano,Jetson Nano是一款类似于树莓派的嵌入式电脑设备,其搭载了四核Cortex-A57处理器,GPU则是拥有128个NVIDIA CUDA核心的NVIDIA麦克斯韦架构显卡,内存4GB LPDDR4,存储则为16GB eMMC 5.1,支持4K 60Hz视频解码。
$ z' C; g% `6 W, H目前位置并没有太多关于这两款产品的评测报告。今天新智元为大家带来一篇由网友Sam Sterckval对两款产品的评测,除此以外他还测试了i7-7700K + GTX1080(2560CUDA),Raspberry Pi 3B +,以及一个2014年的MacBook pro包含一个i7-4870HQ(没有支持CUDA的内核)。
9 [ s' V0 t4 I- VSam使用MobileNetV2作为分类器,在imagenet数据集上进行预训练,直接从Keras使用这个模型,后端则使用TensorFlow。使用GPU的浮点权重,以及CPU和Coral Edge TPU的8bit量化tflite版本。
* `2 o+ P4 w1 Q首先,加载模型以及一张喜鹊图像。先执行1个预测作为预热,Sam发现第一个预测总是比随后的预测更能说明问题。然后Sleep 1秒,确保所有的线程的活动都终止,然后对同一图像进行250次分类。
. U. w: o" D8 B4 J5 Y5 w: U
9 c$ x8 ?( I1 i. E对所有分类使用相同的图像,能够确保在整个测试过程中保持接近的数据总线。
5 {5 w8 Z& c. p! W& P: p _9 ]9 l, q4 c. ]
对比结果 先来看最终的结果:9 \9 d2 ]' P+ o
2 [, f9 u- D, j! o' i/ W
线性刻度,FPS
: f' j9 N, Y( _' H6 Z对数刻度,FPS
+ l. H6 B4 o* m1 N4 b+ k" D4 d5 L/ d+ r- [/ S

4 [# \0 ?' u( W7 W4 E$ X) d线性刻度,推理时间(250x)
' C$ B, \; h q. G4 l: b7 b$ N1 J/ N# }5 V
Sam发现使用CPU的量化tflite模型得分是不同的,但似乎它总是返回与其它产品相同的预测结果,他怀疑模型有点奇怪,但能确保它不会影响性能。1 ?" e A) L$ e8 u
对比分析 第一个柱状图中我们可以看到有3个比较突出的数据,其中两个2个是由Google Coral Edge TPU USB加速器实现的,第3个是由英特尔i7-7700K辅助NVIDIA GTX1080实现。
% I2 f5 j$ C) ^0 q- Q我们再仔细对比一下就会发现,GTX1080实际上完全无法跟Google的Coral对飚。要知道GTX1080的最大功率为180W,而Coral Edge TPU只有2.5W。
3 i! Z1 n! k( a3 z- xNVIDIA Jetson Nano的得分并不高。虽然它有一个支持CUDA的GPU,但实际上并没比那台2014年MBP的i7-4870HQ快太多,但毕竟还是比这款四核,超线程的CPU要快。1 } Y( b: C9 b h% K: R' V
然而相比i7 50W的能耗,Jetson Nano平均能耗始终保持在12.5W,也就是说功耗降低75%,性能提升了10%。
" ], @) }- M( q* W0 _NVIDIA Jetson Nano
; _& ~ v: j: M1 G d6 r7 ]尽管Jetson Nano并没有在MobileNetV2分类器中表现出令人印象深刻的FPS率,但它的优势非常明显:, b5 d5 x2 x& k# \6 s4 o( c
它很便宜,能耗低,更重要的是,它运行TensorFlow-gpu或任何其他ML平台的操作,和我们平时使用的其他设备一样。只要我们的脚本没有深入到CPU体系结构中,就可以运行与i7 + CUDA GPU完全相同的脚本,也可以进行训练!Sam强烈希望NVIDIA应该使用TensorFlow预加载L4T。
" S) H0 E# P2 J; m
9 S% T$ z0 ^1 T+ m/ r+ S g# uGoogle Coral Edge TPU1 Q( S1 T0 e) X( A9 p3 c
Sam毫不掩饰的表达了他对Google Coral Edge TPU的精心设计以及高效率的喜爱。下图我们可以对比Edge TPU有多小。
4 O- R- k5 I: M: |* J" v9 @ 7 _3 C! `5 h1 n O$ `/ s. l
Penny for scale,来源:谷歌
J8 {1 c) U# L) U/ h u; u5 n/ \1 l" p- q4 s" w2 ^2 S
Edge TPU就是所谓的“ASIC”(专用集成电路),这意味着它具有FET等小型电子部件,以及能够直接在硅层上烧制,这样它就可以加快在特定场景下的推力速度。但Edge TPU无法执行反向传播。, Z! s. z, ]5 h" m( i

, o) Q% w/ Y" Q% A; L- zGoogle Coral Edge TPU USB加速器9 ]8 e1 q" G, A9 t3 d/ p
& `. \2 u( Z v9 `下图显示了Edge TPU的基本原理。0 [) F, w4 e3 m; |: K
- E4 h% {0 G8 P5 x; E7 y
像MobileNetV2这样的网络主要由后面带有激活层的卷积组成。公式如下: ?& U! W* m; X6 p3 y( G+ V

$ s+ T- g" T" @5 W卷积1 K, o& E( V) C$ R
, v& l* q3 A% e" B) i这意味着将图像的每个元素(像素)与内核的每个像素相乘,然后将这些结果相加,以创建新的“图像”(特征图)。这正是Edge TPU的主要工作。将所有内容同时相乘,然后以疯狂的速度添加所有内容。这背后没有CPU,只要你将数据泵入左边的缓冲区就可以了。
0 A* F1 @, H7 U我们看到Coral在性能/瓦特的对比中,差异如此大的原因,它是一堆电子设备,旨在完成所需的按位操作,基本上没有任何开销。9 ?7 q1 S1 q& U4 v$ |
总结 为什么GPU没有8位模型?
, G7 {' c% @4 a& @GPU本质上被设计为细粒度并行浮点计算器。而Edge TPU设计用于执行8位操作,并且CPU具有比完全位宽浮点数更快的8位内容更快的方法,因为它们在很多情况下必须处理这个问题。$ Q3 M* L1 x; ^0 B& m0 {
为何选择MobileNetV2?
& ~- N9 h/ C1 F4 ]5 x2 y主要原因是,MobileNetV2是谷歌为Edge TPU提供的预编译模型之一。
w& b, v- m9 ~5 MEdge TPU还有哪些其他产品?
, ^. Y! l: V. c; P3 M2 I- d它曾经是不同版本的MobileNet和Inception,截至上周末,谷歌推出了一个更新,允许我们编译自定义TensorFlow Lite模型。但仅限于TensorFlow Lite模型。而反观Jetson Nano就没有这方面的限制。& Q+ j6 S0 J" j9 g
Raspberry Pi + Coral与其他人相比
! M7 i3 l$ R8 v9 l6 ^& L为什么连接到Raspberry Pi时Coral看起来要慢得多?因为Raspberry Pi只有USB 2.0端口。5 i) a2 q6 h* a9 X1 f
i7-7700K在Coral和Jetson Nano上的速度都会更快一些,但仍然无法和后两者比肩。因此推测瓶颈是数据速率,不是Edge TPU。
2 i- ~9 q5 l2 t% T9 L
6 ~" q' ]: D- t + m. q: [4 _1 | `/ h3 Y
【加入社群】
& a$ s. E& {+ K: Y ) U9 ?6 W( J+ Y/ H9 P9 o# Q
; N( k) {3 B3 H: K+ m: n9 u来源:http://www.yidianzixun.com/article/0Lt3VMHK1 o' B" R& s8 \
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|