首页/新闻资讯/正文详情

AI芯片调研与选型实战指南:从GPU/NPU到算力指标与避坑复盘

发布时间:2026/9/25 1:11:29 来源:云帆数科 栏目:资讯中心
AI芯片调研与选型实战指南:从GPU/NPU到算力指标与避坑复盘
在帮团队做算力选型之前我对AI芯片的认知一度停留在“AI芯片就是GPU、GPU就是那一家”的层面。等到真正动手做调研才发现这个领域远远不是一张显卡能概括的——从云端训练卡到端侧NPU从FPGA到存算一体每一种路线都有自己的适用边界。这篇文章是我从实际调研笔记里整理出来的完整复盘包含指标口径、技术路线、市场格局、调研方法论和踩坑记录。如果你正准备写一份AI芯片调研报告或者要在具体业务里挑选算力硬件可以直接参考这里面的框架和表格至少能帮你省掉一半的弯路。1. 调研前的认知纠偏AI芯片远不止“GPU”一种答案1.1 “AI芯片”这个词被过度简化了在不少人的印象里AI芯片就是英伟达的GPU。这个判断在“跑深度学习训练”这一场景下基本成立可一旦把视角打开到整个AI落地链条问题就变得复杂不少。我在调研时先做了一件事把“AI芯片”这个词拆分成了几个不同的角色。按计算场景分有云端训练芯片、云端推理芯片、边缘推理芯片、终端设备内置的推理芯片按实现方式分又有GPU、FPGA、ASIC专用集成电路、类脑芯片、存算一体芯片等。它们虽然都被叫“AI芯片”但设计目标、计算精度、功耗等级、软件生态完全不同混为一谈是调研最大的坑。这里面有一个比较本质的逻辑AI芯片绝大多数时候做的不是“通用计算”而是某种特定形式的矩阵运算。图像分类、目标检测、大模型推理、语音识别这些任务大量依赖矩阵乘法和卷积运算因此芯片设计者会围绕这类运算做专门优化。但优化又分激进和保守激进的做法是牺牲通用性换取极致效率也就是ASIC保守的做法是保留灵活度但牺牲效率也就是GPU。如果调研报告一开始就把范围框定成“GPU对比”后面无论写出多少页视野都是窄的。1.2 先分清训练和推理再谈其他第二个需要提前想清楚的维度是训练和推理的差异。我见过不少调研报告一上来就罗列各家芯片的FP16算力结果最后要解决的问题是线上推理指标口径完全错位。训练阶段关心的是“能不能把模型跑起来”“收敛快不快”所以看重高精度浮点算力、芯片之间的互联带宽、显存容量。举个例子大模型训练常常需要把大量参数切分到多张卡上这时卡和卡之间的通信速度往往会成为瓶颈单卡算力再高也没用。推理阶段则完全不同。线上推理讲究的是单次请求的延迟、单位时间能处理多少请求、每处理一条样本的功耗花销。推理任务经过量化之后通常用INT8精度计算不需要像训练那样保留完整的FP32数据所以真正管用的指标是INT8算力和能效比而不是FP16峰值。很多厂商喜欢在发布会上宣传“整卡FP16算力接近某某水平”这个数据放到推理选型里意义不大。真正该算的是同样一批并发请求需要多少颗芯片单颗芯片能扛多少路整机功耗多少三年电费是多少。1.3 云端、边缘与终端场景决定架构还有一个容易混淆的点是不同物理位置的设备对芯片的要求完全不同。云端芯片部署在数据中心不愁供电和散热可以堆高功耗高性能器件追求的是极致吞吐和通用性成本和功耗被放到后置位。边缘设备如工控机、智慧路侧设备、机器人控制器处在云和端之间对功耗、体积、环境温度都有限制通常要求十瓦到几十瓦级别的功耗还要保证实时性。比如一辆自动驾驶车辆上的计算单元如果端到端延迟超过几百毫秒安全逻辑可能就来不及响应。终端设备就更苛刻了。手机里的NPU、智能摄像头里的ISPNPU、耳机里的低功耗语音唤醒芯片功耗往往被压在几瓦甚至毫瓦级别绝大多数情况下做的是非常固定的任务比如人脸检测、关键词唤醒、人体姿态估计。这类芯片几乎都是按专用ASIC设计的越专用能效越好。调研的时候如果没想清楚“芯片装在哪里、跑什么任务、功耗上限多少”后面做参数对比就很容易变成数字游戏。认清场景本质上比纠结峰值算力更重要。2. 主流技术路线拆解GPU、FPGA、专用NPU和存算一体的边界2.1 技术路线的第一性差异把技术路线放到“通用性”和“能效比”这个坐标系里看会清楚很多。通用性最强的是GPU它天生就是为大规模并行计算准备的。深度学习流行之前GPU已经在图形渲染里把“成千上万个计算核心同时工作”这条路线跑通了而矩阵运算恰好也是同样的大规模并行形态等于直接踩在了最合适的硬件之上。再加上CUDA软件栈把编程门槛降了下来研究人员写代码、调优、部署都有一整套成熟工具生态厚度短时间内很难被追赶。FPGA的定位是“现场可编程”它是一片可以通过硬件描述语言改写的逻辑电路。它不像GPU那样有固定架构而是能够真正做到按需定制数据通路比如针对某个具体的卷积核形状把流水线手工搭出来。好处是延迟极低、可预测性极强适合对实时性要求非常苛刻的场景坏处是开发成本高想要榨出好的性能需要具备很深的硬件设计功底。ASIC就是专用专用、更专用。常见叫法有NPU、TPU、BPU。它把矩阵乘法单元、片上缓存、数据搬运路径全部固化成最优结构省掉了一切“不必要”的通用能力换来的是同功耗下几倍甚至一个数量级的能效提升。缺点是架构一旦定下来就不能改算法一迭代升级老芯片可能就跟不上新算子。比如某个模型后来加入了一种新的注意力变体如果NPU指令集里没有对应的算子跑起来就会非常难受或靠编译器“凑”或只能换芯片。存算一体则是另一种颠覆思路。传统架构里计算单元和数据存储是分开的数据要不停搬来搬去这个搬运过程消耗的能量和延迟甚至比计算本身还高。存算一体把计算直接搬进存储单元在存储阵列内部完成乘加操作从而大幅减少数据搬运。目前这条路线还在快速演进能效数据很漂亮但编译器生态、精度控制、量产一致性都还需要时间成熟。2.2 一张选型表看懂适应范围我习惯把路线选择压成一张表每次调研先对着表把目标场景打上标记路线算力能效灵活性开发难度场景粒度代表应用GPU中等高中云端为主大模型训练、通用推理FPGA中高中高高边缘与定制场景高频交易、通信基带、工业视觉ASIC/NPU高低中高云、边、端全覆盖端侧AI、云端推理加速存算一体极高低极高云端与特定边缘尚以实验性应用为主开发难度这一列很多人填报的时候容易漏掉。同样一套要跑的模型换到专有NPU上可能要把网络结构重新重写中间还要反复调试量化工具这个成本常常被人为压低。2.3 为什么生态会成为决定性因素调研下来我有一个体会芯片的硬件参数只是入场券生态才是决定你能否用得起来的分水岭。按照硬件性能选型最容易踩的坑是“纸上算力很高实际跑不起来”。我再举一个不那么“多卡”的普通例子某个专有NPU标称INT8算力30 TOPS理论数据相当能打可一旦要部署一个新模型里面有几个自定义算子编译器要花几个小时去做映射产生的代码还可能触发CPU回退最后真正跑在NPU上的计算量连一半都不占。而GPU生态经过了多年沉淀主流框架几乎开箱即用大部分算子都有优化实现出了问题社区里一搜就有解答。这种生态优势在选型评分表里应该权重拉满但很多第一次做调研的人容易只盯着TOPS数字。结论是芯片选型本质是“计算效率、开发效率、生态成熟度”三个变量的平衡。硬件强但没人能帮你调通硬件的强就落不了地生态成熟哪怕参数一般项目往往能先跑起来。3. 读懂算力指标TOPS、TFLOPS、理论峰值背后的真相3.1 单位不是越好而是口径不同算力指标的混乱是调研新手最容易头晕的点。TOPS和TFLOPS长得像但一个是整数运算单位一个是浮点运算单位。TOPS就是每秒万亿次整数运算常用于衡量INT8精度下的推理能力TFLOPS是每秒万亿次浮点运算更多用于衡量FP32、FP16等精度下的训练能力。有些厂商会在产品页混着写FP16是320 TFLOPSINT8算力却是640 TOPS。这两个数字不能直接比大小一看计算精度二看数据格式。还有一个细微但很关键的差别同样是INT8有的芯片标的是带稀疏化的理论峰值扣掉稀疏部分实际降一半有的标的是稠密计算值。尤其在做横向对比时必须确认所有数据是否都在同一稀疏条件下否则就是拿A方案的最高值对比B方案的普通值结果完全失真。3.2 带宽、能效比与稀疏化容易被忽略的三件套拿到一张芯片规格书大多数人先看算力可实际系统跑起来之后真正决定体验的往往是三个配角。第一个是内存带宽。现在的AI计算是典型的数据饥饿型任务算力再高数据如果来不及从显存搬进计算单元计算单元就会空转。我看过一组直观的数据某些大模型的推理过程中访存时间占整个时延的一半以上。因此HBM高带宽内存成了高端AI芯片的标配调研时不能只看算力大小还要对比单位功耗对应的带宽数据。第二个是能效比单位是TOPS/W或TFLOPS/W。功耗在一台服务器里还不算致命一旦把芯片部署到户外边缘设备或者车载终端散热和供电条件会非常苛刻同样的算力需求功耗从15W差到5W整个散热结构和电池选型全都要变。推理项目长期跑电费也是硬成本一定要把“点亮芯片要多少度电”算到运营成本里。第三个是稀疏化支持。神经网络里很多权重和激活值本身存在大量零元素如果芯片能识别稀疏结构并跳过其中的无效计算就能实现近一倍的加速收益。但要注意支持稀疏化的芯片大多要求数据在送入前已经按某种格式准备好实际工程里需要做预处理的成本这部分也要计入总时间。3.3 理论峰值与真实利用率的差距最后也是我最想强调的一点任何纸面上的峰值算力都只是理想状态下的上限。真实应用里芯片利用率能跑到百分之四五十已经算很优秀跑到百分之七十以上属于优化得非常激进。利用率损失来自很多地方。第一并不是所有运算都能压满计算单元比如小batch推理、动态形状网络会带来大量等待。第二编译器不一定能把算子翻译成最优的底层指令。第三多卡并行时数据通信本身会形成大量空闲窗口。第四CPU与芯片之间的数据拷贝也会占掉时间。所以调研报告里不要只写“某某芯片算力独占鳌头”最好再补一句“该数值为理论峰值实际项目参考利用率按30%到60%估算最终需实测确认”。4. 市场格局与主流玩家不同定位下的产品落点4.1 云端训练与推理的存量蛋糕云端市场目前最大的份额还是掌握在GPU厂商手里。NVIDIA凭借完整的产品线和CUDA生态几乎把“大模型训练”等同于自家GPU的代名词。它每一代产品的性能迭代很快互联带宽也在持续加码训练场景的易用性累积成了一道很高的护城河。AMD这两年追赶势头明显主打大显存、相对有竞争力的单位成本在部分推理和训练场景中开始被更多团队纳入评估名单。Intel则走了另一条路收购Habana Labs之后推出了Gaudi系列主要面向数据中心的深度学习推理和训练任务强调较低的TTF和易于部署。Google自研的TPU一直是大规模云端训练的强有力符号。它通过自研的编排系统和专有芯片配合在特定负载下能打出非常激进的性价比。这套方案和云平台捆绑得深适合新项目从一开始就在该生态里规划的团队。4.2 边缘和端侧芯片的差异化逻辑边缘与端侧市场更碎片化但有一个共性逻辑谁的系统能力和功耗控制好谁就更有优势。手机端几乎每一家都在做自己的AI引擎。高通的Hexagon DSP、Apple的Neural Engine、各类移动平台的NPU模块它们各有各的指令集和软件接口但目标很一致让端侧跑得动越来越大的模型。端侧芯片的优势不只是“不用把数据传上云”更重要的是隐私和低延迟这两个刚需会让端侧算力芯片长期有市场。面向工业和自动驾驶场景主流玩家往往以智能驾驶芯片和机器人芯片的身份出现比如地平线的征程系列、Mobileye的EyeQ系列以及各家基于自研架构推出的域控制器芯片。这类芯片通常把NPU、视觉处理单元、安全监控相关的能力集成在芯片上跑的是实时视频流和点云数据对确定性延迟和功能安全有明确要求。国内多家初创公司近两年也在不断迭代云端推理芯片和边缘AI芯片比如寒武纪、壁仞、摩尔线程等它们普遍把重点放在推理加速和性价比上在特定模型结构上已经能打出差异化结果。4.3 不同厂牌产品定位速查表做横向调研时我习惯把主要产品按下表归类厂商/系列主要定位关键竞争力适合场景NVIDIA GPUA/H/B系列训练与通用推理CUDA生态、互联带宽大模型训练、全场景推理AMD Instinct系列训练与推理大显存、价格策略大规模训练、性价比选型Intel Gaudi系列推理训练部署成本、软件工具链数据中心推理、中大规模训练Google TPU云训练与推理自研生态、规模集群深度绑定云平台的持续负载地平线征程、Mobileye EyeQ边缘智能驾驶低延时、功耗控制、功能安全智能汽车、机器人、ADAS高吞吐端侧NPU手机与消费电子低功耗、高能效图像识别、语音识别、AIGC端侧应用国内云端推理芯片寒武纪、摩尔线程等云端推理特定模型的高性价比大规模推理量化部署做调研报告时不用把每个系列写成一个独立的“厂商巡礼”重点是让表格里的每一行都能对应一个明确的应用场景。多位厂商的PK必须落在同一种工作负载和同一个部署形态上才有比较的意义。5. 一套可复用的AI芯片调研框架从需求定义到结论验证5.1 先定义决策问题而不是先搜资料许多人做调研犯的最大错误是打开搜索引擎就开始“AI芯片是什么”的宏大阅读。这样收集了一堆资料最后落到自己项目里仍然不知道该选什么。我学到的方法恰恰相反先写清楚这次调研要解决什么具体问题。比如问题可以分成几类。第一类是“我有个模型要训练预算有限需要几多张卡”调研重心是显存、互联带宽、训练吞吐。第二类是“我要把已训练的模型推到线上去QPS目标固定”调研重心是INT8推理吞吐、成本、功耗、批处理大小。第三类是“我要在一台嵌入式设备上做实时检测”调研重心是功耗、弃尺寸、供应商SDK成熟度。把问题写出来之后再倒推需要哪些信息。这样资料搜集才有边界否则很容易陷入“无限阅读”。5.2 建立指标池和评分表第二步是建立一个可比较的指标池。我常用下面几项峰值算力FP32/FP16/INT8分别填写实际功耗热设计功耗不是瞬时最大功耗内存容量与带宽配套SDK语言成熟度主流推理框架的支持度多卡互联方案与扩展能力采购单价和整体生命周期成本损坏维修周期与供应稳定性文档完整度和社区活跃度每一项不一定要量化但至少要有一个评分标准。我习惯把“生态成熟度”单列一项设定1到5分的打分。原因很简单硬件性能能查到好不好用只能通过长期项目感受。等所有候选产品都填完这张表再用加权重的方式算总分把“峰值算力”压到30%的权重把“生态与开发成本”抬到更高往往得出的结果和纯看性能选的完全不一样。5.3 用交叉验证和实测数据收口桌面调研做得再细也只是二手资料的整理。最后一步必须落到交叉验证和实测。交叉验证指同一组数据至少找到两到三个独立来源。厂商白皮书里的性价比数据一般只作为参考我通常还要看第三方评测机构的数据、技术社区里的真实部署反馈、以及同行业朋友的实际使用记录。如果条件允许直接申请测试样片或云租赁环境跑一轮基准测试。不用做太复杂挑两个自己业务里最典型的模型结构评估吞吐和延迟的实测值一次实测能解决的问题比十份规格书都多。实测结果的记录也很重要。要在同一环境、同一批数据、同一精度设置下跑否则数字仍然没有意义。比如卡的数量不一样、CPU不同、量化精度在不同框架里对应不同的实现都会让结果失真。6. 调研中容易踩的坑与我的应对习惯6.1 “参数好看”不等于“业务好用”我在不少团队里看到过这样的情况一份密密麻麻的调研报告列满了各种TOPS数字最后业务方问“这个芯片跑我们的模型效果到底怎么样”所有人面面相觑。参数好看和业务好用之间隔着三条鸿沟一是理论峰值和实际利用率的鸿沟二是硬件峰值和软件适配度的鸿沟三是单芯片性能和整系统性能的鸿沟。所以我现在要求调研报告里每个大结论后面都跟着场景假设。比如“该芯片在INT8精度下理论算力为200 TOPS”后面必须补一句“按我方稳态模型推理负载估算单卡约可支持每秒XXX次请求实际以POC测试为准”。6.2 忽略散热、互联与软件适配的真实成本具体踩坑那段时间我有两个记忆深刻的教训。第一个是只算芯片单价没算整机成本。某颗芯片报价看起来比另一家便宜一截但它的功耗高导致需要更高规格的电源和散热整机就变成两U甚至四U级别机柜占用和电费全都被抬上去最后整体成本反而更高。芯片成本在服务器总成本里往往只占一部分算清楚“整机成本除以总算力”才有意义。第二个是忽略多卡互联。训练和部分高并发推理场景卡间的通信带宽决定系统能不能线性扩展。本来选了两台四卡服务器结果互联协议限制了跨卡通信模型越切越慢实际吞吐甚至不如单卡跑完整模型。这个在工作开始之前无人提及。软件适配成本也是一笔隐形支出。专用架构的NPU每换一次模型结构都可能要做算子适配这部分的工程师时间很可能超过芯片硬件节省的成本。调研时至少要留一个章节讲“软件适配预算”。6.3 把调研做成持续更新的长期习惯最后想分享一个方法论层面的心得AI芯片的调研不该是一次性任务而应该变成持续追踪的长期习惯。这个领域的产品迭代太快了。今天还在做纸面对比的芯片明天可能就发布了新一代架构今天还要靠手工调编译器的软件栈过几个月可能已经更新到了开箱即用的版本。我在调研结束后会设置一个每季度更新的动态表格把关键产品的算力、功耗、软件支持、价格变化持续记录起来这样真正到了项目选型的时候表格拿出来就能用不用从头再来。还有一个更实用的技巧订阅几份质量稳定的行业报告和评测内容但不要照搬结论只当自己看数据的输入源。把厂商发布、第三方评测、社区实践三路信息放在同一张时间线上慢慢就能看出谁在说真话谁在宣传而已。根据我个人经验因为AI芯片这个领域跨越硬件、软件、系统和业务需求与其试图把所有知识一次性装进脑子不如建好一套可持续更新的信息骨架。先把选型逻辑搭对芯片选对了后面省下来的调试时间往往比多花一点硬件预算划算得多。

