|

6 v' [0 A/ N& o【新智元导读】Google Coral Edge TPU和NVIDIA Jetson Nano大比拼!本文从分别对两款最新推出的EdgeAI芯片做了对比,分析了二者各自的优劣势。# |0 e6 Z! s+ R# R8 Y+ O
7 P/ e5 Q7 m S8 m边缘智能被称作是人工智能的最后一公里。7 U. u9 c4 u: j% J6 B/ G
% q# b+ T" N I% }9 W' UGoogle刚刚在3月份推出了Coral Edge TPU,是一款售价不到1000元人民币的开发板(Coral Dev Board),由Edge TPU模块和 Baseboard 组成。参数如下: K5 W! Y% ]; ^

2 A( B% w/ k1 \2 }
, P* L: r' U1 _, g1 s英伟达同样在上个月发布了最新的NVIDIA Jetson Nano,Jetson Nano是一款类似于树莓派的嵌入式电脑设备,其搭载了四核Cortex-A57处理器,GPU则是拥有128个NVIDIA CUDA核心的NVIDIA麦克斯韦架构显卡,内存4GB LPDDR4,存储则为16GB eMMC 5.1,支持4K 60Hz视频解码。9 R* p0 k3 e" ?& Q+ w
目前位置并没有太多关于这两款产品的评测报告。今天新智元为大家带来一篇由网友Sam Sterckval对两款产品的评测,除此以外他还测试了i7-7700K + GTX1080(2560CUDA),Raspberry Pi 3B +,以及一个2014年的MacBook pro包含一个i7-4870HQ(没有支持CUDA的内核)。
# f4 P. T- V3 r8 \# ^Sam使用MobileNetV2作为分类器,在imagenet数据集上进行预训练,直接从Keras使用这个模型,后端则使用TensorFlow。使用GPU的浮点权重,以及CPU和Coral Edge TPU的8bit量化tflite版本。9 E5 g- t! Q) f! p4 K+ m+ O0 X8 Q' e
首先,加载模型以及一张喜鹊图像。先执行1个预测作为预热,Sam发现第一个预测总是比随后的预测更能说明问题。然后Sleep 1秒,确保所有的线程的活动都终止,然后对同一图像进行250次分类。+ h, w) O6 z, C8 ? b$ |% M C- M

