影石嵌入式一二面面经(偏AI推理/C++)

最近影石的秋招真的让我心态反复横跳。

本来已经打算放弃了,结果后面又被抬价,直接又燃起希望了😂

整体面试体验还是挺不错的,面试官都很强,问得也很深入,尤其是对项目和底层原理的考察非常细。

这里整理一下自己的面经,希望能帮到后面准备秋招的同学。

一面:疯狂技术拷打(AI推理 + C++ + 体系结构)

一面的面试官绝对是技术大牛,问题密度非常高,几乎没停过。

AI推理 / MNN / 模型部署

  • 为什么选择 MNN 推理框架?调研过其他框架吗?
  • 模型从训练到端侧用 MNN 推理的完整流程是什么?
  • int8 和 FP16 的性能提升明显吗?
  • MNN 做了哪些优化?
  • 双线性插值的 4 个点权重怎么计算?
  • 仿射变换用了哪些 NEON 指令?
  • ax+b 如何用向量化加速?会用什么 NEON 指令?
  • HWC、CHW、NC4HW4 的区别是什么?
  • 如果通道数刚好是 4,HWC 和 NC4HW4 是否等价?
  • 卷积的计算过程是什么?
  • 多输入通道、多输出通道是怎么计算的?
  • 剪枝做了哪些工作?
  • 是否了解稀疏化等其他剪枝方式?
  • NPU 算力怎么看?如何估算?

C++ 基础

  • 常用的 C++ 特性有哪些?
  • shared_ptr 和裸指针相比有什么优势?
  • shared_ptr 和 unique_ptr 的区别?
  • 函数内部创建 unique_ptr 后作为返回值返回是否可以?
  • 如何把 unique_ptrA 转移给 unique_ptrB?
  • vector 的扩容机制是什么?
  • 如果不希望动态分配内存,如何提前分配?
  • 虚函数、纯虚函数是什么?
  • 父类析构不加 virtual 会有什么问题?
  • 引用传参有什么优势?
  • 如何兼顾传参效率和“不允许修改”?

操作系统

  • CPU 三级缓存的特点是什么?
  • 什么是 cache hit / cache miss?
  • 为什么 NC4HW4 这种格式能减少 cache miss?
  • CPU 从主存取数据时,以什么单位加载?
  • 多进程并发有哪些调度策略?
  • 峰值算力如何估算?
  • 指令周期是什么?
  • 什么是流水线?

二面:项目深挖 + 八股追杀

二面主要开始疯狂拷项目。

项目细节这里不方便展开,但会围绕:

  • 为什么这么设计
  • 有没有更优方案
  • 为什么不用其他实现
  • 性能瓶颈在哪里
  • 实际优化收益是多少

会一直往深处问。

除此之外还有一些八股:

JNI / Java Native

  • native 层对 Java 对象引用有哪些?
  • JNI 的局部引用、全局引用区别?

C++

  • 对 lambda 的理解
  • 引用的本质是什么?和指针区别?
  • set 和 unordered_map 的区别
  • 红黑树和 AVL(完全平衡二叉树)的区别
  • new 和 malloc 的区别
  • 堆区和栈区区别

算法

海量数据中找最大的 100 个元素:

  • 如何做?
  • 至少说出三种方案
  • 时间复杂度是多少?

整体感受

影石给我的感觉是:

真的很看重底层能力

不是只会调 API 就行。

尤其会关注:

  • SIMD/NEON
  • cache friendly
  • 内存布局
  • 推理优化
  • C++对象模型
  • CPU体系结构

这些东西。

很多问题都不是死背八股能解决的,需要真正理解。

整体来说,难度确实不低,但也能学到很多。

之前参考的一个指南比较好 有需要的同学可以看看

嵌入式软件工程师面试完全指南

把整个秋招攒下来的面经全整理在这里了,目前32篇 / 12w+字,持续更新中。

内容覆盖:C语言陷阱 / 计网高频 / 操作系统 / RTOS / Linux驱动 / 通信协议 / 硬件基础——基本你面试会被问到的,这里都有。

已经有 4.7w+ 同学在看,3300+ 订阅,数据放这,口碑自己说话。

适合面经基础薄弱、想系统梳理一遍的同学,后面只会越来越全。

https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM

全部评论

相关推荐

不知道怎么取名字_:青花的都挂啊,这是要啥人呢
点赞 评论 收藏
分享
求好运眷顾🙏🏻:翻译:面试前没盘点好hc一下面太多了,现在在排序回去等通知
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务