|
|
9 p! T( M; i- ?& F$ Q
【新智元导读】Google Coral Edge TPU和NVIDIA Jetson Nano大比拼!本文从分别对两款最新推出的EdgeAI芯片做了对比,分析了二者各自的优劣势。0 f+ l9 @1 R, A9 b4 Q+ W
% m3 q5 X+ X( ?9 e' a
边缘智能被称作是人工智能的最后一公里。! _% @7 p. H3 B
2 u$ B& @; S0 ?6 k8 A5 L4 D
Google刚刚在3月份推出了Coral Edge TPU,是一款售价不到1000元人民币的开发板(Coral Dev Board),由Edge TPU模块和 Baseboard 组成。参数如下:6 R4 _8 g3 @, a# |* L* v

1 e8 G7 |: \1 K& t 4 s2 K7 a) o+ d
英伟达同样在上个月发布了最新的NVIDIA Jetson Nano,Jetson Nano是一款类似于树莓派的嵌入式电脑设备,其搭载了四核Cortex-A57处理器,GPU则是拥有128个NVIDIA CUDA核心的NVIDIA麦克斯韦架构显卡,内存4GB LPDDR4,存储则为16GB eMMC 5.1,支持4K 60Hz视频解码。6 D( P8 `' W7 L/ x% o3 J7 ^
目前位置并没有太多关于这两款产品的评测报告。今天新智元为大家带来一篇由网友Sam Sterckval对两款产品的评测,除此以外他还测试了i7-7700K + GTX1080(2560CUDA),Raspberry Pi 3B +,以及一个2014年的MacBook pro包含一个i7-4870HQ(没有支持CUDA的内核)。
9 a) i; y+ v2 U: O& r6 VSam使用MobileNetV2作为分类器,在imagenet数据集上进行预训练,直接从Keras使用这个模型,后端则使用TensorFlow。使用GPU的浮点权重,以及CPU和Coral Edge TPU的8bit量化tflite版本。: Q) R* m/ n7 F: m% H) v
首先,加载模型以及一张喜鹊图像。先执行1个预测作为预热,Sam发现第一个预测总是比随后的预测更能说明问题。然后Sleep 1秒,确保所有的线程的活动都终止,然后对同一图像进行250次分类。3 M9 ]! ]" K$ e5 U& `/ H K- n

! [+ n# L2 `. v% x' b对所有分类使用相同的图像,能够确保在整个测试过程中保持接近的数据总线。 }4 \) f7 ?" A/ ~
; V G- Q4 }1 L2 j5 l! A7 @$ s" f
对比结果 先来看最终的结果:7 ^/ \5 l2 U# q: r7 D

, |$ @1 z3 x- f: U3 T' k 线性刻度,FPS
/ v e. U2 j- U& ?对数刻度,FPS
8 w& v& l8 M+ V7 o/ M
0 s% Z! z) c% e, h . y" G2 i+ s& s7 Y) I" q% l
线性刻度,推理时间(250x)* l( X# L) J" U9 {
/ H7 C9 u/ u5 j% YSam发现使用CPU的量化tflite模型得分是不同的,但似乎它总是返回与其它产品相同的预测结果,他怀疑模型有点奇怪,但能确保它不会影响性能。
0 I* \4 w. o" }, m+ P( w/ \对比分析 第一个柱状图中我们可以看到有3个比较突出的数据,其中两个2个是由Google Coral Edge TPU USB加速器实现的,第3个是由英特尔i7-7700K辅助NVIDIA GTX1080实现。
* t) W+ h6 U9 P. [5 C我们再仔细对比一下就会发现,GTX1080实际上完全无法跟Google的Coral对飚。要知道GTX1080的最大功率为180W,而Coral Edge TPU只有2.5W。" K* E* u- g0 \9 e9 d+ _) R
NVIDIA Jetson Nano的得分并不高。虽然它有一个支持CUDA的GPU,但实际上并没比那台2014年MBP的i7-4870HQ快太多,但毕竟还是比这款四核,超线程的CPU要快。
' a C k( s& a) ^然而相比i7 50W的能耗,Jetson Nano平均能耗始终保持在12.5W,也就是说功耗降低75%,性能提升了10%。
& e% v: k2 r" h% s* DNVIDIA Jetson Nano
, \8 x3 l, b( X8 r. Q% B* x O尽管Jetson Nano并没有在MobileNetV2分类器中表现出令人印象深刻的FPS率,但它的优势非常明显:. j9 f9 o6 Y4 n q& r8 y
它很便宜,能耗低,更重要的是,它运行TensorFlow-gpu或任何其他ML平台的操作,和我们平时使用的其他设备一样。只要我们的脚本没有深入到CPU体系结构中,就可以运行与i7 + CUDA GPU完全相同的脚本,也可以进行训练!Sam强烈希望NVIDIA应该使用TensorFlow预加载L4T。0 H5 ~1 F' r/ b+ x* e) a

, H* i- i+ N+ M M6 ~Google Coral Edge TPU
. E+ P" c' J: F4 I! ~! ~8 [5 i7 M7 bSam毫不掩饰的表达了他对Google Coral Edge TPU的精心设计以及高效率的喜爱。下图我们可以对比Edge TPU有多小。# n5 T, g O# c) X3 L

& d4 E0 F& T/ ^& T( I1 V m2 ~Penny for scale,来源:谷歌
9 K+ J. O! S& G7 T& e& @" V1 _, m: a7 f
Edge TPU就是所谓的“ASIC”(专用集成电路),这意味着它具有FET等小型电子部件,以及能够直接在硅层上烧制,这样它就可以加快在特定场景下的推力速度。但Edge TPU无法执行反向传播。
. O0 S8 d7 {1 b5 z 9 [. @3 w7 I8 H! u5 E. p
Google Coral Edge TPU USB加速器. n4 Y- B! t4 R s8 w, f' k, s
) J- t0 p+ n6 i! ]下图显示了Edge TPU的基本原理。' w% ?' B( ]9 h" `

9 P- k n2 c; w7 f1 ]0 t2 s像MobileNetV2这样的网络主要由后面带有激活层的卷积组成。公式如下:
2 M% u; U6 {2 m R4 C+ V
7 V. Q: j$ r8 \卷积
0 _# \" {& S' n4 p L& A
/ m( h& P9 K' n3 n* M这意味着将图像的每个元素(像素)与内核的每个像素相乘,然后将这些结果相加,以创建新的“图像”(特征图)。这正是Edge TPU的主要工作。将所有内容同时相乘,然后以疯狂的速度添加所有内容。这背后没有CPU,只要你将数据泵入左边的缓冲区就可以了。- s$ G2 J3 } ?% Z
我们看到Coral在性能/瓦特的对比中,差异如此大的原因,它是一堆电子设备,旨在完成所需的按位操作,基本上没有任何开销。; k$ L- T" c- A; P8 @: R1 W
总结 为什么GPU没有8位模型?
: k4 u8 ?6 ]3 G( i) sGPU本质上被设计为细粒度并行浮点计算器。而Edge TPU设计用于执行8位操作,并且CPU具有比完全位宽浮点数更快的8位内容更快的方法,因为它们在很多情况下必须处理这个问题。9 g0 a6 X3 V5 C: n# p- F9 b
为何选择MobileNetV2?( G" n2 ]* @2 S2 e) E+ I1 a5 y
主要原因是,MobileNetV2是谷歌为Edge TPU提供的预编译模型之一。
# L5 c% k/ ~* FEdge TPU还有哪些其他产品?
* |" ?4 ?1 K, s2 v, K, c它曾经是不同版本的MobileNet和Inception,截至上周末,谷歌推出了一个更新,允许我们编译自定义TensorFlow Lite模型。但仅限于TensorFlow Lite模型。而反观Jetson Nano就没有这方面的限制。
, w: g* B- N9 aRaspberry Pi + Coral与其他人相比& |1 {- H( o6 j, |
为什么连接到Raspberry Pi时Coral看起来要慢得多?因为Raspberry Pi只有USB 2.0端口。; V) _) D, Z: M( q. `& a- `
i7-7700K在Coral和Jetson Nano上的速度都会更快一些,但仍然无法和后两者比肩。因此推测瓶颈是数据速率,不是Edge TPU。3 S: ?: O5 U; W6 n; E! p% x3 |

! @; f5 n8 `" y" m1 O& j
8 o! |$ `& o. H3 Y【加入社群】& q" M1 q1 g1 T5 x% R3 [! y$ B
" y! ]$ @2 E& Y- k+ x; a5 n9 }
4 f M U; f9 d$ z5 f2 F! ^来源:http://www.yidianzixun.com/article/0Lt3VMHK- l- b- d% d. f) j" T
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|