AI+HPC 部署优化面试范围分享

背景

最近几年生成式AI技术和自动驾驶技术发展发展很快,这些行业对于算法的运行效率有很高的要求,尤其一个模型在训练完成后运行到设备上,需要大量的工作,包括模型的剪枝、蒸馏、压缩、量化、算子优化、系统优化等。

对于传统的算法岗位在互联网基本已经饱和,干的工作比较低级,据我了解到基本是做数据清理和调参,这些岗位在未来基本没有竞争性。对于传统互联网的算法岗位,我是不看好的,目前最火也就是做做推荐算法,还算不错,但是现在特别卷,基本没有好的学历和paper很难进去。

未来是AI的时代是大家的一个共识,目前AI行业的一个难题是算力问题,算力就是成本,能够通过极致的优化使得算法在不同架构的处理器上高效运行,榨干芯片的极致性能,这是当前非常重要的一个工作,我从BOSS了解到最近2年有关AI算法部署、AI算子开发、模型优化岗位增多,而且薪资较高,且竞争压力比较小,要求主要是算法在不同平台上的极致性能优化,对算法设计的要求低一些,偏工程化。

面试

网上搜索有关的面试经验,基本不太全面,实际的问题和方向,相对于一些后端开发和算法岗位实在少得可怜,这也说明这个方向还不太卷,有着极大的机会,说实在的,这些年走来发现机会大于一切努力,但是机会一般只在一定的窗口期产生,错过就没有了。

以下是我总结我在面试AI部署、模型优化、深度学习模型部署等岗位过程中的一些范围,先写一些整体的方向,后续有机会我会分享具体的面试经验。

  • 基本技能

    • C/C++、多态、模板、引用、智能指针、STL、内存管理等,会持续深入,甚至会让实现一些比如:解决循环引用、智能指针的实现。

    • AI的基础知识,整体的训练的流程、算子的计算对比、深度学习的基本知识,pytorch等框架,网络结构,目前流行的网络结构、transformer、YoLo系列、LLMs、BEV、GPTs、BERTs等。

    • 模型推理部署优化的整体了解,把握其中的一些点,模型的剪枝、int8量化、算子融合等计算图的优化;算子优化,涉及kernel的实现,这里会要求手写实现,比如3x3 conv2d和矩阵乘;内存、通信方面的优化,内存池,通信等。

    • 一些硬件体系结构,主要是存储体系结构、x86、ARM;知识有Cache、寄存器、内存控制器、总线、Intrinsic指令、矢量编程、汇编;要求能够了解CPU优化的核心。

  • 重点题

    • 一般会问你一个模型推理优化的手段有哪些,准备怎么做,如何极致优化,如何使用profiling工具、如何判断该模型的优化瓶颈和重点在哪里,如何判断这个模型无法往下优化了,如何快速找到优化这个模型的最好的方法

    • 手撕kernel 算子开发,一边撕,一边问,直到不会,常见的有:矩阵乘、conv2d 优化、矩阵转置,占比80%

    • 手撕LeetCode,上面回答的好,这里可能简单些,占比20%,说实在的LeetCode手撕,个人认为没有太多意义,就是验证下你是否有编程过

  • 个人项目

    根据简历情况问

    • NVIDIA CPU的体系结构、内存模型、线程模型,CUDA算子优化

    • OpenCL算子优化,具体优化手段

    • AI编译器的一些知识和优化、TVM、代码生成等

    • 一些推理引擎、TensorRT、OpenVINO、OpenPPL等

    

根据上面看到的,大家不难看出想要掌握这些知识非常的不容易,但这也是壁垒,我看到的是这个行业目前没有35岁之说,而且随着时间的增加优势会不断的扩大,AI的快速发展、要求我们时刻进步,未来只有使用AI的人和被AI淘汰的人。

有兴趣可以关注我的专栏《高性能开发基础教程

该文章首发于 subscriptions极空AI,后续我会在上面整理完整的AI+HPC资料,并提供相关书籍推荐,至于视频要不要录制,看大家需要不需要。

有兴趣的可以关注。

相关推荐

  1. 范围查询优化:索引跳跃扫描

    2024-07-20 23:36:03       42 阅读
  2. Spark面试整理-如何在Spark中优化分区

    2024-07-20 23:36:03       37 阅读
  3. mysql优化面试

    2024-07-20 23:36:03       50 阅读
  4. 详解Oracle数据库索引范围扫描原理和优化方法

    2024-07-20 23:36:03       32 阅读
  5. Tomcat部署优化

    2024-07-20 23:36:03       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-20 23:36:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-20 23:36:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-20 23:36:03       45 阅读
  4. Python语言-面向对象

    2024-07-20 23:36:03       55 阅读

热门阅读

  1. django 应用目录介绍

    2024-07-20 23:36:03       17 阅读
  2. 探索 PDF 转 Markdown 的项目:MinerU 和 pdfParser

    2024-07-20 23:36:03       19 阅读
  3. Jackson 库简介--以及数据脱敏

    2024-07-20 23:36:03       17 阅读
  4. cdh社区版免费替代方案。

    2024-07-20 23:36:03       16 阅读
  5. HJ99 自守数

    2024-07-20 23:36:03       19 阅读
  6. vue-print-nb 前端打印的一个实现方案

    2024-07-20 23:36:03       20 阅读
  7. 【Linux的线程篇章 - 线程基础知识储备】

    2024-07-20 23:36:03       15 阅读
  8. 解决网络游戏频繁掉线的策略与实践

    2024-07-20 23:36:03       16 阅读
  9. Qt项目:基于Qt实现的网络聊天室---好友申请

    2024-07-20 23:36:03       14 阅读
  10. 微软全球大蓝屏:必须手工修复

    2024-07-20 23:36:03       20 阅读
  11. 25、气象填色图绘制

    2024-07-20 23:36:03       13 阅读