22届实习生春招面经【一】

上一周基本只面了两家公司,一家是字节,一家是商汤。这两家面的都是做异构计算加速方面的实习生岗位,只不过字节的岗位是系统部STE部门的异构计算实习生,而商汤的是MIG的计算机视觉见习研究员岗位,更专注于移动端的算法落地工程实现。目前两家都拿到了offer,分享一下面经。

字节一面:45分钟
  1. 问项目
  2. cache空间局部性是什么,cache miss发生的原因
  3. 快排算法的复杂度分析
  4. IPC在指令较多的时候会变高,此时如何根据两个函数的IPC进行性能比较?
  5. codesize对函数性能的影响
  6. 代码cost model的特征映射是怎么做的?
  7. 汇编指令的单指令及跨指令之间的特征有哪些
  8. Roofline模型的原理?
  9. 编译器parser的空间、时间复杂度分析
  10. 数据流分析的具体过程是什么?
  11. Top-Down过程的原理是什么?
  12. AST的构建方法?
  13. 虚拟内存中地址转换的工作原理是什么?
  14. 对AI的了解


字节二面:1小时20分钟
  1. Spec的工作原理是什么?
  2. 假设一个cache miss发生时的load时间为100ns,由于乱序执行等原因可以线性地处理多个cache miss,那么在一个指令执行window中如何计算最多可线性处理的cache miss数量?
  3. 写C++代码测量一个单核cpu在1秒内的访存数据数量(内存带宽)
  4. 测量代码和硬件之间可能存在哪些gap使得测量性能不准?(编译器及硬件角度出发)
  5. 测量代码中如何消除cache line size对测量结果的影响?
  6. 测量代码中如何消除page fault对测量结果的影响?
  7. 测量代码中向量化对测量结果的影响?
  8. 如何避免编译器优化中的常量传播对测量结果的影响?(顺便问了C++中volatile的原理)
  9. 如果数组中存的都是全局变量,对测量结果的影响是什么?
  10. 超线程的硬件原理是什么
  11. OpenMP原理
  12. 除了OpenMP还有哪些方法可以使用超线程运行程序?
  13. 了解apache和nginx吗
  14. 内存管理中的虚拟地址转换过程,page fault怎么处理
  15. CPU流水线深度和计算单元数量之间的关系对程序性能的影响(又譬如向量体系结构)
  16. 用过其他架构的cpu吗?

字节三面Leader面:1小时15分钟
  1. GCC/LLVM项目中的cost model是怎么做的
  2. perf原理
  3. instruction retired是什么
  4. 同样的函数在不同的编译方式下IPC下降的原因具体有哪些
  5. fall-through和jmp的哪种执行方式更快,为什么?
  6. CPU选择指令的乱序执行的算法?
  7. 会引起cpu流水线中stall的原因是什么
  8. 保证cache/memory一致性的实际硬件方法
  9. iTLB是什么?放在哪里?
  10. L1 i-cache是什么
  11. 堆排和快排的复杂度分析和为什么大家都在用快排
  12. MMU是什么,虚拟内存的工作原理
  13. 链接器的原理
  14. 将可执行目标文件运行后,os层级发生了什么,原理是什么
  15. fork()函数原理
  16. fork()之后什么时候子进程会修改.text内容
  17. 进程切换的具体过程,线程切换时有哪些信息被切换?堆和栈都是线程之间共享的吗?
  18. 栈的作用
  19. malloc和free的原理,free如何确定要释放多大的内存空间
  20. codesize如何对程序性能产生影响?
  21. Add/Sub和Dec/Inc之间的性能差异分析及原因
  22. 对性能会产生影响的汇编代码特征具体有哪些?
  23. 对代码的cost model需要考虑哪些因素?特征的选取如何完成?
  24. 如何学习计算机体系结构的知识?csapp说了啥?
  25. 你觉得自己的缺点是什么
  26. 手撕代码:小王写了一个makefile,其中有n个编译项编号为0~n-1,他们互相之间有依赖关系,用vector<pair<int,int>> deps表示。例如[a,b]表示b项依赖于a,请写一个程序解析依赖,给出一个可行的编译顺序。

用时5天顺利拿到字节实习Offer。

商汤一面:1小时15分钟
  1. 问项目
  2. 用C++写一个卷积函数并在二维矩阵上进行计算
  3. 使用SIMD向量化优化该函数
  4. 根据访存优化方法优化该函数(提高cache hit rate)
  5. 列计算优化(没做出来)
  6. 如何将计算量从O(MNK^2)降到O(MN)?
商汤二面:40分钟
问项目和相关细节(不太记得了,但是都问得很简单)
#实习##面经##字节跳动##商汤科技##C++工程师#
全部评论
楼主真的强
1 回复
分享
发布于 2021-03-17 19:46
看到似乎有用的信息——开心得点开——手写卷积函数?——还要优化?——这优化方法是什么鬼方法?——👋🏻
1 回复
分享
发布于 2021-03-17 21:36
联易融
校招火热招聘中
官网直投
请问楼主,想走这个技术栈的话需要看什么书呀?
1 回复
分享
发布于 2023-02-19 12:26 广东
codesize为什么会影响函数性能啊,QAQ不明白还查不到
点赞 回复
分享
发布于 2021-03-19 14:49
请问商汤就两轮技术+一轮HR面吗
点赞 回复
分享
发布于 2021-10-29 16:38
mark
点赞 回复
分享
发布于 2021-12-13 00:24
lz去了哪呀
点赞 回复
分享
发布于 2022-01-17 10:35

相关推荐

8 36 评论
分享
牛客网
牛客企业服务