
最近朋友圈还流传着一张调侃大模型算法开发的图片,称拥有“优先择偶权”的机会,真假难辨,大家自行感受。其实,算子开发岗位与常规算法岗位有相似之处,但并非纯粹的算法工作,还需要与底层硬件、芯片打交道,需要对芯片的底层架构有较深的理解,才能把算法高效地部署到芯片上,实现推理的低延时和高性能。
早些年,关于算法工程师的传奇故事就流传开来:毕业后去大厂做算法,起步薪资往往不低,但在行业多年的人会觉得与经验和能力不匹配的薪资差距越来越明显。如今市场趋于理性,但不可否认,算法相关岗位依然受追捧,其中有一个独特的存在——AI算子开发工程师。
AI算子开发到底是做什么的?
算子,英文叫Operator,简称OP,指神经网络中执行特定计算的算法节点。以卷积为例,卷积在CNN网络中就是一个典型的卷积算子。放到更大范围,一个完整的CNN网络也可以被视作由若干算子组成的“大算子族”。
算子开发的岗位多数集中在需要对底层芯片进行适配与优化的公司,或者那些需要对神经网络进行性能优化的企业。到底要做什么?任何使用深度学习框架搭网络的人都知道,神经网络是由一层层算子组成的;在框架内部,用户通常是在用高层接口“搭积木”,调用算子接口来实现网络前向传播。比如在某些框架中,只要写上一行代码,就能完成卷积运算的调用,看起来很简单。
然而你并看不到卷积算法的具体实现细节。你所看到的只是输入数据经过某个接口产生输出的过程。真正需要落地实现的是把卷积这个运算在底层实现出来。如果在通用的CPU架构(例如x86)上实现,往往需要通过嵌套循环等方式完成,因为没有为卷积专门设计的指令集。另一方面,一些AI专用芯片会为卷积设计专用硬件或指令,可能用一条指令就能完成大量数据的乘累加运算,而不需要像前述代码那样写成多层循环。
实现只是第一步,更重要的是优化。要结合硬件架构的特性,对算子进行高性能优化,以实现更低的延迟和更高的吞吐量。
算子开发需要哪些技能?
- 对算法本身有深入理解,甚至是扎实掌握到“胸有成竹”的程度。因为算子开发并不是在框架侧简单调一个接口,而是要把核心算法在底层落地实现mile米乐。
- 对AI芯片的体系结构有清晰认识。要知道芯片上有哪些硬件模块可以实现该算法、各模块之间的依赖关系、如何进行并行、如何同步以及如何优化以提升性能。
- 扎实的编程能力,通常包括C++和Python等主流语言,以便实现高效的底层代码和便捷的开发流程。
从公开的职位描述可以看到,算子岗位对经验的要求相对明确,薪资水平通常与纯算法岗位相近,但对算法的综合要求更高,因为还要涉及硬件、甚至编译器相关的知识。如今纯算法岗位竞争激烈,如果你具备算法能力、硬件知识与编程能力的综合能力,算子开发是一个值得考虑的方向。
总之,算子开发并非单纯写代码调用算子接口,而是要把算法落地到硬件上,充分利用硬件特性实现高性能和低延迟的推理。如果你具备跨领域的能力组合,未来在这一领域或许能获得更具竞争力的发展机会。谁又不想拥有“优先择偶权”的职业呢?