炼数成金 门户 商业智能 芯片 查看内容

听说你想进入AI行业做芯片?

2017-12-13 10:33| 发布者: 炼数成金_小数| 查看: 15231| 评论: 1|来自: HorizonRobotics
摘要: 广义上讲,能运行AI算法的,似乎都可以叫AI芯片。这种AI芯片和其他soc芯片也没什么区别。其实,目前任何有编程能力的cpu芯片都可以执行AI算法,只是效率不同的问题。即使一颗386,也可以跑个CNN算法,做个语音识别任 ...
网络 工具 算法 芯片 面试
有哪些公司在做AI芯片?
正在做AI芯片的公司可以分为几类:初创公司,传统芯片公司,应用设备公司以及软件算法公司。

AI芯片初创公司是第一批冒险家,发现了新大陆上的金矿。例如地平线、寒武纪、启英泰伦等,就是直接以AI芯片为目标的。最初以FPGA为产品形态的深鉴,今年也开始向芯片进军了。这部分,也有正在国内开分部的国外初创公司,例如Kneron。

传统芯片公司是殖民者,听说AI芯片这片土地不但比较肥沃而且富含金矿,于是带着自家的人和枪就冲过来了。国内典型的有华为、杭州国芯、比特大陆等。这类公司也包括一些传统的IP提供方。

应用设备公司和软件算法公司本来是殖民者的合作方,在金矿的诱惑下,也开始招兵买马,开着水陆两栖登陆舰就来抢滩了。典型的如,海康、云知声、云飞励天、依图科技、科大讯飞等等,以及传说中的百度。这些公司中,有的虽然没公开宣布做芯片,但是已经悄悄在招聘了;有的虽然宣布要走芯片路线,但是还不见招聘信息。如果去这些公司有所不便,你可以根据你想去的城市,找找有没有号称要做AI的公司,或者公司分部,然后再去主页看看招聘页面,找找你适合的职位。 

AI芯片是怎样的?有什么特别?
如果你有进入AI行业做芯片的想法,那至少要简单思考一下这个问题了。目前所谓AI芯片的产品状态,可能和你想象中高大上的东西有很大差别(可以参考我以前写的并在知乎上不断更新的一篇《地平线谭洪贺:零基础看懂全球AI芯片--详解“xPU”》,做一个大致了解)。

广义上讲,能运行AI算法的,似乎都可以叫AI芯片。这种AI芯片和其他soc芯片也没什么区别。其实,目前任何有编程能力的cpu芯片都可以执行AI算法,只是效率不同的问题。即使一颗386,也可以跑个CNN算法,做个语音识别任务,只是可能几个月以后才有结果。这样的芯片我们一般不好意思称之为AI芯片。

但也有面子大的,有的公司号称推出的智能芯片,其实只是把收集的语音数据通过网络传到了云端,然后从云端拿回结果而已。与之形成对比的是,有些公司并没有将自己的芯片宣传为AI芯片,比如movidius和mobileye(可能是因为当时开发产品的时候AI概念还不火,没法拿来做PR)。这两家的芯片都是做计算机视觉处理的,都集成了多个向量处理器,由于可以运行基于CNN的视觉处理算法来实现一些智能的功能,所以我们也不自觉地将其称为AI芯片了。

狭义上讲,我们可以定义AI芯片为“专门针对AI算法做了特殊加速设计的芯片”。这种芯片的核心就是神经网络加速器,或者叫深度学习加速器。但是,作为IC工程师,大家都知道,仅有一个加速器是没法使用的,所以,除特殊情况外,AI芯片都是包含了特定NN或DL加速器的SOC。例如,华为大打AI概念的手机AP麒麟970中,集成的是寒武纪的专为DL打造的处理器IP;苹果用于iphone-X的A11,集成了其自己研发的Apple Neural Engine。其他的,深鉴的DPU在处理NN计算时使用了独特的压缩技术,比特大陆的“智子”更像是一个GPU。

可以看到的趋势是,集成NN加速器的狭义AI芯片会成为主流。Movidius的Myraid X芯片,Mobileye的EyeQ5芯片,都在原来的基础上增加了特定的NN加速器。地平线即将发布的第一款芯片,也是针对视觉处理任务的,完全使用自己的NN加速器,没有内置其他的向量处理器。

当你看到某个公司发布了AI芯片,或者公布了AI产品的时候,你需要擦亮眼睛,认清这个新的瓶子里到底装的是旧酒还是新酒。下图,分别是两家公布的NPU结构,大家可以自己分辨一下。当然,如果你不是IC工程师,你在这方面的定义可以更广义一些,比如关注到AI产品的层面。


行动篇
重新看待面试
引用专业人士的话,面试只有三个问题:
Can you do the job? (实力) 
Will you love the job? (意愿) 
Can we tolerate working with you? (个性) 

对于应聘者,面试的过程,就是要说明实力、表达意愿、展现个性的过程。而对于我们面试方,面试的过程,就是在通过各种问题来考察你的实力、确认你的意愿、了解你的个性的过程。展开来说的话,面试是个很大的话题,这里只能简单说说,并针对几个有代表性的问题做些回答。

