蔚来 编译器开发 一面

两个面试官,轮番拷打,主要业务是异构部署、交叉编译。全程五十分钟。

围绕项目经历

  1. 介绍自己的项目,接受拷打
  2. 编译器结构
  3. LLVM是什么
  4. LLVM编译的流程
  5. LLVM IR是什么、结构怎么样
  6. 其他项目高相关的就不提了

场景题

  1. 假设有自己定义的函数Func1,用于某个特定芯片上的,不希望被编译器做任何优化,该如何编译出来?在编译层面有什么措施、代码层面有什么措施?(考虑用动态链接库或者修改编译器的前后端,但感觉面试官好像不太满意)
  2. 在链接的时候,编译器怎么把上述的Func1链接进去的?(结合动态链接原理吟唱)
  3. Func1的参数的数据怎么办(编译器代码生成部分的内容,往栈上推)
  4. Func1访问不了栈和寄存器,能否限制参数不往栈或寄存器上推?(往内存暂时存放),或者往缓存上放?(不晓得)
  5. Func1运行在一个芯片上,Func2在另一块芯片上,编译器整体该怎么设计?(就是说在一个机子上,异构编译出两个芯片上能跑的代码。emmm,前端设计个类似于extern C的语法,后端该怎么输出怎么输出,真的感觉在胡说)
  6. 你说用LLVM做,那你有没有考虑过LLVM有什么缺点?

其他

什么时候到岗?能做多久?Base深圳可以吗?

总结

4月16日下午面的,全程无八股无手撕但问得满头大汗,对于异构部署也不熟悉只能根据自己的认知瞎回答。第二天感谢信了。

全部评论

相关推荐

3 1 评论
分享
牛客网
牛客企业服务