Parham 发表于 2018-9-14 08:32:50

地平线机器人面经(已拿offer,算法岗,计算机视觉方向,)

首先非常感谢牛客网这个平台,从这里获取了很多消息,也看了很多同学的面试经验,收获很大,因此也把我的面试经历写出来,和大家讨论,一起进步。(问题的答案不一定正确,有兴趣的可以网上搜一下,文笔不好,大家见谅,为流水式记录。。。)
内推渠道 : 牛客网(实习)
面试
(某天下午接到hr电话,问什么时候方便,然后定在了第二天下午4点面试。比起被阿里鸽子一个多星期要好的多。。。)
第二天3:30从学校出发,以为来得及,就三站路,结果等公交等了十分钟。。。到公司已经快4点了,所以告诫去面试的朋友一定要赶早,毕竟迟到了给人的印象很不好。而且心里也比较着急,影响发挥。
一面:
首先是一个hr姐姐接待,然后给我带到了一个类似讨论区的地方,给我倒了水,让我等会,她去叫面试官。等待期间,我大概环顾了下公司,还不错,有跑步机,桌上足球啥的,然后不一会面试官来了,拿着我的简历。
首先让我做了个自我介绍,我就按照学校、项目、自己擅长的技术、自己的性格这个思路简单介绍了下,然后面试官让我详细说说项目,我说做了H264解码,然后进行人脸检测、然后追踪最后识别,我主要负责H264解码和人脸追踪这块以及把整个模块合起来。
面试官问:H264解码怎么搞的。
我说用的是cuvid的硬解,然后输入是实时的视频流,输入用ffmpeg封装了下。
面试官说:我们最近也在做视频解码,不过用的是XXX,问我听过没,我说没(所以也没记住到底说了啥。。)
然后又问了一堆项目相关的问题,这里就不展开了。
问完项目,我以为还会问点基础啥的,结果面试官微笑的看着我,说:你有什么想问我的。我就有点着急了,应为感觉没问别的,感觉不妙。
我说如果有幸能来实习,我大概会做什么呢,然后他说可以做一些和你做过的项目相关的事情,比如视频、图片的处理等等(最后确定我的mentor就是他。。)。我说那还不错哈,然后面试官又问还有什么想问他的,我说那下面还有面试吗,他说我过去一下,你等会。于是起身走了。。。
二面:
大概等了7,8分钟吧,在等待期间观望了下工作区,发现有的电脑是悬空的(大概这个意思),感觉还挺有意思。然后一位略带婴儿肥的面试官拿着简历、纸、笔过来了。我估计可能会问些计算机基础以及算法了。
面试官:看你简历上写熟悉CUDA,你能具体讲讲吗。
我:写过图片的resize,padding,卷积,提取hog特征等的gpu代码(kernel函数),效果还不错。
面试官问:具体说说怎么做到提升速度的。
我:把处理安排到gpu的每个thread上。
面试官:那看来你就相当于简单的利用了gpu的多核的特性?
我一听感觉面试官不是很满意,于是扯了扯:还用了share_memory,const_memory等来提升速度,用了原子操作等来保证安全性。
面试官:你能讲讲使用shared memory为什么快吗?
我:在某些应用场景下会快,一来和使用场景有关,讲了下哪些场景用这个会好一些,二来可能是硬件方面的原因吧,硬件原理方面的我也不清楚。
然后面试官从内存的金字塔结构,以及gpu的一些特性给我展开讲了很多,这个面试官感觉是gpu方面的行家,人非常好,感觉给我做了个讲座。。。
然后面试官问:你知道warp这个概念吗?
我说知道,就是gpu底层同时执行的指令数量,现在一般是32.所以在写内核函数的时候,thread的数目最好是32的倍数。其他的不太清楚。
面试官好像点了点头,又给我balabala做了一次讲座。。。。
面试官问:假如要申请一大片空间,一次性申请这么大的,和分多次申请很多小的,但总数一样,哪个快,为什么。
我:在做项目的时候遇到过这种情况,前者会快很多,然后说了原因(答得不太标准,就不误导大家了)
面试官:其实cpu和gpu在这方面是一样的,
都会维护一个表什么的,记不太清楚了。
面试官:怎么看gpu使用情况。我:nvidia-smi(我用的是nvidia的卡)。
记得的大概就这些,然后面试官说,来写代码吧。然后给了个函数原型,反转字符串。比如abcd,变为dcba,内存、时间方面最好比较好。
我一看,感觉非常简单,但又觉得有坑,想了想,可能就是看看会不会写代码吧,然后我的做法是先计算长度,然后最后一个和第一个互换这样的,交换用的是异或。然后把一些边界等处理了下。
面试官简单看了下,然后说:你有什么想问我的(感觉面试都是这个套路),我说你评价下我吧。面试官说:作为一个研究生,深度还有待加强,不过我这里你通过了。
三面:
等了十分钟左右,一位高高瘦瘦的面试官走了过来,这个面试官比起前面两个严肃多了,搞的我有点紧张。。
首先对着简历问问题,这里就不展开了,然后问知道大小端吗?
我:知道,数据的低位存在低地址,高位存高地址,这是小端模式,大端是反的。然后说了linux下可以通过系统调用看机器是什么模式,以及自己可以写程序,用指针判断是什么模式(写了下代码)。
面试官:操作系统页式管理,讲讲。
我:查找页表项,看这页在不在内存,不在的话,产生缺页中断,然后看有没有多余的位置,没有的话要把以前的页面调出去,具体怎么调油LRU、时钟算法等。
面试官:奇数个数,只有一个出现了一次,其余都出现了偶数次,找出这个只出现一次的数。
我一听,刚好做过,一激动,他还没说完我就说:全部异或一遍。
面试官:是不是做过?我才发现自己太蠢了,应该故作思考的,然后就说也不能这么说吧,我自己对位操作做了个总结(把面试官往自己熟悉的方面引导,也是看别人的面经学的)。
面试官:讲讲你总结的,然后我就展开聊了会。
面试官:一个不重复的字符串,还有一个通过这个字符串通过各种交换的字符串,求最小交换次数。我:把源字符串看成1到n的数字,然后逐个处理(讲不清,有兴趣的可以搜一下标准做法)。
然后又问知道什么图像处理的方法,以及HMM和AdaBoost(简历提到),深度学习相关的一些。
最后问对人脸识别有什么看法,我说人脸具有稳定的结构,比如额头-眼睛-鼻子-嘴巴,所以比起其他东西要好识别,以及应用意义比较大。
然后又是既定流程:你有什么想问我的。最后面试官说你等下我去找下人事,然后我就觉得应该没问题了
hr
最后和hr姐姐(应该是一样年纪,通过交流知道也是实习的,还在北大读书。。orz)谈了下薪资、mentor、所属的组,以及什么时候入职。
最后部门是智能安防,算法实习生的offer。
总结:
一面项目,二面gpu相关,三面计算机基础、算法。简历上的每一个问题都要自己非常熟悉以及能过扩展的去说。(好像有人在经验贴里说过),尽量往自己熟悉的地方去引导。。。。
面试还是要看缘分吧,然后多看看别人的面试经验,对每一个问题都自己去搜一下,以及扩展一下,我也在牛客网看了量的经验贴(再次感谢)。这种临时抱佛脚效果还是很大的。
最后还是要说文笔不好大家见谅哈,希望大家都能找到自己满意的offer!

转载自:https://www.nowcoder.com/discuss/23418
页: [1]
查看完整版本: 地平线机器人面经(已拿offer,算法岗,计算机视觉方向,)