T0 大厂 百度
百度 AI Infra (2)
百度 AI Infra 面试真题,涵盖算子优化等方向
算子优化
一面
项目经历
- 介绍简历中的项目与论文,围绕涉及的技术点展开提问
高性能计算
- OpenMP 并行区如何开启?(pragma omp parallel 相关语法)
- 在并行区内执行
for(int i=0;i<100;i++){sum++;}与串行执行的结果是否一致?如何保证一致性? - GPU 的内存层次结构:Register File、L1 Cache、Shared Memory、L2 Cache、Global Memory 各自的作用域
计算机体系结构
- Cache 映射方式的分类与特点(组相联、全相联、直接映射)
C++ 基础
- 智能指针的分类与各自的使用场景
- C++ 多态的概念与实现方式(重写与重载的区别)
- 动态链接与动态绑定的区别
二面
项目经历
- 围绕简历与项目进行深入讨论
C++ 基础
- STL 中 map 的底层数据结构是什么?
- 平衡二叉搜索树(AVL)与红黑树的区别
- unordered_map 的底层实现原理
- 哈希冲突的常见解决方法
计算机体系结构
- 计算机的存储层次结构(寄存器、Cache、主存、辅存)
- CPU 中应用程序员可见的寄存器有哪些分类?程序计数器(PC)的作用是什么?
其他
- 常用的操作系统命令有哪些?
三面
C++ 基础
- 如何在 main 函数执行之前运行一个函数?
- 调试时如何设置条件断点?
- 如何进行堆栈监视?
- 程序在内存中的分段结构(代码区、数据区、堆区、栈区等)
- STL 中 deque 的底层实现原理
计算机体系结构
- 寄存器与 Cache 哪个更快?Cache 与主存分别采用什么技术实现?两者有何异同?
CUDA 编程
- CUDA 中的内存分类(本地内存、全局内存等)
- Kernel 函数的概念,
__global__关键字的作用 - 如何获取 GPU 允许的最大线程数量?
算法基础
- 贪心算法与动态规划的区别
- 常见的图搜索算法(BFS、DFS)