记上周面试一小伙的全过程~ AI推理优化方向

上周,领导给了我一份简历。

领导:熊猫,这里是一个来自xxxx大学的同学,你看看有没有空去面试一下

:OK,我看一下

(我看了后发现,这同学的简历写的还不错,重点突出,层次分明,虽然一开始是做算法的,但是后面也有几段AI-HPC、AI推理优化的经历,工作内容对于校招生来说还可以,且写的东西都在我的知识范围内,我有信心可以“焦作人”,于是答应了去聊一聊)

--------------------------------------分界线-------------------------------------

时间飞逝到面试时刻。

:你好,同学!我是XX公司的AI推理加速工程师,花名熊猫,首先感谢你今天参加我们的面试,那我们开始吧(本人对颜值比较有信心,所以摄像头一般都会主动打开),请你先简单介绍一下自己与AI相关的经历吧

候选人:(此处略去2分钟,候选人比较有条例的介绍了简历上自己负责的内容、成果以及对团队的贡献)

:OK,表达的非常不错哈(介绍的时候,对经历的概括和表达能力其实也是我们团队的一个metric,因为之前有一哥们沟通起来很痛苦,半天都说不清楚他遇到的问题是什么),我注意到你提到你用CUDA写过并且优化过GEMM,取得了还不错的性能,这一点能讲讲具体的优化手段吗?(关于GEMM,本人不爱问,因为太复杂,且实际用不着,但是鉴于现在很多人都爱把它写上去,所以我会来拷打一下)

候选人:我具体用了xxx和xxx和xxx优化手段,(然后介绍了每种优化手段的具体做法)

:好的好的,听起来很不错哈,那么你能说一下用这三种优化手段的动机吗?或者解决了什么问题?(一般这一块就会体现出候选人之间的区分度)

候选人:xxx主要是解决某某某,xxx应该是解决这个这个,xxx好像是解决那个那个

:(到这里,我就不再问GEMM了,因为这个动机都不知道,那自然没用问下去的必要了)OK,那既然你写过GEMM了,那float4你知道是个什么类型吗?(逐渐开始简单化)

候选人:噢,这个是一个built-in的向量数据类型,表示4个float数据

:(穷追不舍)那这个类型在你的GEMM里有用到吗?

候选人:用到了

:那你用它的原因主要是什么

候选人:增大带宽利用率

:嗯,增大哪级带宽的利用率

候选人:global memory和shared memory和register

:嗯,那如果是其它算子,比如你写的xxx,用了float4是否一定会带来性能提升呢?

候选人:嗯,是的

:你确定吗?

候选人:emmm..我想想,确..定

:(我对这个答案不太满意,于是转向八股了)那global memory我们在访问的时候,一般需要注意些什么

候选人:这题我会,需要注意xxx和xxx

:OK,那你看看这几个图,你分别算一下它们的global memory访问效率

[A FEW MOMENTS LATER]

候选人:做好了

:嗯,还不错,那你知道register spill吗?

候选人:嗯

:register spill是好事还是坏事,原因是什么

候选人:此处省略n个字

:嗯,既然如此,一个线程使用的register是不是越少越好

候选人:不是,因为xxxxxx

:好,那我们来聊一下大模型,我看你也写了一些大模型算子,我对fusedAttention比较感兴趣,你大概介绍一下这个算子的实现方式,不用太具体。(因为他稍微讲讲我大概就知道怎么个回事)

候选人:(此处略去n个字)

:那你有没有了解过你的这种方法和当下流行方法的gap在哪里

候选人:(此处略去n个字)

:(我对答案还挺满意,说出了与paged attention和flash decoding的区别,他对attention这一块理解还是比较可以的,对于校招来说已经足够了)(我尝试稍微加大一些难度,探一下对大模型的底)那你有没有了解过1 < query len < keyvalue len的这种场景?

候选人:这个没了解过

:(没了解过属于正常,但是了解过会脱颖而出)OK,我们再来问问C++吧,你写过cuda应该C++也不算陌生,拷贝构造函数知道伐?

候选人:知道

:什么时候需要我们自己写拷贝构造函数?

候选人:xxxxx

:你确定吗?

候选人:确定!

:(居然没被搞到心态)嗯,那你写一下拷贝构造函数的函数签名吧,假设这个类叫做A

候选人:xxx

:C++11里面const和constexpr的区别是什么?(这题基本的八股都会背,但是想要答完整答深入挺考验C++功底,才学的人肯定答不深)

