什么是AI算子开发 |
您所在的位置:网站首页 › 模型开发是做什么的 › 什么是AI算子开发 |
今天在某离职群里看到前同事聊天,说到国内某大厂的一个面试,本来求职面试的岗位是通信库,类似于英伟达的 nccl, 但是却被问到了很多与算子开发相关的问题。 看来算子开发岗位依然很稀缺。 联想到之前写过的一篇关于AI算子开发的文章,那时是一个做大模型的公司需要AI算子开发:有前途!大模型也需要AI算子开发岗。 不少小伙伴看了这篇文章之后,对算子开发这个岗位有了了解,也十分感兴趣。 刚好今天朋友圈不少人都发了一个图片,调侃大模型的算法开发,拥有优先择偶权。 图片不知真假,大家感受下。 其实算子开发岗位,与算法岗位有相似之处,但又不是纯算法,还需要和硬件、芯片打交道。 需要对底层芯片很了解,才能把算法更好的部署在芯片上,实现推理的低延时高性能。 1、纯算法的传奇工资很早之前网上就流传着一些算法工程师的传奇:毕业去大厂做算法,白菜价30-40w起步! 这让工作了很多年的老工程师们都愤愤不平,纷纷大呼薪资被倒挂。 虽然这几年市场冷静了一些,但不可否认的是,搞算法依然是香饽饽,而与算法相关的岗位中,有一个独特的存在,那就是AI 算子开发工程师。 2、AI 算子开发是做什么的? 算子,英文名为 Operator,简称 OP。指的是神经网络中完成特定功能的一些算法节点。比如在CNN网络中,一个卷积节点就属于一个卷积算子。 往大了讲,甚至一个CNN网络也可以称作一个大算子,只不过这个大算子比较复杂。 AI算子开发的岗位主要集中在与底层芯片相关的公司的招聘需求中,或者需要对神经网络有优化需求的公司招聘需求中。 但是问题来了,现在哪个做AI的,稍微有点技术原创型的公司,无论用GPU,还是ASIC,不需要对神经网络做优化呢? 所以,需求很多。那这个职位具体是做什么的呢? 做过深度学习或者使用框架搭过神经网络的同学都知道,一个神经网络就是由一层层的算子构成的。 但在使用框架搭网络的过程,基本上是搭积木似的调用算子接口。 比如在 tensorflow 中调用一个卷积,一行代码就可以搞定: tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, data_format=None, name=None)看似很简单,但在这个过程中,你根本看不到这个卷积算法是如何实现的。 你唯一知道的是,给定了一个输入,这一行代码做了卷积运算。 而卷积运算的实际执行过程,恰恰就是算子开发工程师需要做的事:把卷积的运算,在更底层实现出来。 如果在x86的架构下实现,可能就是直接用循环嵌套的方式来实现了,比如: #include #define N 4 // 输入数组大小#define K 3 // 卷积核大小void conv2d(float input[N][N], float kernel[K][K], float output[N-K+1][N-K+1]) { int i, j, m, n; float sum; // 遍历输出数组 for (i = 0; i |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |