记上周面试一小伙的全过程~ 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 安徽

相关推荐

(杭州、北京)(实习、应届生、社招均有)职位描述:工作职责:1.参与AI编译器相关项目的技术方案规划与研发,通过利用CPU、GPU、DSP以及NPU的并行计算优化、架构设计、稀疏优化和异构调度等高性能优化技术,打造行业领先的高性能异构AI推理引擎与编译器;2.针对搜索、推荐、广告、音视频以及大模型场景,优化模型训练和推理的计算图执行效率;3.与公司各算法部门深度合作,对重点项目进行算法与系统的联合优化。任职资格(满足其一):1.拥有LLVM编译工具链和优化pass等开发经验;2.熟练掌握C++编程语言,具备扎实的数据结构与算法能力,熟悉计算机体系结构和X86汇编,熟悉Python编程;3.熟悉XLA、MLIR、TVM、Triton、TensorRT等技术,并有相应开发经验者优先;4.精通CPU(ARM/x86)或GPU(Intel/Nvidia/AMD)平台的高性能计算优化技术,对计算机体系结构有深入理解,熟悉移动端或服务端的并行计算优化、访存优化和低比特计算等;5.了解深度学习算法基本原理,熟悉神经网络基本架构及其算子计算方式,了解至少一种深度学习训练框架及其模型文件解析,如Pytorch、TensorFlow;6.具备CPU/GPU下算子Kernel开发和性能优化经验,熟悉CUDA编程;7.具有独立解决问题的能力,能够对业务逻辑进行合理的抽象和拆分,具备良好的团队合作精神;8.了解主流AIGC算法模型原理,具有AIGC模型加速优化经验者优先。联系**********#秋招##快手##腾讯##字节##阿里##校招#
投递英伟达等公司10个岗位
点赞 评论 收藏
分享
8 20 评论
分享
牛客网
牛客企业服务