候选人:xxxx(勉强还行

[A FEW MOMENTS LATER](聊其它项目经历时间,顺带穿插一些问题,略)

:嗯,不错,那我们来写一道leetcode,二叉树的最大深度

候选人:xxxx

:好,感谢同学今天的面试,后续有消息HR会电话通知你哈。

点评

这个同学的基础其实是不错的,C++/CUDA/GPU的一些基础都能答上来,leetcode题也写的七七八八,对写在简历上的项目也能清楚的描述出来,对一些做法的理解也算是比较深刻了,当然也有理解不太深刻的地方,比如GEMM,float4,但是GEMM在我们这里是无所谓了,这个在绝大多数地方实际工作本来也用不到,我这里问一下主要是简历上写了,那我得拷打到你答不出来为止,从而看看你的理解程度,但是float4这儿没答好是一个小缺点,说明对GPU的理解还不太够。我这一面其实我是愿意给√的。

稍微评价一下简历:总的来说除了GEMM,简历上其它东西都能说清楚,关联的一些知识也能答个七七八八,对于校招足够,另外,GEMM是一个双刃剑,你要是真的懂,那面试会加分,你要是个半吊子,那么就完蛋;个人技能别写太细太多,你写的越多越细,问你会越深。

预告

最近,猫哥我正在策划一个面试冲刺强化班,全程直播,持续5-7天,计划先招10人保证质量,帮助短时间掌握秋招面试重点、方向、题目,以及批注简历,将在后面几天正式推出!这都解决不了小小面试的话,我是不太信的

全部评论
大佬,请问1 < query len < keyvalue len是什么场景呢?
点赞 回复 分享
发布于 08-14 20:55 上海
大佬,开课社招可以听吗?想转AI推理优化方向
点赞 回复 分享
发布于 08-21 12:06 上海
太强了,这老哥这水平能到sp吗
点赞 回复 分享
发布于 09-01 13:10 安徽

相关推荐

【华为2012实验室AI推理方向秋季招聘】对AI大模型推理系统加速、应用优化、架构设计等感兴趣且想加入华为的同学欢迎联系我,有一定深度学习基础即可,我们更看重学习能力,一起研究共同进步,推荐丰厚的职业机会。地点:北京、上海、合肥、杭州、深圳联系人:李学长,私聊加微信联系一、AI系统软件工程师岗位职责:1、面向大模型、搜索推荐、自主无人系统等关键行业AI应用场景,负责昇腾平台AI软件系统瓶颈分析以及优化方案的设计开发;&nbsp;2、负责AI训练/推理系统的优化方案设计和开发,结合AI算法对系统的要求,通过网络、IO、调度等方面优化,提升AI系统性能;&nbsp;3、构建面向AI的系统性建模、瓶颈分析及仿真能力,持续优化昇腾AI软硬件系统,提高昇腾AI平台的竞争力。岗位要求:1、计算机、软件、自动化、电子、通信、机器人等相关专业;&nbsp;2、编程基础扎实,熟悉掌握python/C/C++编程语言,有良好的架构设计和编程习惯;&nbsp;3、具备独立工作能力和解决问题的能力、善于沟通,乐于合作,热衷新技术,善于总结分享,喜欢动手实践;&nbsp;4、有AI模型训练、模型应用部署相关开发和性能优化经验;5、有AI训练框架、AI推理引擎的开发经验,或算法硬件加相关经验者优先。二、AI推理加速工程师岗位职责:1、面向AIGC类大模型,主流商业场景的CV/NLP/语音/推荐类的AI模型推理场景,负责通用的推理加速和量化压缩算法的设计、开发、落地;2、结合昇腾硬件特性,设计昇腾亲和的推理加速算法,构建昇腾推理算法竞争力;3、面向大模型场景,研发高倍率的模型压缩算法,减少大模型部署成本。4、把握业界和学术界最新研究进展和技术趋势,持续提升算法竞争力。岗位要求:1、熟悉计算机视觉/自然语言处理/搜索推荐等方向主流的AI模型及模型推理加速算法,有丰富的推理加速和模型压缩经验,主导过完整的算法研发、优化及落地;2、熟悉通用的参数类、结构类AI模型压缩与加速算法,包括量化、剪枝、蒸馏、网络结构搜索、图优化等;善于自动组合各类模型压缩算法达到最佳的压缩比和推理性能收益,有Transformer大模型的加速经验为佳。3、熟悉业界常见的推理引擎,如TensorRT、vllm、TGI等,熟悉常用的推理加速技术;4、具备较强的算法研究能力,可快速跟踪洞察业界最前沿AI领域技术,主导算法的持续领先。
投递华为等公司10个岗位
点赞 评论 收藏
分享
8 26 评论
分享
牛客网
牛客企业服务