资讯动态

双非本科做AI编译器:学习路线、项目经验与求职策略

发布时间:2026/10/16 9:21:15 来源:尧图企业网站定制
1. 先回答那个最扎心的问题学历到底卡不卡先说结论双非本科不是没机会但机会藏在方向选择里。过去五年我接触过不少AI编译器方向的团队从头部大厂的自研编译器组到创业公司的推理优化团队实话实说这个赛道对学历的执念远低于纯算法岗。原因不复杂AI编译器是个“脏活累活特别多”的方向它需要大量的人去写算子、调调度、搞性能分析、适配新硬件这些工作考验的是工程能力和系统思维而不是论文数量。一个双非本科如果能拿出像样的编译器项目、能在GitHub上看到真实的代码贡献、能说清楚TVM或MLIR里某个pass的原理他在面试官眼里的价值不会比985硕士低。但这里有个前提你得想明白AI编译器是“进去难、站稳更难”的方向。学历只是敲门砖里的一块真正决定你能不能留下来的是底层能力。我见过太多被“AI编译器”这个词吸引过来的人以为学了Python调调框架就是搞编译器了结果连LLVM IR的基本概念都说不清。这类人不管什么学历都会被刷掉。所以把问题拆开看其实要回答的是三件事这个领域到底是什么、双非背景具体卡在哪个环节、怎么靠学习路径和作品集把学历劣势补回来。下面一个个说。2. AI编译器不是“编译器AI”这么简单先把这个盘子里有什么搞清楚很多人把AI编译器理解成“用来写AI程序的编译器”这个理解不能说错但太粗糙了会导致学习方向完全跑偏。AI编译器的准确说法是深度学习编译栈它的目标是把你用PyTorch、TensorFlow写出来的模型通过多层中间表示和优化pass最终转成能在GPU、NPU、FPGA这些硬件上高效运行的代码。它跟传统编译器比如GCC、LLVM最大的区别在于传统编译器面向的是通用编程语言优化目标是减少指令数、提升指令级并行AI编译器面向的是张量计算图优化目标是算子的融合、内存的复用、访存模式的优化、并行划分的调度。2.1 这个领域里到底有哪些岗位方向我习惯把AI编译器相关的工作分成四类你可以对照着看自己更适合哪个编译前端与中间表示方向负责把深度学习框架的模型转换成统一的图表示主要涉及ONNX、TorchScript、MLIR的dialect设计。这个方向最靠近传统编译器理论需要比较扎实的编译原理功底。图优化与算子融合方向在计算图层面做算子融合比如把ConvBNReLU融合成一个算子、常量折叠、死节点消除、内存规划。这个方向最热职位需求量大也是入门最容易的切入点。代码生成与调度方向把优化后的图映射到底层硬件指令涉及tiling、vectorization、循环变换、auto-tuning自动调优。这个方向对体系结构的要求最高偏底层。算子层优化方向针对某个具体硬件手写或者半手写高性能算子比如FlashAttention这种级别的优化。这个方向通常叫性能优化工程师虽然不算严格的编译器岗位但跟编译器团队紧密配合需要的技能高度重合。2.2 为什么这个领域对双非相对友好想明白为什么AI编译器对双非比纯算法友好得看清楚这个领域的供需关系。AI编译器最大的特点是人才供给严重不足——高校里开设系统类课程本来就少愿意扎进编译器方向的学生更是凤毛麟角因为短期看不到回报学起来又苦。结果就是市场上的存量人才少得可怜需求却在AI芯片公司、云厂商、大厂AI基础设施部门、自动驾驶公司里持续放大。供需不平衡的时候用人单位会务实很多。我的观察是在AI编译器团队的招聘JD里“学历要求”往往写得比其他组灵活更强调“有相关项目经验”和“底层基础扎实”。毕竟这个方向上手周期长与其招一个有学历但不懂硬件不懂编译的人重新培养不如招一个虽然学校一般但已经在开源社区里证明过自己的人。当然说“友好”不是没有底线。数理基础、C功底、计算机体系结构、操作系统这四样是绕不过去的硬门槛学校教不教是学校的事学不学是你自己的事。后面讲学习路径的时候这些是地基里的地基。3. 从零开始的学习路线按“倒着学”的思路来很多初学者学AI编译器最痛苦的一点是不知道从哪下手。搜了一圈资料要么是TVM源码解析这种跳跃性太大的要么是编译原理教科书这种看了三章就劝退的。我建议的思路是倒着学——先从最上层的使用场景入手看一个AI编译器解决了什么问题再往下钻到某个具体环节最后再回头补理论。这个顺序跟学校教学正好相反但对“想快速做出东西建立正反馈”的自学者来说效率要高得多。3.1 第一阶段把地基打扎实4~6周在碰任何AI编译器框架之前先把四门课补起来。别嫌基础这个阶段省了后面全是坑。CAI编译器的主流代码基本是C写的你要达到的水平是能读懂模板元编程、智能指针、lambda表达式、move语义至少要能看懂TVM或MLIR里的现代C代码风格。这里不推荐啃大部头直接用C Primer挑重点章节过一遍然后在LeetCode上用C刷题练手感就够了。计算机体系结构不需要到造CPU的程度但CPU流水线、缓存层级、访存延迟、SIMD指令、GPU的线程模型和访存带宽这些必须懂。推荐配合一本《计算机体系结构量化研究方法》选读相关章节或者看MIT 6.004的公开课。编译原理基础不需要从头到尾读完龙书但词法分析、语法分析、中间代码生成、基本块和流图、数据流分析这些概念必须有LLVM的Kaleidoscope教程是很好的动手练手材料。操作系统重点在虚拟内存、进程线程调度、I/O路径因为后面做算子优化会频繁涉及内存分配策略和数据搬移的开销。这个阶段的目标不是成为专家而是让你看AI编译器代码的时候不犯怵。我的判断标准很简单随便翻开一个TVM的pass实现文件你能大致猜出这段代码在做什么就说明地基行了。3.2 第二阶段从ONNX和PyTorch导出入手理解“前端在干什么”4周很多人上来就啃TVM源码这是最大的误区。正确的第一步是搞清楚模型怎么从训练框架变成一张“计算图”。实操建议是找几个经典模型ResNet、BERT这种用PyTorch写一遍推理然后导出成ONNX格式用Netron可视化一下计算图再手动改改图结构。等你对“一个模型可以被拆成一张有向无环图”有直观感知了再去看TVM的Relay前端理解它怎么把ONNX转换成自己的IR。这一步是用“操作”带动“理解”比你抱着源码死磕有效得多。3.3 第三阶段用TVM跑通一个完整流程6~8周TVM是目前资料最成熟、社区最活跃的AI编译器框架拿它作为主刀对象是最稳的选择。具体路径是用TVM的官方教程把从Relay构建图到调度的完整流程跑通包括autotvm或者ansor自动调优。尝试对一个模型做端到端推理优化对比原始PyTorch和TVM优化后版本的性能差异。阅读TVM里一两个关键pass的源码比如算子融合看懂它做了什么、怎么做的。尝试给TVM贡献一个小patch哪怕只是修代码注释或者增加一个测试用例这个经历在简历上很有分量。这里有个很多人忽略的细节学TVM千万不要迷信“把整个源码读完”这个目标。它的代码量太大读完根本不现实。你要做的是“带着问题读”比如答案为什么算子融合能提升性能为什么NCHW到NHWC的layout转换能利用更优的访存把这类具体的pass吃透比泛泛地扫代码有价值得多。3.4 第四阶段选一个方向深入8周以上跑通TVM之后你要做一次方向选择。我给三个选项你按兴趣挑一个想做偏前端的去啃MLIR学dialect的编写方法自己定义一个简单的方言写一个pass做转换。MLIR是业界共识的下一代编译器基础设施掌握它对你未来的职业安全感帮助很大。想做偏后端的专注TVM的codegen部分或者围观XLA的LLVM后端理解一个调度怎么被翻译成LLVM IR再生成机器码。想做算子优化的选定一个算子卷积就行尝试在不同GPU上调优从naive实现开始逐步优化记录每步的耗时变化。这类经验在简历上极有说服力。走到这个阶段你已经有能力看论文了。推荐从Gemmini、Ansor、Roller、Welder这几篇入手都是跟AI编译器强相关且相对好读的。4. 简历上写什么项目不是越多越好要能体现系统思维双非背景做AI编译器方向简历是你的主战场。但我在筛选简历时见过太多毛病堆了一堆“跟风项目”——课程设计、爬虫、Web开发全是跟编译器无关的东西或者写“熟悉TVM、MLIR”但一问细节就露馅。写项目经历的时候记住一个原则一个能体现你“造轮子”能力的项目胜过十个调包项目。面试官看你的简历本质是在找一个证据证明你有能力理解一个复杂系统的内部机制并且有能力修改它。4.1 推荐的项目档位设计我建议按“两档三选一”的策略来设计你的项目组合档位一复刻一个经典工具的核心功能。比如自己实现一个简单的计算图优化库支持常量折叠、死节点消除、算子融合。不一定写到生产级别但要把架构设计出来把pass的注册机制、IR的数据结构、pass之间的依赖关系理清楚。这个项目的意义在于证明你懂编译器的设计模式。档位二给现有开源项目做深度贡献。比如给TVM提交一个针对某个算子的优化策略或者给MLIR的某个dialect补全转换lowering。这个项目最直接能证明你有能力参与真实工程的协作。档位三选一个具体性能问题做深入优化。比如选一个模型在某个推理引擎上跑一遍定位性能瓶颈针对性地做优化详细记录从profiling到优化到验证的完整链路。这个项目证明你有性能Sense这在编译器方向特别重要。三个档位可以组合但切忌贪多。一个项目做深做透能讲清楚设计思路、踩过的坑、最终的收益比三个浮于表面的项目都管用。4.2 项目描述怎么写才不像“背模板”项目描述里的技术措辞很关键我建议避开那些已经被写烂的表述比如“通过xxx实现了xxx”、“提升了xxx的性能”。换成更具体的描述方式例如不说“熟悉TVM”说“基于TVM的Ansor框架针对卷积算子定制了代价模型端侧推理速度提升了23%详细调优过程记录在博客中”。不说“了解MLIR”说“用MLIR定义一个支持矩阵乘法运算的dialect并手写了一个pass将其lowering到LLVM IR”。不说“做了个编译器”说“仿照Kaleidoscope实现了一门玩具语言的前端和LLVM IR生成器支持变量、函数和基础控制流可作为学习LLVM的示例项目”。看出区别了吗有量化、有技术细节、有可验证的产出。面试官看到这种描述才知道你做了实事。5. 找工作阶段的具体打法补课、选渠道、稳住心理预期学习路线再清晰最终要落到“拿到面试机会”和“通过面试”这两个目标上。这个阶段有几个容易踩的坑我单独拎出来说。5.1 从“海投”到“精准投”的渠道选择双非背景走常规校招渠道简历大概率被卡在HR初筛这是现实。我的建议是绕过机器筛选直接触达技术面试官GitHub活跃度是最好的简历在TVM、MLIR、XLA这些项目上留下你的commit记录哪怕是文档修改和测试用例社区维护者能看到你。很多编译器团队的leader会定期关注这些核心仓库的贡献者列表挖人。垂直社区的曝光在知乎写AI编译器相关的技术文章在技术群里回答别人关于TVM的问题参加线下meetup的时候主动找到该方向的技术负责人聊几句。这类曝光不太可能直接带来offer但会让你的名字在圈子里慢慢有辨识度。实习是双非最有效的破局牌大厂AI编译器团队不好进可以先找正在做AI芯片的创业公司他们的编译器团队经常缺人对学历要求也灵活。只要实习期间能产出东西转正或者拿内推不是问题。5.2 面试会问什么提前做演练AI编译器方向的面试核心考察点集中在三块基础题C的虚函数和内存布局、缓存一致性协议、GPU的线程调度模型。这些题挂的人最多因为大家都去刷工程框架反而把基础丢了。项目深挖把自己简历里的项目吃透能够从设计目标、技术选型、遇到的最大挑战、如何验证效果这几个维度讲清楚。面试官最烦的是一问“你这个优化为什么提了这么多”就支支吾吾的候选人。现场推演比如给你一个算子在GPU上跑得慢你会怎么排查和优化。这类问题没有标准答案考察的是你的性能分析思路和解决问题的框架。我认识不止一位双非背景的朋友项目经历够硬面试聊得也很好最后顺利拿到了某大厂AI基础设施团队的offer。他们有个共同点对项目里的每一个细节都烂熟于心能扛得住追问甚至能反向跟面试官讨论技术方案。这种自信不是装的是真正把项目从原理到实现吃透了才有的底气。5.3 心态上的几点提醒说句掏心窝的话双非背景走AI编译器这条路前期的孤独感和挫败感不可避免。你身边大概率没有人能跟你讨论LLVM的pass机制你搜资料的时候很多概念一开始看不懂甚至会有那么几个瞬间怀疑“我是不是在浪费时间”。我的建议是把“怀疑”转化成“验证”。每学完一个阶段就做一个小项目、写一篇技术笔记。技术笔记不必写给谁看它是你自己的知识沉淀也是未来的面试素材。用看得见摸得着的产出对抗焦虑比给自己灌鸡汤有用得多。还有一点别过度纠结“双非会不会被卡死”这个问题本身。你控制不了HR怎么筛简历但你能控制自己代码写得多好、项目做得多深。等你的能力配得上更高级别的事情学历的权重会自然下降——这是行业规律不是安慰话。AI编译器的门确实比一般方向窄但窄门有窄门的好处走进去的人少分蛋糕的人也少你只要能走进去就能占住一个位置。学习路径和求职策略都已经摆在这里剩下的就是执行的问题了。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