|
|

! D$ b" N" o# X) M" b【新智元导读】Google Coral Edge TPU和NVIDIA Jetson Nano大比拼!本文从分别对两款最新推出的EdgeAI芯片做了对比,分析了二者各自的优劣势。4 L) J/ ?1 [ i) R1 ]6 P
, \0 ^0 C, s/ e4 t8 f边缘智能被称作是人工智能的最后一公里。
) Z* L2 @( X& h+ |8 O/ Y: O' C# Z5 ]& O0 k
Google刚刚在3月份推出了Coral Edge TPU,是一款售价不到1000元人民币的开发板(Coral Dev Board),由Edge TPU模块和 Baseboard 组成。参数如下:( X- v, v3 F c$ Z0 j. J
& U; T2 Y8 n c5 c/ H4 w9 l

4 b. q5 M: b4 f英伟达同样在上个月发布了最新的NVIDIA Jetson Nano,Jetson Nano是一款类似于树莓派的嵌入式电脑设备,其搭载了四核Cortex-A57处理器,GPU则是拥有128个NVIDIA CUDA核心的NVIDIA麦克斯韦架构显卡,内存4GB LPDDR4,存储则为16GB eMMC 5.1,支持4K 60Hz视频解码。- X7 P5 x# g& ~, T$ h
目前位置并没有太多关于这两款产品的评测报告。今天新智元为大家带来一篇由网友Sam Sterckval对两款产品的评测,除此以外他还测试了i7-7700K + GTX1080(2560CUDA),Raspberry Pi 3B +,以及一个2014年的MacBook pro包含一个i7-4870HQ(没有支持CUDA的内核)。
9 ~; B4 I/ |( _0 K) jSam使用MobileNetV2作为分类器,在imagenet数据集上进行预训练,直接从Keras使用这个模型,后端则使用TensorFlow。使用GPU的浮点权重,以及CPU和Coral Edge TPU的8bit量化tflite版本。
; K, e9 S$ W9 E. Y/ t7 D b首先,加载模型以及一张喜鹊图像。先执行1个预测作为预热,Sam发现第一个预测总是比随后的预测更能说明问题。然后Sleep 1秒,确保所有的线程的活动都终止,然后对同一图像进行250次分类。1 w/ T. m, A9 O- K
! V+ J1 J1 ^- I5 c7 v2 E
对所有分类使用相同的图像,能够确保在整个测试过程中保持接近的数据总线。
" }* @% U& b/ f1 c: {3 N7 R
5 c- t* p% ^. W) Y* ]5 a* f对比结果 先来看最终的结果:+ F" u) o8 N% H B- i1 ]9 K0 B! U2 d

