|
|
3 X! M j3 x3 K9 b7 C/ c
【新智元导读】Google Coral Edge TPU和NVIDIA Jetson Nano大比拼!本文从分别对两款最新推出的EdgeAI芯片做了对比,分析了二者各自的优劣势。
2 I* k# Z- Q& i/ U. T
' f! H) \, D4 q# j8 m边缘智能被称作是人工智能的最后一公里。5 c; |+ T: _3 y* S" q
% L) Y' B$ K8 Q0 \% G; {8 P2 kGoogle刚刚在3月份推出了Coral Edge TPU,是一款售价不到1000元人民币的开发板(Coral Dev Board),由Edge TPU模块和 Baseboard 组成。参数如下:" s2 Y; N7 `" P

7 h( T$ `6 J3 }6 t# v. I1 {, I1 g
# S4 A+ h s, q& ?英伟达同样在上个月发布了最新的NVIDIA Jetson Nano,Jetson Nano是一款类似于树莓派的嵌入式电脑设备,其搭载了四核Cortex-A57处理器,GPU则是拥有128个NVIDIA CUDA核心的NVIDIA麦克斯韦架构显卡,内存4GB LPDDR4,存储则为16GB eMMC 5.1,支持4K 60Hz视频解码。
, ~$ q& L7 e5 L1 _! n1 s7 ?目前位置并没有太多关于这两款产品的评测报告。今天新智元为大家带来一篇由网友Sam Sterckval对两款产品的评测,除此以外他还测试了i7-7700K + GTX1080(2560CUDA),Raspberry Pi 3B +,以及一个2014年的MacBook pro包含一个i7-4870HQ(没有支持CUDA的内核)。
' {* a# W( Y8 \. ~$ w$ P; |6 q1 XSam使用MobileNetV2作为分类器,在imagenet数据集上进行预训练,直接从Keras使用这个模型,后端则使用TensorFlow。使用GPU的浮点权重,以及CPU和Coral Edge TPU的8bit量化tflite版本。
+ ]4 n1 M+ o2 |首先,加载模型以及一张喜鹊图像。先执行1个预测作为预热,Sam发现第一个预测总是比随后的预测更能说明问题。然后Sleep 1秒,确保所有的线程的活动都终止,然后对同一图像进行250次分类。/ Z- h* N; n7 v6 X6 e
# B9 V: X, g- [" R$ V$ c
对所有分类使用相同的图像,能够确保在整个测试过程中保持接近的数据总线。
7 M8 u6 W! V: o* u- k& y9 v" ]$ N7 T, u) ~
对比结果 先来看最终的结果:$ W. E+ T/ T! N+ _, a( l6 K
; O" j6 G' k/ W5 U
线性刻度,FPS
( H. s" `. r% m6 U5 Q8 T对数刻度,FPS
) g$ |1 _7 B; G( a
7 V6 H' G2 w1 M4 p7 \) U7 o8 x$ n
E2 V }- O$ I8 A线性刻度,推理时间(250x)1 C- H+ d/ u3 Y) Z
) m( @8 \7 J% a- Y. w+ D
Sam发现使用CPU的量化tflite模型得分是不同的,但似乎它总是返回与其它产品相同的预测结果,他怀疑模型有点奇怪,但能确保它不会影响性能。
) E( v3 q. ?; y4 K对比分析 第一个柱状图中我们可以看到有3个比较突出的数据,其中两个2个是由Google Coral Edge TPU USB加速器实现的,第3个是由英特尔i7-7700K辅助NVIDIA GTX1080实现。# [5 g6 L; x) s4 O" J3 P5 w7 e
我们再仔细对比一下就会发现,GTX1080实际上完全无法跟Google的Coral对飚。要知道GTX1080的最大功率为180W,而Coral Edge TPU只有2.5W。7 D, X+ F4 W1 g. d# {
NVIDIA Jetson Nano的得分并不高。虽然它有一个支持CUDA的GPU,但实际上并没比那台2014年MBP的i7-4870HQ快太多,但毕竟还是比这款四核,超线程的CPU要快。: r# k& Q& B1 h
然而相比i7 50W的能耗,Jetson Nano平均能耗始终保持在12.5W,也就是说功耗降低75%,性能提升了10%。1 q2 `8 h. Y N0 Y8 J( C
NVIDIA Jetson Nano8 f( c7 a9 B/ ?9 @) S8 ~
尽管Jetson Nano并没有在MobileNetV2分类器中表现出令人印象深刻的FPS率,但它的优势非常明显:3 A m6 z9 E. L+ m, P$ H
它很便宜,能耗低,更重要的是,它运行TensorFlow-gpu或任何其他ML平台的操作,和我们平时使用的其他设备一样。只要我们的脚本没有深入到CPU体系结构中,就可以运行与i7 + CUDA GPU完全相同的脚本,也可以进行训练!Sam强烈希望NVIDIA应该使用TensorFlow预加载L4T。
' q* K# f- j$ @ X1 E+ r" s( T3 |4 E; b5 G4 D. T Q
Google Coral Edge TPU
0 Y7 h, }+ h% }0 m# U- ASam毫不掩饰的表达了他对Google Coral Edge TPU的精心设计以及高效率的喜爱。下图我们可以对比Edge TPU有多小。
. ]* b5 F# B: t
3 h' @" H+ L- E9 k$ e3 ]Penny for scale,来源:谷歌
9 T& [% r. X1 m D; m6 N* N) U
3 s; a s3 y6 `" {- cEdge TPU就是所谓的“ASIC”(专用集成电路),这意味着它具有FET等小型电子部件,以及能够直接在硅层上烧制,这样它就可以加快在特定场景下的推力速度。但Edge TPU无法执行反向传播。
8 b. o) O" {5 U" m% N5 H
K8 O+ M u2 t8 n; _2 Y7 oGoogle Coral Edge TPU USB加速器
/ y ^6 ~6 c5 n9 ?$ `1 O5 z; C" X& ~3 A
* [. @* t# m8 h( E& V3 y下图显示了Edge TPU的基本原理。
4 D8 L0 E* S7 D* P 8 e" d/ v: ?% e' }1 k2 g
像MobileNetV2这样的网络主要由后面带有激活层的卷积组成。公式如下:
1 F }& a2 C, j! q
4 O2 z0 x% i: ^+ T2 G( X卷积$ r$ t I% H9 @& p
1 }. y9 z; V$ R" Q1 X- d这意味着将图像的每个元素(像素)与内核的每个像素相乘,然后将这些结果相加,以创建新的“图像”(特征图)。这正是Edge TPU的主要工作。将所有内容同时相乘,然后以疯狂的速度添加所有内容。这背后没有CPU,只要你将数据泵入左边的缓冲区就可以了。' S# X1 P: G& F! H8 F
我们看到Coral在性能/瓦特的对比中,差异如此大的原因,它是一堆电子设备,旨在完成所需的按位操作,基本上没有任何开销。; h4 V% a2 H" C e' o
总结 为什么GPU没有8位模型?7 e7 d" f6 R9 a1 y
GPU本质上被设计为细粒度并行浮点计算器。而Edge TPU设计用于执行8位操作,并且CPU具有比完全位宽浮点数更快的8位内容更快的方法,因为它们在很多情况下必须处理这个问题。
( N0 E% k b& U为何选择MobileNetV2?
1 i' C% k( F4 z主要原因是,MobileNetV2是谷歌为Edge TPU提供的预编译模型之一。- S. C0 G+ i# K2 Z. _! V+ T1 d
Edge TPU还有哪些其他产品?
0 U% k& n! T0 o( m7 \6 F; ~它曾经是不同版本的MobileNet和Inception,截至上周末,谷歌推出了一个更新,允许我们编译自定义TensorFlow Lite模型。但仅限于TensorFlow Lite模型。而反观Jetson Nano就没有这方面的限制。
2 G0 @' j! D- l# ?8 g5 ^Raspberry Pi + Coral与其他人相比$ b r& c6 b( j6 f: \. G3 y
为什么连接到Raspberry Pi时Coral看起来要慢得多?因为Raspberry Pi只有USB 2.0端口。, i& z) j' b9 u$ D
i7-7700K在Coral和Jetson Nano上的速度都会更快一些,但仍然无法和后两者比肩。因此推测瓶颈是数据速率,不是Edge TPU。" d6 g+ X4 @2 X- U( h @
) Z1 m) ]8 _* s- {, ]

) D* r6 H) L7 @% s8 Y, q8 ~; X【加入社群】: J6 k" V; R" K; A, v" p

/ y8 z. [0 t% e; e0 X, f' s
, b& [; } c" |+ {来源:http://www.yidianzixun.com/article/0Lt3VMHK
7 e1 S. d9 }4 |3 p0 W* K6 p# n: c免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|