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

最近,正好在面试一些AI推理/大模型推理方向的校招同学,把面试过程按照对话的方式放出来,供各位看着玩玩。

上周,领导又双来给了我一份简历。之前已经面过一次了,见此处

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

我:OK,我看一下

(我看了后发现,这同学的简历虽然感觉写的一般,但是看起来工作量不少,实习应该有在认真工作,大模型推理相关技巧也有接触,在校招生里面,这些经历或许算得上top10%了,没准水平高过我,于是和

上一期

不一样,这次我是心怀忐忑地去“焦作人”)

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

时间飞逝到面试时刻。

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

候选人:(此处略去5分钟,候选人非常详细地介绍了简历上自己负责的内容、成果以及对团队的贡献,但是一个自我介绍而已,其实我听得有点累了,但是又不忍心打断他的表演)

我:OK,非常详细哈,看来你应该是有备而来,(我挑了一个自认为有很多聊头的项目来聊一聊)

候选人:我具体用了xxx和xxx和xxx的优化手段解决了xxx性能问题,(这里他详细分析了问题的来源、适用的方法,以及取得的结果,这个是我想听到的)

我:好的好的(接着换一个问题,继续聊项目)

候选人:此处省去n个字(依然难不倒他啊,对简历上东西很熟悉啊)

A FEW MOMENTS LATER...(聊项目时间)

我:(到这里,开始问一下重要的基础知识)shared memory的bank conflict你能描述一下定义吗

候选人:噢,这个xxxxxx(此处省去n个字)

我:(穷追不舍)那你看这种访问方式会有bank conflict吗?(我给了他一张图)

候选人:有

我:你确定吗(我承认bank conflict的概念非常隐晦,很多错误的说法,资料也不好找,且本人也经常误解)

候选人:确定(很遗憾,错误的确定)

我:CUDA stream有听过吗?

候选人:有

我:嗯,那么CUDA的所有stream是否都可以异步执行

候选人:不是,因为xxxx

我:(决定加大一点难度,甩一张图), 你看看下面这张图,每个CUDA stream上都有memcpyh2dasync,kernel,memcpyd2hasync的操作,你觉得这几个stream上的这些操作执行顺序可以是怎么样的?

候选人:emmm..我想想,此处省去n个字

我:(我有兴趣继续问下去)那哪种顺序下,总的latency最低?(这里其实有点难为他了,我没期望他能答出来)

候选人:(这里他想了有个5分钟以上,最终还是没打出来)

我:没事,这个问题其实有点难了,你能说出有哪些执行顺序其实已经很不错了,(差点把人弄自闭了,赶忙安慰一下),再问你一个关于CUDA的吧,我们都知道CUDA里面寄存器数量有限,那么如果kernel使用的寄存器超出了这个数量,会发生什么情况?

候选人:xxxx

我:嗯,还不错,我们来聊聊大模型推理相关的

候选人:嗯好

我:先来个简单的,encoder和decoder推理的区别在于哪里?

候选人:此处省略n个字(基本也答得七七八八还不错)

我:嗯,哪些是encoder模型,有没有encoder-decoder的模型

候选人:xxxxxx

我:好,你能稍微讲讲iter-level schedule解决了什么问题吗?

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

我:那你目前了解过哪些大模型推理引擎,有了解过SGLang吗?

候选人:(主要是vllm,SGLang没听过。。

我:(开始问一些vllm)你觉得vllm最大的创新在于哪里?

候选人:xxxx

我:(还不错)OK,那你觉得vllm现有的调度机制有没有可以改进的地方(这个我估计对他就有点难了)

候选人:想了一时半会,没想出来,感觉vllm挺牛逼的(想不出来实属正常,要我我也想不出来啊)

我:再问点量化吧,现有的Weight only量化主要针对哪些算子,哪些数据类型

候选人:xxxxx

我:你确定吗?

候选人:确定!

我:(还不错)那你觉得为什么只量化weight,不量化activation

候选人:(想了一会没想出来)

我:(慢慢引导)如果量化activation,你觉得模型性能是否会有提升

候选人:应该有

我:嗯,那你再想想为什么不量化activation

候选人:答出来了

我:好嘞,聊了这么多,最后再做个题吧,单链表反转,这个没问题吧

候选人:没问题

A FEW MOMENTS LATER...

我:感谢同学的时间,后续会有HR联系你,88

点评

这个同学的基础也是不错的,大模型推理/量化/CUDA的一些基础都能答上来,leetcode题也写对了,对写在简历上的项目也能清楚的描述出来,相关的引申知识点也能答出来,对一些做法的理解也是比较深刻,当然也有理解不太深刻的地方,比如CUDA stream schedule、activation的量化等等,但是整体也在校招生上等水平了,对一些前沿技术也有一定了解,技术之间的优缺点也有自己的理解,我这一面其实我是愿意给√的。

全部评论
请问楼主是达摩院大佬吗
点赞 回复 分享
发布于 09-04 00:20 上海

相关推荐

(杭州、北京)(实习、应届生、社招均有)职位描述:工作职责: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个岗位
点赞 评论 收藏
分享
3 10 评论
分享
牛客网
牛客企业服务