6 ~! d% O' X1 ~& T对所有分类使用相同的图像,能够确保在整个测试过程中保持接近的数据总线。
, H7 t/ ^1 {7 M' }+ R4 M# s1 t1 {+ H( }0 i
对比结果 先来看最终的结果:
" U0 h6 ?5 t1 k3 }2 g8 M F 4 R2 K5 ^$ s- E* }; I
线性刻度,FPS + ^( o" N/ I" ?& @$ M2 H6 a
对数刻度,FPS! j7 r8 }# `* c% ]8 Y! ~
9 v& T( ?9 D3 O0 W6 U3 }7 a 5 z$ y4 N9 b6 j) k
线性刻度,推理时间(250x)$ ]# v& g: E# v( u
2 q% ^4 H8 W/ k& V, c6 vSam发现使用CPU的量化tflite模型得分是不同的,但似乎它总是返回与其它产品相同的预测结果,他怀疑模型有点奇怪,但能确保它不会影响性能。
( W! G0 r" B5 I8 m- K8 @. r对比分析 第一个柱状图中我们可以看到有3个比较突出的数据,其中两个2个是由Google Coral Edge TPU USB加速器实现的,第3个是由英特尔i7-7700K辅助NVIDIA GTX1080实现。% s B) B1 |& h1 G
我们再仔细对比一下就会发现,GTX1080实际上完全无法跟Google的Coral对飚。要知道GTX1080的最大功率为180W,而Coral Edge TPU只有2.5W。2 X: H7 G4 H' t5 E) W
NVIDIA Jetson Nano的得分并不高。虽然它有一个支持CUDA的GPU,但实际上并没比那台2014年MBP的i7-4870HQ快太多,但毕竟还是比这款四核,超线程的CPU要快。$ A. J$ Z1 W, h
然而相比i7 50W的能耗,Jetson Nano平均能耗始终保持在12.5W,也就是说功耗降低75%,性能提升了10%。# K9 c; Y4 o* B+ { i1 F8 t
NVIDIA Jetson Nano
9 {; ?9 S ?& d) M- c8 A尽管Jetson Nano并没有在MobileNetV2分类器中表现出令人印象深刻的FPS率,但它的优势非常明显:
L7 s! v1 e* F1 y# L' O它很便宜,能耗低,更重要的是,它运行TensorFlow-gpu或任何其他ML平台的操作,和我们平时使用的其他设备一样。只要我们的脚本没有深入到CPU体系结构中,就可以运行与i7 + CUDA GPU完全相同的脚本,也可以进行训练!Sam强烈希望NVIDIA应该使用TensorFlow预加载L4T。
' ^5 p* i! p+ R" z: N' f+ F# I % f- d, _. |& g: \; N, d q8 z
Google Coral Edge TPU5 ]2 }9 Z* ~4 |+ t
Sam毫不掩饰的表达了他对Google Coral Edge TPU的精心设计以及高效率的喜爱。下图我们可以对比Edge TPU有多小。1 ^, D7 d3 e( \5 ?! k* d9 A; O( U
. j# b5 X0 c9 j) F- ~
Penny for scale,来源:谷歌
8 v; F2 ^6 e5 y7 ?# l$ b0 d4 m3 e6 C
Edge TPU就是所谓的“ASIC”(专用集成电路),这意味着它具有FET等小型电子部件,以及能够直接在硅层上烧制,这样它就可以加快在特定场景下的推力速度。但Edge TPU无法执行反向传播。3 y" m4 |. A9 W1 x+ ^
# I2 P8 _1 Z9 w* q7 q
Google Coral Edge TPU USB加速器/ O, L* ]: r" ?, V- Y
5 V1 P8 ~; l1 u; [1 k5 ~5 m下图显示了Edge TPU的基本原理。
# O0 L4 r% L: |5 T' ? & ]& F9 d6 D4 F* f5 M( J
像MobileNetV2这样的网络主要由后面带有激活层的卷积组成。公式如下:2 t' n0 J0 N2 M

5 d8 s8 c( |! }/ p1 N* m卷积1 m) F! s/ r/ O+ Y I. e, c# G
, t* Y4 S; I' r
这意味着将图像的每个元素(像素)与内核的每个像素相乘,然后将这些结果相加,以创建新的“图像”(特征图)。这正是Edge TPU的主要工作。将所有内容同时相乘,然后以疯狂的速度添加所有内容。这背后没有CPU,只要你将数据泵入左边的缓冲区就可以了。! f* |* u6 }, R
我们看到Coral在性能/瓦特的对比中,差异如此大的原因,它是一堆电子设备,旨在完成所需的按位操作,基本上没有任何开销。
0 g" f9 h/ Q |9 q总结 为什么GPU没有8位模型?
% e6 b6 A% }6 T4 S/ M1 FGPU本质上被设计为细粒度并行浮点计算器。而Edge TPU设计用于执行8位操作,并且CPU具有比完全位宽浮点数更快的8位内容更快的方法,因为它们在很多情况下必须处理这个问题。
7 L, }7 W u$ V7 r0 [/ L( W为何选择MobileNetV2?
* A6 \* n/ P W, ]主要原因是,MobileNetV2是谷歌为Edge TPU提供的预编译模型之一。4 T4 d: y( \% U+ @% ^! j/ d% h
Edge TPU还有哪些其他产品?6 l* X4 G' d4 {, Z/ U, Y1 A
它曾经是不同版本的MobileNet和Inception,截至上周末,谷歌推出了一个更新,允许我们编译自定义TensorFlow Lite模型。但仅限于TensorFlow Lite模型。而反观Jetson Nano就没有这方面的限制。
3 z7 j, k! T1 n& iRaspberry Pi + Coral与其他人相比
5 |2 v- Q8 t% d% {# L为什么连接到Raspberry Pi时Coral看起来要慢得多?因为Raspberry Pi只有USB 2.0端口。4 L) Q4 \, T l6 j% S, G
i7-7700K在Coral和Jetson Nano上的速度都会更快一些,但仍然无法和后两者比肩。因此推测瓶颈是数据速率,不是Edge TPU。
- l" [5 Y9 ^8 R6 q8 u7 j' }
! V. B, R# y* q+ P3 d+ _
6 o5 E2 e8 d$ t【加入社群】' E+ i" i' C8 \. G! D: r
( }" b6 X" Y& P0 A/ C9 x( l9 O
2 s( p- L/ S/ Y) O4 T7 t4 y来源:http://www.yidianzixun.com/article/0Lt3VMHK/ e( K$ Z N# E0 u
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|