用项目经历说明你的实力
如果你能在简历中突出地展示出你的实力,尤其是对公司的产品有用的实力,这是一个好的开始。不过更重要的是,在面试过程中体现出来。

举例来说,如果你要去一家做AI芯片的公司应聘,必然要先了解一下公司产品的大概情况。然后,你可以在面试中突出你与之相关的实力和项目经验。例如,你做过图像信号处理(ISP),这对做视觉处理器的公司是有用的经验。

同时你会发现,VPU芯片都有MIPI接口,都有DDR接口。OK,这方面的经验也是加分项。再多看看,这些xPU绝大多数都不是单纯的算法硬化的加速器,而是复杂的SOC,因此,一定要告诉面试官你所做过的SOC项目情况。

比如,在奥巴马应对扣扣熊的面试问题(注意,面试官还给了重要提示):“Can you tell me about some of your accomplishment?”时:
奥巴马给出了上面这一长串回答,但是真正对雇主有用的呢?好像只能提炼出一条:


当然,如果你能像《当幸福来敲门》中的威尔·史密斯一样,当着BOSS的面快速搞定魔方,也是能力的有力展示。

表达个人意愿同时了解公司的意愿
意愿包含很多方面,应该抓住有限的面试时间,告诉对方你看重的是什么。户口?薪酬?福利?还是职位空间或工作内容?至少,要说说你对自己职业的规划、对工作内容的期望。

你可能觉得这对获得offer没什么用,但是,注意我上面写的“要了解公司的意愿”。
公司在组建团队时,不是组建一个标准化的游行方阵,而是在组建一个足球队,每个人都有自身的位置,并且,要是一个有层次有梯度的团队。所以,公司在每招一个队员的时候, 都预先有一个团队定位,这就是公司的意愿。如果你的意愿和公司的意愿不匹配,那很可能导致不愉快的相处过程。

举个例子来说,虽然大家都想做AI芯片中的神经网络加速器部分,但是现实是不可能安排每个人都去做这部分。如果你不介意做些其他的design或verification的工作,你也会有机会参与神经网络加速器的设计验证工作。

当然,你也可以表示对工作内容没有什么要求,服从组织安排。这部分不深入说了,可以找一些面试文章理解一下。

我不懂AI算法,可以吗?
这是个障碍性问题,只要解决了就好办。先说答案:完全可以。

初级解决途径:
如前面所说,一颗AI芯片上可能只有加速器直接和算法有关,其他部分还是基本的芯片概念。你完全可以做DDR、USB等接口之类的工作,还可以做MIPI部分,以及SOC架构,或者纯粹的验证、flow、后端等等。

高级解决途径:
保持不断学习的状态。在CNN、RNN这些算法出来之前,没人懂。现在每一个做CNN加速器的,都要经历从不懂到懂的过程,只要你有不断学习的韧性。我也是从不懂开始的,其实现在也是半懂不懂的样子,但这并没有妨碍我在这条路上继续学习和进步。

我想转来做AI芯片,需要掌握哪些技能?
“关于IC的设计、验证、集成、FLOW、封装、测试等等,这一切都需要”。
sorry,just kidding!这些技能是一个完整的团队所需要的,每一个队员只要match到自己的工作岗位上就可以了。对于个人,先把AI这个概念丢掉,掌握了一个IC工程师该掌握的东西,再加上接受挑战的决心,这足够用于当做敲门砖了。

如果能先了解一下AI的基本概念,当然很好。但是,做芯片不像搞算法和应用,你不可能在家里自己先做个芯片project练习一下,时间和精力可能都不允许。想来接受挑战,就行动吧。你在家里看书一个月所学的新技能,可能不如你入职后一个星期在这个环境中所学到的。

 我不是做IC的,也不是研究算法的,有可能吗?
如前所说,AI芯片终归是一颗SOC芯片,所以除了IC工程师,常规的FPGA人员、驱动开发人员也是不可缺少的。有些AI公司的最终产品形态不是芯片,而是turn key的解决方案,所以,除了算法,还需要应用开发人员、硬件方案人员等等。当然,IT人员、行政人员就不多说了。

你为什么从上一家公司离职?
这是一个会被经常提及的问题,也是你不得不面对的问题。但是,可千万别学《friends》里的菲比,倒是可以参考一下《布达佩斯大饭店》里面zero的回答 :)

欢迎加入本站公开兴趣群
商业智能与数据分析群
兴趣范围包括各种让数据产生价值的办法,实际应用案例分享与讨论,分析工具,ETL工具,数据仓库,数据挖掘工具,报表系统等全方位知识
QQ群:81035754

鲜花
1

握手

雷人
1

路过

鸡蛋

刚表态过的朋友 (2 人)

发表评论

最新评论

引用 mikeqin 2017-12-14 11:23
不错的文章。AI是一个比较复杂的系统,从软件到硬件,最后到芯片。每个部分都需要很有经验的高手。
查看全部评论(1)

热门频道

  • 大数据
  • 商业智能
  • 量化投资
  • 科学探索
  • 创业

即将开课

  GMT+8, 2018-1-16 19:47 , Processed in 0.179525 second(s), 25 queries .