
这两年但凡做AI落地的团队几乎都绕不开芯片选型这件事而聊着聊着必然会蹦出一个词ASIC。我第一次认真研究它是在帮一个做图像识别的团队优化线上推理成本时。训练阶段大家很习惯用GPU但等到服务上线、流量起来才发现每一路推理的电费和服务器成本高得吓人。后来把具体的模型、负载、量化方式摆到桌面上评估才慢慢看清ASIC这个方案的适用边界。这篇文章我想同时从芯片设计逻辑和AI工程落地两个角度来讲ASIC到底是什么为什么它能用来跑AI以及你决定要不要用它之前需要先想清楚哪几件事。1. 先别急着背定义ASIC是一块“只肯干一件事”的芯片ASIC的全称是Application-Specific Integrated Circuit直译就是专用集成电路。字面意思非常直白它不是为“什么都能算”设计的而是为“某一种特定任务”专门定制的电路。很多介绍喜欢把ASIC和CPU、GPU放在一起对比但更准确的类比是——CPU像一间多功能厅开会、吃饭、办展览都能凑合ASIC则是专门建的一条加工流水线入口进去是原材料出口出来是成品中间每一步都是固定工序想改产线很麻烦但一旦跑起来吞吐量极高、废料极少。这个直觉比“专用”两个字重要得多因为后面所有关于芯片选型的分析都建立在“固定流程能带来极致效率”这一点上。1.1 专用不仅是口号更是在硬件上做的“减法艺术”通用芯片要考虑成千上万种应用所以它的指令集、缓存策略、调度逻辑都设计得非常平均。ASIC的做法恰恰相反设计者手里通常已经拿着一张明确的任务清单输入数据什么格式、跑什么算法、要多少并行度、允许多低的精度。把这些参数全部固定之后芯片里的乘法器、加法器、存储单元、数据通路都能按需定制。举个例子通用处理器里一个浮点乘法器要支持FP64、FP32、FP16等多种精度电路面积和功耗自然被拉高。而一颗只跑AI推理的ASIC可能只需要INT8和FP16的乘累加单元于是设计者可以把省下来的晶体管面积全部堆成更多的计算单元或者换成更大的片上缓存。同一道卷积计算在GPU上要经过取指、译码、调度、执行这一长串流程在ASIC里可能就是一个硬件单元直接算完输出结果。省掉的每一环最后都会体现在两个地方更低的功耗更高的能效比。这是“专用”最核心的诱惑力。1.2 其实你早就用过ASIC只是没把它当回事很多人觉得ASIC是这两年AI热炒出来的新概念其实它早就藏在你我身边的电子设备里了。手机里的蓝牙芯片、WiFi基带、音视频编解码器、拍照时的图像信号处理单元基本都是ASIC游戏机里负责画面渲染的定制芯片本质上也是ASIC甚至家用路由器里负责数据包转发的交换芯片同样是ASIC。早年数字货币挖矿潮把ASIC推向过大众视野专业矿机就是典型的“算法固化”设备把特定哈希算法的运算能力压榨到极致。这些例子都说明ASIC本身是一套非常成熟的硬件方法论只是这波AI需求又把它推回了舞台中央。1.3 “不灵活”到底是缺点还是优点取决于你看哪个指标ASIC最常被诟病的是灵活性差算法一变硬件可能就过时了。这句话只说对了一半。从另一个角度看这种“不灵活”恰恰是它的护城河。因为所有资源都投给了确定的目标片内不会有过多闲置模块和冗余逻辑时钟、电源、热设计都能压到最紧。一颗专为推理设计的ASIC峰值算力可能不会比高端GPU高多少但在实际运行固定网络时单位功耗能拿到的有效算力常常是GPU的好几倍。这种“为特定负载优化出来的确定性收益”正是后续所有选型决策的出发点。所以讨论ASIC时一定要先明确负载是否固定否则一切对比都失去意义。2. AI计算的“脾气”恰好长在ASIC擅长的方向上要回答“为什么能用ASIC跑AI”绕不开一个更底层的问题AI计算到底长什么样如果它是像操作系统调度那样分支繁多的任务ASIC几乎毫无用武之地。可现实恰恰相反深度学习的主流派别是一堆结构高度规整、重复度极高的数学运算这跟“专用芯片”擅长的东西几乎严丝合缝。2.1 主流模型的核心操作就那几板斧无论是卷积神经网络里的卷积运算还是Transformer里的矩阵乘法拆到最底层本质都是大量的乘累加操作。卷积是一堆小窗口内的加权求和矩阵乘法是点乘的规模化展开激活函数和归一化则是逐元素处理。这些运算的共同点是数据排布有规律代码路径短并行度极高。GPU依靠几千个并行核心把这类任务跑快ASIC则用更直接的办法——在硅片上摆满专门的乘累加单元让数据按固定的节奏流进去算完再流出来。这种“规整”至关重要因为ASIC的一切优化都建立在“我能预测计算模式”的前提上。预测得了计算模式数据通路能定制存储布局能安排流水线能级联。反过来如果任务一会儿矩阵乘、一会儿又频繁跳转执行复杂控制逻辑ASIC的优势就会大打折扣。所以与其说是“ASIC适合AI”不如说是“当前主流AI的计算结构足够规整让专用芯片有了发挥空间”。2.2 AI对精度足够宽容这是ASIC的另一张底牌传统CPU计算要求很高的数值精度和可移植性运算结果必须精确到可以“背书”的程度。但神经网络训练和推理早就证明把权重和激活值用FP16甚至INT8来存模型效果损失通常很小。这给了ASIC一个巨大的设计自由度芯片厂商可以根据量化需求把计算单元的位宽定制到刚刚好省下来的晶体管面积要么堆更多算力要么把功耗压得更低。通用处理器很难做这件事因为它们必须为各种高精度场景保留完整的数据通路。ASIC可以把整个网络量化到INT8之后在固定管道里全力奔跑误差可控、性能拉满。哪怕某个敏感层必须保留FP16或FP32精度设计者也可以在片上安排一小块专用高精度区域实现混合精度的硬件支持。这种“按精度需求做硬切分”的能力在通用芯片的架构里几乎是不可想象的灵活但却是ASIC设计里的常规操作。2.3 真正的瓶颈往往不在算力而在数据搬运我见过不少第一次接触AI芯片的人以为ASIC强在“算得快”。其实现在很多场景下理论算力并不稀缺真正卡脖子的是数据搬运模型权重和中间特征图要从内存搬进计算单元如果带宽不够再多的乘法器也只能空转。ASIC的价值恰恰体现在这里设计者可以定制片上存储结构安排数据复用策略让同一个权重被多个计算单元反复使用把对片外内存的访问次数压到最低。这种“以数据流为中心”的定制通用处理器很难照做。通用架构往往更关注缓存一致性、虚拟内存、多种数据类型兼容而这些通用机制本身就在消耗带宽和功耗。专用芯片则可以把注意力集中在“数据怎么搬更省”这一件事上权重放哪一层SRAM特征图怎么切分每个计算周期从哪个bank读数据全都可以精确编排。多个优化叠加起来片外访问次数能下降到原来的几十分之一这也就解释了为什么AI ASIC的能效比能大幅领先。2.4 训练和推理必须分开看ASIC主攻的是推理这半边严格地讲ASIC在AI领域的主战场是推理而不是训练。训练过程需要不断调整模型结构、尝试不同损失函数、计算梯度并更新参数算法变化非常频繁对可编程性和动态精度的要求都更高通用GPU生态依旧占据绝对主导。推理则完全不同模型结构和权重大体确定只剩前向计算计算模式极度固定一旦把模型冻结、量化、编译成芯片能高效执行的指令序列ASIC就能把这套固定流程打磨到极致。这也是为什么很多大规模在线服务训练阶段统一用GPU推理阶段却大量换用ASIC或专用加速卡。想用ASIC直接替换GPU去做前沿算法研究大概率会发现大部分精力都耗在算子适配和重新验证上得不偿失。3. CPU、GPU、FPGA、ASIC摆在面前为什么最终会选ASIC光说“专用芯片适合AI”还不够AI硬件赛道上还站着CPU、GPU、FPGA这几个竞争对手。把四类方案摆在一起对比才能真正理解“为什么ASIC能用来跑AI以及在什么场景下该轮到它登场”。3.1 四种芯片的定位一句话加一张表CPU是通用性最强、可编程性最灵活的“全能选手”适合逻辑复杂、分支繁多的任务。GPU是大规模并行通用算力池适合并行度高但算法仍可能变化的负载。FPGA是“可以反复改写的硬件”能在指令执行与硬连线逻辑之间自由游走。ASIC则是“算法最终固化在硅片上的方案”只适合确定性足够高、规模足够大的负载。四者没有绝对优劣只有取舍。下面这张表是我在实际选型时常用的对照口径维度CPUGPUFPGAASIC可编程性最强强中等最弱硬件开发周期无需无需数周至数月一年半到三年单位算力成本高中中高规模越大越低灵活性极高高中高低典型场景系统控制、小并发推理AI训练、通用并行计算原型验证、小批量定制大规模固定负载推理这张表的关键变量是“规模”和“确定性”。规模不够一次性的研发与流片成本摊不下来确定性不够算法频繁改动会让定制芯片加速贬值。这两点不满足ASIC都不应该成为首选。3.2 GPU为什么至今稳坐训练这把交椅很多人拿ASIC和GPU对比时只比性能指标却忽略了生态与灵活度。GPU背后有成熟的深度学习框架支持从模型定义到分布式训练的链路几乎全部打通新算子很快就能获得支持训练代码基本不用改。训练过程中模型结构天天变GPU可以随时换网络结构、调精度、跑多机多卡这在ASIC上是难以想象的。还有一点容易被低估训练需要高精度的梯度回传和动态计算图对数值范围的要求比推理苛刻得多。GPU的设计早就照顾到了这种复杂负载它的内存层次、调度单元、编译器工具链都为此优化过。所以当前行业的主流组合几乎都是“训练用GPU规模化推理再看业务量决定是否ASIC化”。想用ASIC完全替代GPU去搞前沿探索大概率会把大量时间耗在算子适配和重新验证上。3.3 FPGA是ASIC的“排练舞台”FPGA在AI硬件里经常被作为替代方案讨论但我更愿意把它看成ASIC的排练场。FPGA内部有大量可配置逻辑块和可编程连线通过硬件描述语言可以把某个计算结构烧录进去不需要等待漫长的流片周期。做ASIC之前工程师几乎都会先在FPGA上完成功能验证、性能评估和问题排查小批量、多品种的AI加速需求FPGA也往往比ASIC划算因为改版成本低很多。但FPGA的代价同样明显可编程性占用大量晶体管单位逻辑密度和能效比始终赶不上固化设计的ASIC。同一个神经网络FPGA实现相比定制芯片经常要多消耗数倍功耗、占据更多板卡面积。所以FPGA最适合的是“还没定稿”的阶段。一旦负载完全固定、出货量上升到足够规模性价比的天平就会从FPGA倒向ASIC。3.4 规模效应是ASIC最后胜出的临门一脚ASIC的研发投入非常大涉及架构设计、验证、流片、测试等多个环节动辄数千万甚至数亿元级别的成本。这笔账如果摊在几十颗芯片上谁都会摇头。但如果是每年数十万颗的量产规模设备7×24小时持续运行情况立刻反转单颗芯片省下的几十瓦功耗、每个机柜省下的几路电、每台服务器省下的几块加速卡都会滚成长期的成本优势。AI ASIC能在最近几年频繁出现本质上是整个行业的“负载定型”了、规模够大了定制化从研发风险变成了成本优势。所以谈到ASIC时我习惯先问一句你这个业务能稳定跑三年以上规模撑得起定制化投入吗如果答案不确定那GPU或FPGA可能才是更稳妥的答案。4. 一笔可以复盘的账ASIC跑AI到底划算不划算我在和团队讨论要不要引入ASIC方案时最常被问的问题是“它比GPU快多少”这是一个很自然的提问但也是一个需要纠正的提问。只看峰值速度容易得出错误结论真正应该算的是在特定负载下满足同样的延迟和并发要求连续跑上半年、一年把硬件采购、机房功耗、散热水冷、运维人力全部折进去哪条路线总成本更低。4.1 一个可以复盘的对比思路推理功耗先降下来我处理过一个模拟评估场景是图像分类模型在线上做推理输入图片分辨率固定模型量化到INT8。在相同并发量下GPU方案和ASIC板卡方案的每路推理能耗差距非常明显后者通常能低一个数量级左右。具体数字会受芯片代际、软件优化程度影响但方向是稳定的固定负载下专用芯片的能效比显著占优。这个优势落到运营层面就是同样满足几千路并发GPU方案可能要多占几个机柜、多耗几十千瓦功率而ASIC方案能压缩到更少的节点。短期看电费差距不大放到365天不间断跑差距就很可观了。4.2 算TCO时最容易被漏算的是散热和容量规划采购成本只是冰山一角。GPU整机发热大数据中心机柜的制冷容量、UPS容量、功率配额都要跟着变而ASIC板卡通常功耗低同样的机房能塞进更多算力也更容易利用液冷或高密度部署方案。另一个隐藏项是“容量规划”ASIC的高能效让单机可以承担更多并发省下来的机位可以留给业务扩容。见过有团队只看采购报价觉得ASIC板卡单价不便宜却忽略了两个月后的电费账单以及为了GPU专门扩容机房的多余支出。所以做选型预算时要把三年TCO作为主表采购价格只是其中一行。4.3 但在某些场景下ASIC的“便宜”是假象也有一部分团队引入ASIC后反而踩坑。常见情形是业务模型还在快速迭代今天换主干网络明天改损失函数后天又调整输入尺寸。每一次大改都可能意味着重新量化、重新编译甚至要等芯片厂商更新算子库。如果模型创新频率很高、算力规模又不够大那么花在适配和回归验证上的工程师工时很快会超过省下的电费。理性的做法是先用GPU或云端弹性算力把算法快速验证、打磨稳定再评估是否值得把推理链路迁移到ASIC。迁移是工程不是换插头。4.4 软件生态的隐性成本比硬件本身更值得关注硬件再强软件落不了地也是白搭。ASIC要发挥性能依赖一整套工具链模型解析、图优化、算子映射、量化校准、内存分配策略缺一环都可能导致性能不及预期。我见过某款芯片理论峰值很漂亮但跑实际模型时大量算子回退到通用实现性能直接折掉一大半。所以引入ASIC之前至少要让厂商提供三样东西目标模型的性能评估报告、完整算子支持清单、量化落地示例。最好让工程师拿自己的代表性模型在参考板上跑一遍实测别只看PPT要看延迟曲线、功耗曲线和精度对比。这一步花的时间往往能帮你省下后面几个月的返工成本。5. 把一个AI模型“弄”上ASIC四步工序和三个翻车点如果看完前面的分析还是决定在业务里试试ASIC那么接下来的问题是模型怎么从深度学习框架搬到芯片上。这个过程没有想象中那么神秘核心是四步导出、优化、量化、编译。听起来简单但每一步都有容易忽视的细节。5.1 四步工序导出、图优化、量化、编译第一步模型导出。从训练框架里把已经训练好的模型导出成中间表示丢掉训练阶段的动态图逻辑保留一份干净的静态计算图。第二步图优化。把能合并的算子合并起来比如把卷积和后面的激活函数融合成一个算子减少中间结果的内存读写这一步的优化空间非常大同一个模型在优化前后的性能差距可能很大。第三步量化。把权重和激活从浮点数转换成低位整数或低比特浮点这是ASIC能发挥实力的关键也是精度风险最集中的环节。第四步编译。工具链把优化后的计算图映射到芯片上的物理计算单元安排内存搬移、数据复用和指令发射顺序。四个步骤环环相扣任何一个环节处理不好最终性能都会受影响。5.2 动手前先做三件事第一做算法可行性评估。拿业务里最具代表性的模型让芯片厂商给出预期的性能、功耗和精度指标确保提升幅度值得迁移成本。第二检查硬件兼容性。确认输入尺寸、动态形状、批处理大小是不是芯片支持的范围很多ASIC对动态shape支持不友好输入尺寸一变就得重新编译。第三先做小流量灰度。把一小部分线上推理流量切到ASIC版本对比延迟、精度、报错率确认无问题再逐步放大流量。这三件事缺一不可。跳过其中任何一步你都有可能把整个团队拖进“模型上不了线”的泥潭。5.3 实操里最容易翻车的地方我整理几个自己遇到过的坑。一是算子不支持模型里的某些小众算子工具链可能根本没有适配官方支持列表里找不到解决办法通常是改造模型结构用等价算子替换但这会影响精度需要仔细验证。二是量化掉精度看起来整网INT8精度损失不大但某个敏感层一旦量化端到端效果立刻崩盘需要做分层灵敏度分析对敏感层单独保留高精度。三是动态shapeASIC编译器通常喜欢静态、固定维度的负载请求输入忽大忽小时性能会剧烈波动常见做法是把输入统一缩放或填充到固定尺寸。每一个坑都可能耗掉一两周时间所以提前准备一份模型优化清单按清单逐项排查会比凭感觉调参高效得多。6. 最后说点个人体会做了几年AI工程落地我自己对ASIC的认知经历过一个从陌生到敬畏再到平常心的过程。陌生是因为以前总觉得芯片就该是CPU、GPU不理解“专用电路”的价值敬畏是在看到固定负载下能效比差距时意识到硬件定制的力量平常心则是在踩过算子适配、量化精度、工具链成熟度的坑之后明白ASIC并非全能答案。我的建议很简单不要因为“AIASIC”听起来很先进就冲动上马也不要因为迁移工程复杂就永远回避。先把业务模型做稳定把算力账单算清楚再考虑把合适的负载交给合适的芯片。对大多数人来说用ASIC不是换一块芯片那么简单而是换一种成本结构。如果你正好也处在“GPU推理成本压不住”的节点上不妨把这份复盘当作一个起点认真看看ASIC方案的真实数据尤其是拿自己的模型跑一遍而不是只看厂商的白皮书。