查看原文
其他

处理器IP厂商的机器学习方案 - ARM

2017-03-20 唐杉 StarryHeavensAbove
导      读

不管是在软银收购ARM的时候还是今年的MWC会议上,孙正义都大谈人工智能。但从目前的动态看,ARM在AI平台中还是把自己定位为控制处理器。换句话说,ARM短期之内不会推出专门用于AI的处理器核。不过,考虑到ARM在嵌入式芯片中的统治地位、完善的生态和巨大的开发社区,在ARM的CPU/GPU上实现高效的inference是个值得关注的方向。


先看看网上的消息:

去年12月,ARM全球行销和策略联盟副总裁Ian Ferguson揭露明年战略时直言:“ARM现在谈AI还太早,明年不会推出专用AI芯片设计,将专攻IoT市场。

目前AI市场仍相当零碎,各家AI技术缺乏整合,尚未发展成为主流架构,而是各有不同的作法,例如有的公司如Nvidia等是用自己的GPU卡加上ARM处理器,来搭建AI应用平台; 还有的公司是采用定制的运算引擎,再搭配控制处理器,来发展AI应用,如Google专为AI开发客制化运算硬体TPU等;其他公司也有用ARM架构搭配可编程逻辑元件(Programmable Logic Devices)的作法。”

 “明年并不会推出能针对AI优化或AI专用的特殊ARM核设计,而是将专注在建立基础控制元件上,可以让硬件厂商拿来放进芯片中,来辅助客户打造AI平台。”

“明年将会有越来越多的公司开发AI应用时,使用ARM架构处理器,来执行控制处理的功能,至于需要大量并行运算的部份,未来则将交给其它硬件来完成,如GPU或定制的运算引擎等。”

“长期来看,还需要更多的AI应用实例,才能决定是不是要推出AI专用的芯片设计,例如目前很多AI应用是在云端上来进行运算处理,未来等到应用移动到更靠近信息产生的终端设备或网关上,或许才会需要特殊ARM芯片处理。”


以上的消息我没有找到原文,仅供参考。不过,文中的逻辑是比较合理的。ARM不是一个体量很大的公司,在现在这个时间点专门为AI开发处理器风险太大,也不是很有必要。


在ARM的网站上搜索人工智能或者机器学习的关键字,内容不多,可以看到一个名为“ARM and Machine Learning”的slides。从中间这一页可以看出ARM对自己的定位。


虽然,ARM把自己的处理器定位为控制处理器,不会推出针对AI的专用处理器,但这也不能阻挡广大群众挖掘ARM / MALI(CPU/GPU)AI潜力的热情。其实走这条路也很自然,如果能在ARM处理器上实现一些DNN inference功能,哪怕性能没有那么高,也已经可以在大量的智能手机平台上做出很多有趣的应用了。比如,Prisma已经实现的offline的inference,对性能要求不高,取得了很好的效果。这个方向,相较使用GPU/FPGA,甚至开发专门的硬件,门槛低了很多,非常适合熟悉AI算法和ARM架构的小团队来玩。


ARM/MALI的潜力倒底如何,可以看个具体的例子。下表是irida lab(www.iridalabs.gr)在高通的SnapDragon 820 (Kryo ARM/Adreno 530),MTK的MT6797 Helio X20 (ARM/Mali-T880 MP4)和三星的Exynos 8890 Octa (ARM/MALI-T880 MP 12)平台上做基于CNN inference的结果。细节就不说了,这里就是给大家一个基本的概念。

值得一提的是,这个工作在CNN结构和算法层面也做了创新,提出了Learning Kernel Activation Module (LKAM),这个模块可以基于输入照片的内容和学习到的激活规则,在inference阶段把一些Kernel直接关掉(disable),以减少运算量。具体的方法和实现过程大家可以参考[2]。这个公司的网站上也有不少关于在ARM/MALI架构上做inference的文档。

从这个例子可以看出,走这条路还是需要同时要在算法(网络压缩)和实现优化(ARM架构下的代码优化)上下文章。另外,从irida lab的论文里可以看出,它们做了手工(manual)的代码优化。希望ARM会有更好的工具和优化的库提供给大家。也许已经有了,了解的读者欢迎给我留言。另外,现在Tensorflow也有了android版本,不知道性能如何,有知道的也请留言。如果现在这些工具和库还还不理想,对第三方的方案商也算是个商机吧。

T.S.

Reference

1.Jem Davies, "ARM and Machine Learning", www.arm.com

2. I. Theodorakopoulos, et al., "Parsimonious Inference on Convolutional Neural Networks: Learning and applying on-line kernel activation rules", https://arxiv.org/pdf/1701.05221.pdf

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存