算法部署优化工程师面试题整理

这篇具有很好参考价值的文章主要介绍了算法部署优化工程师面试题整理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原文来自【知乎-高性能计算方向面试问题总结】

🎬个人简介:一个全栈工程师的升级之路!
📋个人专栏:C/C++面试整理
🎀CSDN主页 发狂的小花
🌄人生秘诀:学习的本质就是极致重复!

目录

整体情况简介

高性能计算基础

AI 框架知识

算法题

一些比较零碎的问题

推荐参考资料


整体情况简介

面试中的问题基本上分成以下几类:

  1. 基础的八股文:C/C++,OS,计算机体系结构等。这一部分略,网上已经有很多总结了。
  2. 高性能计算基础知识:这一部分是面试的重点,本文章以CUDA为重点。
  3. 各种AI框架知识:本文章以推理方向为主。
  4. AI基础知识:对于常见的机器学习算法,以及CV & NLP & 推荐模型有一定了解,了解计算流程以及模型结构即可,重点为了能分析出计算瓶颈在哪里,找出可能优化的方向。本部分略
  5. 算法题: 手写CUDA kernel和leetcode的比例大约为3:1。手写CUDA kernel的时候一般会结合第2部分一起问,一步一步要求你优化,每一步优化的具体原理,涉及到什么硬件知识等。

高性能计算基础

  1. CUDA的线程组织结构
  2. CUDA的存储体系结构,每一种存储的优缺点,该如何合理使用。
  3. GPU每一代的新特性有了解过吗?应该从哪里去了解详细信息?
  4. CUDA stream的概念,为什么要使用多个stream?
  5. GPU和CPU分别适合执行哪些程序?结合它们的硬件架构解释一下为什么它们有各自的优势。
  6. 说明一下神经网络加速器与CPU、GPU的区别,他们各自有何优势?
  7. 半精度浮点数FP16各个部分的具体位数,为什么要有半精度浮点数?
  8. TensorCore的加速原理
  9. MPI,OpenMP以及CUDA各自适用的加速场景。
  10. RDMA相关问题。
  11. 平时如何进行kernel的优化,会用到哪些工具?
  12. CPU上哪些并行优化方法?
  13. ARM相关的库有了解过吗?
  14. PTX有了解过吗?
  15. roofline模型有什么用?如何确定最优的BLOCK_SIZE。
  16. GPU资源调度有哪些方法?
  17. 稀疏矩阵的存储格式有哪些?稀疏矩阵的应用场景?稀疏矩阵计算与稠密矩阵计算有何不同?
  18. 如何计算CPU指令的吞吐量和时延?

AI 框架知识

这一部分会涉及一些AI框架(训练&推理&编译器)相关的问题,并且会重点根据简历上的项目经历去做一些发散性的提问。

  1. MLIR有了解过吗?ONNX有了解过吗?
  2. TVM的整体结构,如何用TVM进行开发?
  3. 为什么要进行推理优化?直接用tensorflow或者pytorch的推理接口不行吗?
  4. 模型推理优化的常用方法有哪些?
  5. 有研究过某一个框架的具体源码吗?
  6. TensorRT如何进行自定义算子开发?
  7. TensorRT对模型实现了哪些推理优化?常量折叠,算子融合,量化....
  8. 算子融合为什么能加速推理,优化了哪一部分?TensorRT用到了哪些算子融合?算子融合在推理框架中是如何实现的?
  9. 模型量化的加速原理,模型量化带来的精度损失如何解决?
  10. ONNX Runtime支持在多种硬件上进行推理,说明具体的实现机制。
  11. 总结一下TensorRT,ONNX Runtime等推理框架的组成架构,如果我们公司自己要为硬件开发一套推理框架,应该重点关注哪些部分?
  12. 各种推理框架都有何优劣势?它们的性能怎么样?
  13. 分布式训练中有哪些并行模式?每种模式需要做什么,有什么优缺点?
  14. 分布式训练中我们重点需要处理的问题有哪些?目前已有哪些解决方案
  15. MPI如何应用于AI框架中?
  16. 模型在移动端进行推理优化的框架有了解过吗?移动端和在服务器的推理优化思路有何不同?移动端能用到的加速指令有了解过吗?
  17. 移动端有哪些加速方法?
  18. 为什么要将模型一部分推理优化放在移动端,全部放在服务器上不可以吗?
  19. 自动驾驶上的推理框架有了解过吗?我们重点需要关注的指标有哪些?
  20. 反向传播的原理,具体实现的源码有了解过吗?
  21. 你了解哪些推理模型的调度方法?
  22. 推荐模型的结构有了解过吗?要部署一个大的推荐模型,应该如何将各个部分放在哪种硬件上部署?
  23. 计算图切分有了解过吗?如何应用于大模型推理?
  24. TensorFlow和Pytorch都用过吗?它们设计思路有何不同?有何优劣?如何添加自定义算子?