& \5 x" z; v+ { 线性刻度,FPS
" ~* F; \* G& z" u5 _4 l对数刻度,FPS
8 O v; A. N+ K; K
# n; A: g+ w! Q7 G9 m% e
: e- V; h9 \, u; J4 Z4 j6 t+ v线性刻度,推理时间(250x)
X( m8 ]6 ] e+ {' k! `1 W- V4 e
Sam发现使用CPU的量化tflite模型得分是不同的,但似乎它总是返回与其它产品相同的预测结果,他怀疑模型有点奇怪,但能确保它不会影响性能。
, @0 S7 }: P7 d4 f* K( v对比分析 第一个柱状图中我们可以看到有3个比较突出的数据,其中两个2个是由Google Coral Edge TPU USB加速器实现的,第3个是由英特尔i7-7700K辅助NVIDIA GTX1080实现。
7 g! l4 A1 ^7 u3 U$ M6 g- C" M' h4 Q9 [我们再仔细对比一下就会发现,GTX1080实际上完全无法跟Google的Coral对飚。要知道GTX1080的最大功率为180W,而Coral Edge TPU只有2.5W。; C: A( m: y3 \9 c
NVIDIA Jetson Nano的得分并不高。虽然它有一个支持CUDA的GPU,但实际上并没比那台2014年MBP的i7-4870HQ快太多,但毕竟还是比这款四核,超线程的CPU要快。
: ^# m+ |$ \0 J- G5 P1 f! p. e然而相比i7 50W的能耗,Jetson Nano平均能耗始终保持在12.5W,也就是说功耗降低75%,性能提升了10%。
: N# w; B, q; D# F O# [0 wNVIDIA Jetson Nano, V, q1 I2 i: S, X# f
尽管Jetson Nano并没有在MobileNetV2分类器中表现出令人印象深刻的FPS率,但它的优势非常明显:( R$ K d8 _' r8 B- f3 n' T
它很便宜,能耗低,更重要的是,它运行TensorFlow-gpu或任何其他ML平台的操作,和我们平时使用的其他设备一样。只要我们的脚本没有深入到CPU体系结构中,就可以运行与i7 + CUDA GPU完全相同的脚本,也可以进行训练!Sam强烈希望NVIDIA应该使用TensorFlow预加载L4T。5 g6 L6 _2 r1 ^
) y ~- q; `- p% k
Google Coral Edge TPU
7 `" p" g L: m& |# V" oSam毫不掩饰的表达了他对Google Coral Edge TPU的精心设计以及高效率的喜爱。下图我们可以对比Edge TPU有多小。# z% k7 i: y A2 s6 [
& ]& A" \9 R; A5 h
Penny for scale,来源:谷歌
9 y+ v7 ~. o9 n& Z$ J, C) ~, y% f. z: I% O5 t Z0 B
Edge TPU就是所谓的“ASIC”(专用集成电路),这意味着它具有FET等小型电子部件,以及能够直接在硅层上烧制,这样它就可以加快在特定场景下的推力速度。但Edge TPU无法执行反向传播。% h6 T7 }( U- H. O/ ] J
) c+ l3 q* e% g r8 e7 O% k
Google Coral Edge TPU USB加速器. u7 k/ e. m$ y+ e2 d
5 M+ K) {: W2 p
下图显示了Edge TPU的基本原理。$ k: G- a% v8 |/ z; V- _+ f

: |: I! S r) O6 G5 S像MobileNetV2这样的网络主要由后面带有激活层的卷积组成。公式如下:+ R! [2 ~0 M. B. R* }( o
% A% B1 X2 i7 N: u) \4 f& @; p
卷积
5 k+ V5 d% K6 y" W3 Q& w" U
$ r6 Z6 S& u2 g m4 s这意味着将图像的每个元素(像素)与内核的每个像素相乘,然后将这些结果相加,以创建新的“图像”(特征图)。这正是Edge TPU的主要工作。将所有内容同时相乘,然后以疯狂的速度添加所有内容。这背后没有CPU,只要你将数据泵入左边的缓冲区就可以了。* T6 C3 {4 f' S
我们看到Coral在性能/瓦特的对比中,差异如此大的原因,它是一堆电子设备,旨在完成所需的按位操作,基本上没有任何开销。
& {, X; L" y3 T* G9 O9 P& R( d3 G总结 为什么GPU没有8位模型?
6 W+ N* C- y" l$ gGPU本质上被设计为细粒度并行浮点计算器。而Edge TPU设计用于执行8位操作,并且CPU具有比完全位宽浮点数更快的8位内容更快的方法,因为它们在很多情况下必须处理这个问题。7 y7 \# w. e( a0 Y/ d
为何选择MobileNetV2?7 E/ L' @" Q2 k3 r, s
主要原因是,MobileNetV2是谷歌为Edge TPU提供的预编译模型之一。+ ]; n4 I! Z/ T+ ~
Edge TPU还有哪些其他产品?2 g, J6 ]/ i+ x! s t$ m; b
它曾经是不同版本的MobileNet和Inception,截至上周末,谷歌推出了一个更新,允许我们编译自定义TensorFlow Lite模型。但仅限于TensorFlow Lite模型。而反观Jetson Nano就没有这方面的限制。' k8 K3 F# w+ V7 s
Raspberry Pi + Coral与其他人相比! z7 M" F0 n8 b" I& j7 d: Z; q
为什么连接到Raspberry Pi时Coral看起来要慢得多?因为Raspberry Pi只有USB 2.0端口。
- y$ P F; D/ T- W6 qi7-7700K在Coral和Jetson Nano上的速度都会更快一些,但仍然无法和后两者比肩。因此推测瓶颈是数据速率,不是Edge TPU。2 ?! A4 x% D( U2 x
- S5 X+ `$ X4 `: v

( E' t4 D3 @% M' w4 S2 Q【加入社群】' c" y+ e" I* i* R# w2 ^
# U; [# T2 \" O' X
% l% g8 F; ^4 W/ U* f4 ^, T来源:http://www.yidianzixun.com/article/0Lt3VMHK
# m! A3 X2 k% @免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|