今天Lady我发现脸书上在传一篇评测报告:
可惜这篇文章不能看
点击阅读原文,我把链接放上,但我估计很多人都看不了。
我在这里会附上他的测试结果,实际我认为国内某些公众号会把这篇文章翻译成中文(现在TPU和Nano都是炙手可热的热点啊),所以我就先撕为敬!
先放上他的测试结果:
纳尼?别人上TensorFlow Lite(TFLITE)都提速了,只有Nano上了lite版本的还变慢了。
文章里还说:Look a bit closer, and you’ll see the GTX1080 actually got beaten by the Coral.
难怪有网友也不淡定了,说:
注意一个大前提:
Coral一直跑的是TensorFlow Lite,这是谷歌给EDGE TPU优化过的。
文章测试的GTX1080就是直接跑TensorFlow,用的是FT32,还不是FT16,更不是Int8.
注意,Coral只能跑Int8
一个是浮点数,一个是INT8,能直接比么?有本事至少让1080上INT8,或者上图灵卡,有16X的INT8加速的,再比?
文章作者还补了一刀,说:
GTX1080 draws a maximum of 180W, which is absolutely HUGE compared to the Corals 2.5W。
人家GTX1080就不是让你这么用的好吧?
GTX1080表示很委屈:你们不是边缘计算么,扯我干嘛...有本事让我大哥RTX2080来?
文章里又说了:
the NVIDIA Jetson Nano isn’t scoring well at all. Although it has a CUDA enabled GPU, it’s really not much faster then my old i7–4870HQ. But that’s the catch, ‘not much faster’, it still is faster then a 50W, quad-core, hyperthreading CPU
这个你得让人家4870HQ上OpenCL,用起GPU。这样让一个APU的CPU部分和你的GPU部分比,不公平。
要么都上GPU比,要么都只用CPU比。
关于对Nano的评价,说Nano isn’t pumping out impressive FPS rates with the MobileNetV2 classifier,
这个不妨让NANO上TensorRT看看
文章中作者还表达了一个观点:
他说—— 为何不在GPU上使用8-bit模型? GPU原生的被设计成细粒度并行的浮点计算器。所以使用float才是符合它设计的目的,也是它最擅长的。而EDGE TPU被设计成处理8-bit的工作... 而CPU能很聪明的处理8-bit的工作,而不是全幅大小的(32-bit)float,因为CPU们很多情况下经常需要处理8-bit的任务。
对于GPU,看来老黄从GTX1080开始引入的4倍INT8的努力,和图灵引入的16倍 INT8努力,全白费了, 作者直接认定float是它最擅长的。另外,我们从来没有看出来CPU哪里天生或者天天处理8-bit的stuff的。新一代的AVX-512中才有了8-bit的点乘扩展的。
以及,不要让作者带歪了。4870HQ的主要算力在GPU上,这是一款APU!一款GPU很强的APU。128MB的L4 cache,也是最初是主要为了GPU部分而设计的(当然CPU部分也能用到它)。主要矛盾在于GPU没有启用,而不在于CPU上用什么类型的细枝末节。
所以总体上,我们认为这是一次有失公平的对决,作者并没有展现出应有的技术严谨。
Nano没用FP16,也没用TensorRT,发挥不出自己的长处; 而EDGE TPU用的是谷歌的Runtime(你理解成tensorrt好了),还用了专门谷歌提供的INT8模型(肯定优化过)。这种比较等于让一个人赤手空拳,对阵一个拿着武器的,这不公平。就比如我们也可以搞一个评测,弄个FP16的模型,然后Nano跑的如何如何,而Coral根本就运行不起来,精度为0