About 3 min
HPC C++ Interview Question Collection(Chinese)
网易HPC Interview
- 构造函数初始化列表与构造函数体内复制的区别
- 构造函数是否可以放到private里面
- 构造函数和析构函数是否可以为虚函数
- 说明static的原理
- 介绍stl里面的标准库vector
- 智能指针介绍
- 如果智能指针放到多线程中如何完成访问共享的对象
- 讲解一下动态绑定和静态绑定
- 算法题:Top k 如何用堆排序实现
- 介绍多态
- 构造函数为什么不可以为虚函数
- 析构函数为什么可以是虚函数
- B继承A,且有虚析构函数。A* a = new B中如果调用虚析构函数,会调用父类A的析构函数,还是子类B的析构函数
- 说明static_cast、dynamic_cast、const_cast、reinterpert_cast转换四种的区别
- 类指针如何用C++转换类别,例如A* a如何转换到B*类型?所有的指针是否都是使用dynamic_cast进行转换的
- 写一个拷贝构造函数?为什么你写的是引用传递?而不是值传递?(除了效率上的问题外)
- 算法题:如何判断两个链表相交?
- 题1扩展:如果两个链表都有环怎么办?
- 如何给链表排序?要求时间复杂度 O(nlogn) 空间复杂度 O(1)
网易有道笔试
1 .输入一个字符串,可在字符串后添加任意字符,使得新字符串变为回文串,要求输出最短的回文串。
2.找单词出现频率
3.数出现5就换成0
4.教授A认可B,B认可C,则A也认可C;自己可以认可自己;输入一个认可数组,数组中每个元素是一个认可对,求互相认可的对数。(互相认可即A认可B,B认可A)
第四题 Tarjan求强连通分量个数模版题
华中数控 武汉 C++
一面
两个面试官,40分钟。
- 详细介绍实习的项目/论文
- GPU 架构
- 对高性能计算的理解
- 为什么选择 cpp
- C++ 11 新特性
- RAII 原则
- 深拷贝、浅拷贝,分别应用场景
- C++ 20 协程简单讲讲,无栈协程、有栈协程
- 了解公司的业务吗
- 职业规划
二面
三个面试官,50分钟。
- 介绍之前在芯片公司做了什么
- LLVM 介绍,和 TVM 对比
- GPU 优化思路
- 编译器怎么对除法优化
- 链表/数组插入时间复杂度
- 堆分配/栈分配
- 静态存储区内存分配与堆内存分配稳定性对比
- 内存碎片
- malloc 底层实现方式
- 论文的研究问题,取得的进展
- GPU 是 SIMT 架构吗
- DPU 设计架构
- 抢占式调度算法
- 希望做什么方向
字节高性能
首先问了项目。 问了Cuda编程一般怎么优化 问了卷积如何优化 懂不懂共享内存 你一般怎么对Cuda编程进行优化 然后是c++八股 C的Malloc和c++的new有什么区别 Cpp的四种强制类型转换 深拷贝和浅拷贝 智能指针 如何防止内存泄漏 智能指针的实现原理 Vim的操作知识 会不会用gdb 平常用别的编程环境吗 有没有Ai部署的经验 算法题 图的最短连通路径长度