兄弟们,你仔细想想——你每天刷Facebook刷Instagram,刷出来的推荐内容背后是什么?
就是深度学习推荐模型(DLRM),这玩意儿是Meta整个公司的流量入口、广告收入基石。
以前这家伙一直用CPUGPU凑活用,现在人家直接自己下场造芯片了,名字叫MTIA,全称Meta Recommendations Inference Accelerator。
MTIA自研芯片的效果怎么样?今天咱就聊聊这事。
MTIA芯片整体架构图
推荐推理这活儿,为什么非得自己造芯片?
你得先搞明白一个事——推荐推理这个场景,它真不是GPU长项。
Meta自己的数据说话,这些年推荐模型越来越复杂,不管是计算量还是内存需求都在爆炸式增长。
CPU效率太低,跑起来成本扛不住。GPU虽然算力强带宽大,但它天生是为训练设计的,不是给推理优化的,就算你堆了各种软件优化,效率还是上不去。
之前用过Intel NNPI,扛不住模型增长,很快就不够用了。
需求摆在那,没人能满足,那只能自己干。
这就是Meta做MTIA的初衷——专为推荐推理生,别的我不干,就把这一件事干到极致。
架构真挺有意思:网格PE阵列,每个PE两颗RISC-V
我给兄弟们拆解一下这个架构。
整体是处理单元(PE)组成的二维网格,每个PE通过片上网络连接,旁边分布着片上内存和DDR/LPDDR5内存控制器。
每个PE里面有意思了——两颗RISC-V处理器核心 + 五个固定功能硬件单元。
我一个个给你说:
第一个是内存布局单元(MLU),专门干数据搬移和布局转换,转置、拼接这些活,硬件直接搞定,不用软件折腾。
第二个是点积引擎(DPE),这才是计算核心,每个周期能算1024次INT8乘法,或者512次BF16/FP16乘法,矩阵乘一次32个周期就搞定,完全流水线化,吞吐量拉满。
第三个是归约引擎(RE),专门存矩阵乘的结果,累加到一起,还支持跨PE归约,这个设计挺巧的。
第四个是SIMD引擎(SE),量化反量化、激活函数这些非线性计算都在这干,还有查表支持,比软件算快多了。
最后是总线接口单元(FI),相当于PE的网关,负责和片上网络、内存打交道。
两颗RISC-V核心干什么?发命令、调度,一颗标量一颗矢量,矢量核处理那些不适合走硬件加速的不规则计算,够灵活。
这么设计说白了——该软件干的软件干,该硬件加速的硬件死命加速,既保证效率又不失可编程性。
PE内部结构框图
实测结果真不错:GEMM能效比是GPU两倍
论文放了实测数据,我给兄弟们划重点:
整体平均下来,不同DLRM模型能效比达到GPU的0.9倍,已经很不错了,毕竟这是第一代。
而GEMM(矩阵乘)这种核心算子,MTIA能跑到GPU的两倍能效比,这就是专门定制的优势。
某些特殊场景,CPU跑一天,MTIA半天干完,电费还只用一半,这个账太好算了。
Meta这么大的数据中心,一年电费好几亿,能效比提一倍,直接就是几个亿美金省下来,这生意怎么算都划算。
最有意思的是这几个教训,都是真金白银砸出来的
文章最后讲了开发过程中学到的几个教训,我觉得对所有做自研芯片的都有参考意义:
第一,可编程性真的很重要。推荐模型一直在变,你芯片设计死了,模型一变就废了,必须留够软件可编程的空间。MTIA用RISC-V+固定加速这种混合架构,就是这个道理。
第二,工具链得跟上。再好的硬件,软件开发者用不了就是砖头。Meta花了大力气做PyTorch集成,整个流程和GPU兼容,工程师不用重新学一遍,这点太重要了。
第三,内存系统是瓶颈。推荐模型大 embedding 表对内存带宽和延迟要求很高,这个地方设计不好,计算能力再强也喂不饱。
总结:互联网巨头自研芯片,这已经是明牌了
谷歌有TPU,AWS有Trainium/Inferentia,现在Meta有MTIA。
趋势很明显了——大互联网公司都在走推理定制加速芯片这条路。
因为我的核心负载就那几种,我专门给它定制一颗芯片,能效比上去,成本下来,省的钱远超过芯片研发费用,怎么算都划算。
MTIA这颗第一代芯片,能做到接近GPU的平均能效,核心算子两倍,已经交了一份不错的答卷。
未来推荐模型越来越大,这块的蛋糕只会越来越大。
互联网巨头们自己下场造芯片,这波浪潮才刚刚开始。
157
