|
|
( Z4 G/ Q( w9 q- g( N
【新智元导读】Google Coral Edge TPU和NVIDIA Jetson Nano大比拼!本文从分别对两款最新推出的EdgeAI芯片做了对比,分析了二者各自的优劣势。
3 R* H6 n+ b; d, ]0 q- f3 H5 i5 E* _+ d0 l
边缘智能被称作是人工智能的最后一公里。
2 O. [ d8 C. F! A+ u- Z2 n+ K; _' g+ `: P5 z
Google刚刚在3月份推出了Coral Edge TPU,是一款售价不到1000元人民币的开发板(Coral Dev Board),由Edge TPU模块和 Baseboard 组成。参数如下:, B6 ^4 n# @* d* E
/ c. I0 A% K' Q: n7 W

2 h* D6 S+ m" t; V9 I# t6 I英伟达同样在上个月发布了最新的NVIDIA Jetson Nano,Jetson Nano是一款类似于树莓派的嵌入式电脑设备,其搭载了四核Cortex-A57处理器,GPU则是拥有128个NVIDIA CUDA核心的NVIDIA麦克斯韦架构显卡,内存4GB LPDDR4,存储则为16GB eMMC 5.1,支持4K 60Hz视频解码。
: [- Y5 h" v( i q/ G0 c3 s目前位置并没有太多关于这两款产品的评测报告。今天新智元为大家带来一篇由网友Sam Sterckval对两款产品的评测,除此以外他还测试了i7-7700K + GTX1080(2560CUDA),Raspberry Pi 3B +,以及一个2014年的MacBook pro包含一个i7-4870HQ(没有支持CUDA的内核)。
# U5 |1 K1 C: Q% e" O( GSam使用MobileNetV2作为分类器,在imagenet数据集上进行预训练,直接从Keras使用这个模型,后端则使用TensorFlow。使用GPU的浮点权重,以及CPU和Coral Edge TPU的8bit量化tflite版本。
) s) b" ~, F1 [2 U8 E& w: {首先,加载模型以及一张喜鹊图像。先执行1个预测作为预热,Sam发现第一个预测总是比随后的预测更能说明问题。然后Sleep 1秒,确保所有的线程的活动都终止,然后对同一图像进行250次分类。6 w# s) \. A0 v8 l+ Y% Q3 r
" E( N5 Q- t/ q0 i8 S" B
对所有分类使用相同的图像,能够确保在整个测试过程中保持接近的数据总线。% r( V# E C0 Z- m, i4 X7 l
3 G6 F& p' b# o, M" q2 V对比结果 先来看最终的结果: u# {/ L, U" w7 @" }5 ?
2 i: f( b H$ z! B# `
线性刻度,FPS
8 L& L" @& [, ?# `$ Y对数刻度,FPS4 c) H2 }% ?* ]# H6 V
+ Y0 P; v; z J4 d* G/ f ' D& X; \) R' p4 {7 A- {: J
线性刻度,推理时间(250x)
( w3 O, C3 z2 c0 J' G# g( S8 r; q( y. b# Y& u* h+ k" v! g4 {
Sam发现使用CPU的量化tflite模型得分是不同的,但似乎它总是返回与其它产品相同的预测结果,他怀疑模型有点奇怪,但能确保它不会影响性能。9 H& c( p3 U1 Y8 ^- l
对比分析 第一个柱状图中我们可以看到有3个比较突出的数据,其中两个2个是由Google Coral Edge TPU USB加速器实现的,第3个是由英特尔i7-7700K辅助NVIDIA GTX1080实现。
" O, ~, l- W' O* r我们再仔细对比一下就会发现,GTX1080实际上完全无法跟Google的Coral对飚。要知道GTX1080的最大功率为180W,而Coral Edge TPU只有2.5W。1 }) W/ |: V" b) t
NVIDIA Jetson Nano的得分并不高。虽然它有一个支持CUDA的GPU,但实际上并没比那台2014年MBP的i7-4870HQ快太多,但毕竟还是比这款四核,超线程的CPU要快。
. s' G8 l& Z: A$ L' i7 C1 t然而相比i7 50W的能耗,Jetson Nano平均能耗始终保持在12.5W,也就是说功耗降低75%,性能提升了10%。
% b% I! w, _6 y3 }. h+ L% x) l ^NVIDIA Jetson Nano
4 U. l l0 D0 X& }% E9 {, y7 o尽管Jetson Nano并没有在MobileNetV2分类器中表现出令人印象深刻的FPS率,但它的优势非常明显:8 [) g m7 N. Y( _$ ^& E1 ?
它很便宜,能耗低,更重要的是,它运行TensorFlow-gpu或任何其他ML平台的操作,和我们平时使用的其他设备一样。只要我们的脚本没有深入到CPU体系结构中,就可以运行与i7 + CUDA GPU完全相同的脚本,也可以进行训练!Sam强烈希望NVIDIA应该使用TensorFlow预加载L4T。
) B9 Y L; ?+ N% j+ a
5 I+ ^8 Q P1 pGoogle Coral Edge TPU* r4 K7 I; W! n& f% I5 C8 N
Sam毫不掩饰的表达了他对Google Coral Edge TPU的精心设计以及高效率的喜爱。下图我们可以对比Edge TPU有多小。
4 J! Q8 O) S# H3 ~6 Z * Q, H9 C, g) W+ q5 X8 Z
Penny for scale,来源:谷歌
# d0 L6 A% b9 p& G* x0 u0 J! P
( F; w# r- n6 S; HEdge TPU就是所谓的“ASIC”(专用集成电路),这意味着它具有FET等小型电子部件,以及能够直接在硅层上烧制,这样它就可以加快在特定场景下的推力速度。但Edge TPU无法执行反向传播。8 P6 _' _5 k! E( ~! F

1 e2 G0 T' p1 s# FGoogle Coral Edge TPU USB加速器
7 i' y( O' {- i- i8 x: V% ]0 i* q% y( i1 X3 K
下图显示了Edge TPU的基本原理。1 D) ]- E7 A) U' J2 b, F
/ n6 S( i$ S7 h, e( p$ `
像MobileNetV2这样的网络主要由后面带有激活层的卷积组成。公式如下:& L( r0 m+ [% s" j: \* p& R9 H
" q5 X# s$ h% M" Q' [, \
卷积
8 Z3 Y, h. n# ~
' P5 ~4 a8 S$ @这意味着将图像的每个元素(像素)与内核的每个像素相乘,然后将这些结果相加,以创建新的“图像”(特征图)。这正是Edge TPU的主要工作。将所有内容同时相乘,然后以疯狂的速度添加所有内容。这背后没有CPU,只要你将数据泵入左边的缓冲区就可以了。
( p. E. J8 I* W5 a% G我们看到Coral在性能/瓦特的对比中,差异如此大的原因,它是一堆电子设备,旨在完成所需的按位操作,基本上没有任何开销。1 a7 \7 z3 D, ?0 V: y3 C- Y/ A
总结 为什么GPU没有8位模型?
$ j3 w- U# a) N. |GPU本质上被设计为细粒度并行浮点计算器。而Edge TPU设计用于执行8位操作,并且CPU具有比完全位宽浮点数更快的8位内容更快的方法,因为它们在很多情况下必须处理这个问题。
' @) Q2 H1 y) @! O为何选择MobileNetV2?+ y# n. q9 c: R3 W9 t `
主要原因是,MobileNetV2是谷歌为Edge TPU提供的预编译模型之一。
+ o2 o, k& P* pEdge TPU还有哪些其他产品?
( Z7 J5 L0 F; q它曾经是不同版本的MobileNet和Inception,截至上周末,谷歌推出了一个更新,允许我们编译自定义TensorFlow Lite模型。但仅限于TensorFlow Lite模型。而反观Jetson Nano就没有这方面的限制。. |( T, X0 A b" D9 c
Raspberry Pi + Coral与其他人相比2 m( k9 V7 m3 [' S! ^$ Y0 ~
为什么连接到Raspberry Pi时Coral看起来要慢得多?因为Raspberry Pi只有USB 2.0端口。, y( g+ `, I0 F* ]$ ~6 T; K" A: b
i7-7700K在Coral和Jetson Nano上的速度都会更快一些,但仍然无法和后两者比肩。因此推测瓶颈是数据速率,不是Edge TPU。+ ]/ c& n! p/ [/ W' H/ {) A
J: y$ C4 ]& T, _$ x7 M
* i" I( k7 c: F ]
【加入社群】
4 [( K. W- `) a0 F" D$ A
9 m; f7 U5 c3 s$ }" s$ a) y+ k" w% `1 L0 F( U# c: K
来源:http://www.yidianzixun.com/article/0Lt3VMHK
- O8 r+ k; g2 E' @9 q+ H( L免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|