|

. e1 m1 e# N" E# w$ N- J' i7 M【新智元导读】Google Coral Edge TPU和NVIDIA Jetson Nano大比拼!本文从分别对两款最新推出的EdgeAI芯片做了对比,分析了二者各自的优劣势。$ T: ~' k. E/ M3 Q6 I
8 H, L" J* j: E' |边缘智能被称作是人工智能的最后一公里。3 \% `; F% F+ i! ~6 d6 L1 J
; Z& b* x1 m/ s/ v* l5 _. Y
Google刚刚在3月份推出了Coral Edge TPU,是一款售价不到1000元人民币的开发板(Coral Dev Board),由Edge TPU模块和 Baseboard 组成。参数如下:1 ]6 ?- k$ H# Q8 v- D' M
: P, E& C, Y* m# `9 |

5 r0 X9 T- K6 n- q& `英伟达同样在上个月发布了最新的NVIDIA Jetson Nano,Jetson Nano是一款类似于树莓派的嵌入式电脑设备,其搭载了四核Cortex-A57处理器,GPU则是拥有128个NVIDIA CUDA核心的NVIDIA麦克斯韦架构显卡,内存4GB LPDDR4,存储则为16GB eMMC 5.1,支持4K 60Hz视频解码。
) z; r- u! v5 e+ ^$ j目前位置并没有太多关于这两款产品的评测报告。今天新智元为大家带来一篇由网友Sam Sterckval对两款产品的评测,除此以外他还测试了i7-7700K + GTX1080(2560CUDA),Raspberry Pi 3B +,以及一个2014年的MacBook pro包含一个i7-4870HQ(没有支持CUDA的内核)。7 z& E; b) \7 T3 ~
Sam使用MobileNetV2作为分类器,在imagenet数据集上进行预训练,直接从Keras使用这个模型,后端则使用TensorFlow。使用GPU的浮点权重,以及CPU和Coral Edge TPU的8bit量化tflite版本。
- I$ V9 L# P% K2 D2 y; E首先,加载模型以及一张喜鹊图像。先执行1个预测作为预热,Sam发现第一个预测总是比随后的预测更能说明问题。然后Sleep 1秒,确保所有的线程的活动都终止,然后对同一图像进行250次分类。
9 R9 f! F, b7 [0 `. c1 |
% N" t! X% r8 k对所有分类使用相同的图像,能够确保在整个测试过程中保持接近的数据总线。3 M3 V& E q ?+ p! B1 t2 z9 k
8 L. A* j& i6 ]$ |3 N* O' t- _6 w对比结果 先来看最终的结果:
+ W" |; E8 j5 t
6 D8 H) M/ r" Y3 I* K6 V6 w" X 线性刻度,FPS
2 W) T+ q5 V$ M" n9 y对数刻度,FPS
+ `; d5 i# d9 q# s- l
: ^( I6 }! F% n- O 4 v3 c( Y4 a* b% B$ T# P+ T: u
线性刻度,推理时间(250x)
5 U E" e: c! s8 {1 n+ X# v# }: `# j1 e+ _! f
Sam发现使用CPU的量化tflite模型得分是不同的,但似乎它总是返回与其它产品相同的预测结果,他怀疑模型有点奇怪,但能确保它不会影响性能。
$ Y+ \8 \* V& i对比分析 第一个柱状图中我们可以看到有3个比较突出的数据,其中两个2个是由Google Coral Edge TPU USB加速器实现的,第3个是由英特尔i7-7700K辅助NVIDIA GTX1080实现。
5 u& }0 N; `, o- i我们再仔细对比一下就会发现,GTX1080实际上完全无法跟Google的Coral对飚。要知道GTX1080的最大功率为180W,而Coral Edge TPU只有2.5W。
' r2 R r: y& f/ v1 aNVIDIA Jetson Nano的得分并不高。虽然它有一个支持CUDA的GPU,但实际上并没比那台2014年MBP的i7-4870HQ快太多,但毕竟还是比这款四核,超线程的CPU要快。) F" A5 ]7 G. P+ J" b
然而相比i7 50W的能耗,Jetson Nano平均能耗始终保持在12.5W,也就是说功耗降低75%,性能提升了10%。
5 N" ]2 m0 q' E7 p9 | Z' xNVIDIA Jetson Nano
" T/ x+ G, u; l尽管Jetson Nano并没有在MobileNetV2分类器中表现出令人印象深刻的FPS率,但它的优势非常明显:9 j, C) i1 C% T( L
它很便宜,能耗低,更重要的是,它运行TensorFlow-gpu或任何其他ML平台的操作,和我们平时使用的其他设备一样。只要我们的脚本没有深入到CPU体系结构中,就可以运行与i7 + CUDA GPU完全相同的脚本,也可以进行训练!Sam强烈希望NVIDIA应该使用TensorFlow预加载L4T。
1 t5 ^; S! d% k* Y
; B0 w0 u/ Q3 t* qGoogle Coral Edge TPU9 I1 r! t; z. X/ u. u
Sam毫不掩饰的表达了他对Google Coral Edge TPU的精心设计以及高效率的喜爱。下图我们可以对比Edge TPU有多小。
0 G6 ?9 ` @- w- C1 r
) ?# a$ W9 Q" RPenny for scale,来源:谷歌
# G8 x+ l ]$ r f# l
0 C0 P6 u$ B/ R+ `) Y9 REdge TPU就是所谓的“ASIC”(专用集成电路),这意味着它具有FET等小型电子部件,以及能够直接在硅层上烧制,这样它就可以加快在特定场景下的推力速度。但Edge TPU无法执行反向传播。
* m4 n1 A% {5 c& B. O
: _5 u6 h2 u1 S, i9 a5 F7 \Google Coral Edge TPU USB加速器: X% w. R; f* l5 r l
' S$ M; D$ G0 L1 r* Z, a下图显示了Edge TPU的基本原理。/ x+ p" M5 h( Y( a7 m! O

( Z# ^* U$ k- L" Z" l# s5 V3 ^- H像MobileNetV2这样的网络主要由后面带有激活层的卷积组成。公式如下:
2 X9 m1 h% a0 z U; B. U : O: m: U2 Y/ Q& N+ \
卷积/ E$ S) B7 H2 Q: o
6 @0 Z6 l' K* W这意味着将图像的每个元素(像素)与内核的每个像素相乘,然后将这些结果相加,以创建新的“图像”(特征图)。这正是Edge TPU的主要工作。将所有内容同时相乘,然后以疯狂的速度添加所有内容。这背后没有CPU,只要你将数据泵入左边的缓冲区就可以了。0 A8 d% G: Z4 X2 Z/ e
我们看到Coral在性能/瓦特的对比中,差异如此大的原因,它是一堆电子设备,旨在完成所需的按位操作,基本上没有任何开销。
# L) Z9 _+ h- @' A: L/ L6 `: ?总结 为什么GPU没有8位模型?7 y- W5 }& v1 i4 b( Q; o. i
GPU本质上被设计为细粒度并行浮点计算器。而Edge TPU设计用于执行8位操作,并且CPU具有比完全位宽浮点数更快的8位内容更快的方法,因为它们在很多情况下必须处理这个问题。' |/ ^. g8 |; S! n" D
为何选择MobileNetV2?9 p0 U' }& `2 k" C2 f E1 D; a
主要原因是,MobileNetV2是谷歌为Edge TPU提供的预编译模型之一。
3 h% M9 k* o9 c7 y. K; iEdge TPU还有哪些其他产品?; x+ l" F: w+ Q6 C; t- `
它曾经是不同版本的MobileNet和Inception,截至上周末,谷歌推出了一个更新,允许我们编译自定义TensorFlow Lite模型。但仅限于TensorFlow Lite模型。而反观Jetson Nano就没有这方面的限制。$ j) i9 `+ f8 r1 K
Raspberry Pi + Coral与其他人相比: t8 I" P( j/ u( F& K- M
为什么连接到Raspberry Pi时Coral看起来要慢得多?因为Raspberry Pi只有USB 2.0端口。8 |' J! ?0 ]! L+ g7 B
i7-7700K在Coral和Jetson Nano上的速度都会更快一些,但仍然无法和后两者比肩。因此推测瓶颈是数据速率,不是Edge TPU。% P8 o$ u# B9 p

8 K* X$ j$ U- d- ]* K 7 a E, F$ e$ y; d' {2 B
【加入社群】0 _2 ~$ q; Q( L3 T
: W) P5 y+ F+ _* e
9 i! l8 Z2 p3 g# c4 Y$ C来源:http://www.yidianzixun.com/article/0Lt3VMHK
0 v" Q8 N P" `8 e. y6 `( n* }, }免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|