算法题

手写CUDA kernel几乎每场面试都会考,面试官会以写出来的第一个版本为准,一步步问继续优化的方法,在这个期间会结合高性能计算的基础知识来考察,从这个过程中能了解到对体系结构以及优化方法的了解程度。leetcode不一定有,但是遇上了基本上都是hard。两类算法题都要准备。

下面是常见的一些问题:

  1. 矩阵乘:
  2. 矩阵转置: 访存密集型算子的处理
  3. 一维reduce-sum:重点是如何处理bank confict
  4. 二维reduce-sum
  5. 卷积
  6. 将单stream改成多stream

以矩阵乘法为例说明一下一个典型的面试流程,下面以A表示面试官,B表示面试者。

A:写一个矩阵乘法吧,并将main函数中具体调用给写清

B: (写了一个最naive版本的矩阵乘)

A: 目前这个程序有什么问题,能进一步优化吗?

B : 目前访存性能比较低,可以采用矩阵分块并且使用上shared memory优化,并解释一下这样做的原理。

A:可以具体计算一下优化前后的计算访存比,来具体说明这一部分提升了多少。并写一下优化后的程序。

B: 通过计算优化了.....

上述对话会重复几轮,在后面几轮可能面试官不会再要求将每一版程序都写出来了,重点在于讨论优化思路,并且在讨论的过程中发散地问一点CUDA的知识考察理解的深度。

一些比较零碎的问题

  1. 卷积的三种加速计算方式,im2col+GEMM & Winograd & FFT,各自有何优缺点,cuDNN中有哪些实现?
  2. 数字信号的采样定理、熵 & 交叉熵 的含义 & 计算公式
  3. 还记得KKT条件吗?写程序求解一个非线性方程,并说明具体用到的优化方法。
  4. 脑洞问题:如何从编码的角度进行模型压缩?
  5. 如何将你研究生阶段的成果应用到我们的产品中?
  6. 给了一个TF 模型的profile,找出里面的bottle neck,提出如何改进这个模型的性能的方法。
  7. MIPS流水线有几级?分别是哪些组成部分?
  8. 说一下transformer的具体结构,如何加速transformer进行推理?
  9. attention的计算公式,写一下tf里面对应的代码
  10. 马尔科夫链简单知识
  11. 一道较难的概率题

推荐参考资料

  1. 《通用图形处理器设计:GPGPU编程模型与架构原理》:CUDA、GPU体系结构、PTX、TensorCore等GPU知识大杂烩,CUDA相关面试问题标答。对于GPU的硬件体系结构有较深入的介绍,虽然比较难懂,但是这一部读完后会对CUDA编程模型以及为什么要采用一些特定的优化方法有更深入的理解。
  2. 官方文档《CUDA Programming Guide》 & 《CUDA Best Practice Guide》: 不解释,必读。
  3. 《大规模并行处理器程序设计》:入门最佳,没有之一。其中第二部分对于CUDA中常见的计算Pattern做了分析,几乎可以应付所有的面试中的kernel编程,至少能答出80%,至于更深入地优化方法需要再花时间去研究。
  4. 《机器学习系统:设计和实现》:介绍了ML Sys这一领域的所有方面的基础知识,可以从一个整体的层面对机器学习系统的组成部分、每个部分的重点技术有较好的把握。这本书的框架主要以MindSpore为例,所以在整体读完后,需要结合自己比较熟悉的框架进一步仔细理解。该书有在线版本机器学习系统:设计和实现 - 机器学习系统:设计和实现 1.0.0 documentation
  5. 《深度学习进阶:自然语言处理》:只用numpy实现NLP模型,可以作为阅读深度学习框架源码的first course,会对AI模型中的底层实现细节有很好的理解。
  6. 《分布式机器学习:理论、算法与实践》:可以对分布式训练有大致的了解
  7. 《AI编译器开发指南》:深度学习编译器相关的介绍,重点在TVM。

建议: 1 ~ 4必读,这是所有领域的基础知识,5 ~ 7需要根据个人的研究兴趣和方向有选择性地深入阅读。

🌈我的分享也就到此结束啦🌈
如果我的分享也能对你有帮助,那就太好了!
若有不足,还请大家多多指正,我们一起学习交流!
📢未来的富豪们:点赞👍→收藏⭐→关注🔍,如果能评论下就太惊喜了!
感谢大家的观看和支持!最后,☺祝愿大家每天有钱赚!!!欢迎关注、关注!文章来源地址https://www.toymoban.com/news/detail-841528.html