相关推荐

立创EDA专业版铺铜隐藏与优化全攻略:告别卡顿和遮挡,高效完成PCB收尾
立创EDA专业版铺铜隐藏与优化全攻略:告别卡顿和遮挡,高效完成PCB收尾

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:11:29

Windows 11桌面图标失效原理与四层修复方案
Windows 11桌面图标失效原理与四层修复方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:11:29

DataGridViewComboBox输入自动匹配失效的根因与自定义编辑控件实现
DataGridViewComboBox输入自动匹配失效的根因与自定义编辑控件实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:11:29

ROCm多流调度实战:hipMemcpyAsync异步陷阱与拷贝计算重叠
ROCm多流调度实战:hipMemcpyAsync异步陷阱与拷贝计算重叠

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:51:29

5V输入多串锂电池升压充电管理IP2342设计与调试实战
5V输入多串锂电池升压充电管理IP2342设计与调试实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:51:23

透传解耦实践:HeliosEquipment 0.3如何把机台从业务代码中剥离
透传解耦实践:HeliosEquipment 0.3如何把机台从业务代码中剥离

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:51:23

SMIC 180nm二阶带隙基准实战调优指南
SMIC 180nm二阶带隙基准实战调优指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:51:23

pip安装numpy报错Could not find a version?排查方法一文讲透
pip安装numpy报错Could not find a version?排查方法一文讲透

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:51:23

同济第八版高数教材PDF使用指南:从学习难点到刷题策略
同济第八版高数教材PDF使用指南:从学习难点到刷题策略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:51:23

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码