背景
阿里云的推荐了个异构计算编译的岗位,空闲期间进行了两次面试。
一面
二面
与HR约的是周一的早上,碰巧赶上上海疫情隔江封闭在家办公,比较方面视频面试。面试官是阿里某个部分的负责人,好像在美国,有时差的影响,但基本在约定的时间里准时开始,中间还有一只猫乱入了。比较少见的面试官上来就自我介绍的,而不是让面试者自我介绍,感觉起来比较和善。
问答过程
先问了下有没有最新的简历,因为比较久没有更新了,就回答没有,面试官也没纠结,就让介绍下在编译器方向上的工作经历。正式开始了面试过程。
- 在项目中负责过的事情;
- 做过什么优化;
- schedule 相对于JVM里算法的优势和特点;
- 寄存器压力调度的原因;
- maple 里有哪些寄存器分配算法;
- 为什么不使用开源;
- 能否转为jit编译器;
- 对于LLVM 或 GCC 的了解;
- 在 wasm 项目里的工作;
- 相对于开源 wasm vm 的优势;
- wasm 项目的劣势,以及如何优化;
- 对于 x86 、RISCV、arm 指令集的了解,以及它们之间的区别;
- 为什么换工作、工作地以及个人情况的简单询问;
- 平时的学习习惯、了解业界新动态;
- 后续的职业方向;
- 是否了解 AI 等技术
提问
简单问了下他们异构业务的情况。回答是,目前内部的情况是构建一套AI应用为基础的异构平台,包括GPU、CPU、加速卡等硬件。平台会有分布式计算的能力,能够合理的分配每个任务的执行位置。对上能对接各种应用场景(AI、数据处理等),中间会使用开源的软件(LLVM、TVM、tsensorflow等),后端包含多款硬件。有自研的芯片,会有软硬协同和优化编译器的需求。
总结
问题偏开放性和思考性的,如何优化、优缺点之类的。要求更多的是对于项目有整体的思考,了解项目的场景等。探查技术的广度、以及对于新东西的跟踪和学习能力。是否有持续学习的计划和自我要求。对于技术细节的把握比较少。整体上能泛泛而谈的回答问题,但对于面试官的提问和解答没有给出较好的理解,对于AI了解的不多。
后续要了解一些新技术的,扩展视野。