到了这里,关于算法部署优化工程师面试题整理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • AIGC算法工程师 面试八股文

    目录 八股文 1、简述DDPM的算法原理 2、什么是重参数化技巧?Diffus

    2024年02月08日
    浏览(39)
  • 理想汽车大模型算法工程师面试,被问的瑟瑟发抖。。。。

    最近我们技术群的一位小伙伴,分享了他面试理想汽车大模型算法工程师的经历与经验。 今天整理后分享给大家,如果你对这块感兴趣,可以文末加入我们的技术面试讨论群 自我介绍,讲一下大模型应用项目(我讲的nl2sql的项目) 项目背景,总体思路,解决什么问题,指标

    2024年01月25日
    浏览(44)
  • 硬件系统工程师宝典(12)-----EMC应该知道的事

    各位同学大家好,欢迎继续做客电子工程学习圈,今天我们继续来讲这本书,硬件系统工程师宝典。上篇我们说到在做电源完整性分析时去耦电容要遵循的规则,大电容的去耦半径大,小电容的去耦半径小,电容焊盘扇出时,双过孔可以减少寄生电感等。今天我们开始学习

    2023年04月23日
    浏览(50)
  • 人工智能算法工程师面试题——之OpenCV必背汇总(四)

    在OpenCV中,图像融合通常指的是将两个或更多图像以某种方式组合在一起,以创建一个新的图像。这个过程可以用于多种目的,比如艺术效果、图像修复或信息增强。实现图像融合的一种常见方法是通过加权求和,也就是每个像素位置上将不同图像的像素值按照一定的权重相

    2024年02月21日
    浏览(50)
  • 硬件系统工程师宝典(17)-----你的PCB符合工艺要求吗?

    各位同学大家好,欢迎继续做客电子工程学习圈,今天我们继续来讲这本书,硬件系统工程师宝典。上篇我们说到PCB设计中板子要符合EMC,信号的走线要平顺,信号回流阻抗尽量小。今天我们开始看看板子在生产制造时的工艺问题。 DFX全称是Design for X(面向产品生命周期各环

    2024年02月04日
    浏览(48)
  • 硬件系统工程师宝典(15)-----PCB上的EMC设计,“拿捏了”

    各位同学大家好,欢迎继续做客电子工程学习圈,今天我们继续来讲这本书,硬件系统工程师宝典。上篇我们说到PCB常用的多层板叠层结构,综合成本、性能、需求考虑选择不同的叠层结构。今天我们来看看为提高EMC性能,在PCB设计上能有哪些处理。 做过EMC设计的都知道,滤

    2023年04月19日
    浏览(57)
  • 硬件系统工程师宝典(36)-----盘点常用的总线和常见的逻辑电平

    各位同学大家好,欢迎继续做客电子工程学习圈,今天我们继续来讲这本书,硬件系统工程师宝典。 上篇我们了解了SDRAM的存储技术以及SDRAM的发展历程,技术的进步推动着产品的升级,也加速了整个电子行业的发展。今天我们来讲一讲一些常用的总线及逻辑电平。 I2C总线是

    2024年02月13日
    浏览(39)
  • 硬件系统工程师宝典(16)-----符合EMC的信号走线与回流

    各位同学大家好,欢迎继续做客电子工程学习圈,今天我们继续来讲这本书,硬件系统工程师宝典。上篇我们说到PCB设计中为提高板子的EMC性能,会做滤波设计、地的分割设计、增加屏蔽壳。今天我们来看看板子要符合EMC,信号的走线和回流需要考虑什么。 从EMC角度,关键信

    2024年02月13日
    浏览(40)
  • 硬件系统工程师宝典(14)-----建议收藏!常用的多层板叠层结构“大揭秘”

    各位同学大家好,欢迎继续做客电子工程学习圈,今天我们继续来讲这本书,硬件系统工程师宝典。上篇我们说到PCB的布局可根据功能、频率、信号类型划分,布局时考虑敏感信号远离噪声源。今天我们来看看多层板的常用叠层结构。 四层板的叠层结构包含1个电源平面、1个

    2023年04月25日
    浏览(46)
  • 网络工程师知识点整理(一)

    固态硬盘(SSD)和U盘的存储介质都是 闪存 (flash) 虚拟存储技术是把 内存和外存 有机结合起来使用的 机械硬盘接口: SATA、SAS、SCSI、FC、IDE ,其中SATA、SAS应用较为广泛 固态硬盘接口: SATA、mSATA、SAS、M.2、U.2、PCIE ,家用:M.2;企业级:U.2、SAS、PCIE 主流国产操作系统:

    2024年02月07日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包