多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

AI服务器需求测算与产业链量化分析:从算力利用到市场集中度

AI服务器需求测算与产业链量化分析:从算力利用到市场集中度 简介这份2023年AI服务器市场需求产业链解析及竞争格局分析报告面向AI算力相关从业者、投资者及技术决策者系统梳理服务器市场规模、构成与逻辑架构并结合AIGC技术爆发分析训练与推理带来的增量需求。报告基于Counterpoint、IDC等机构数据给出全球及中国服务器出货量、市场规模及浪潮、新华三、超聚变等厂商份额同时拆解CPU、内存、硬盘等硬件成本占比。资源为PDF格式单文件压缩包大小2.73MB内容结构完整涵盖服务器市场情况、AIGC变革、产业链解析、竞争格局及相关标的等章节并包含异构计算、GPU与CPU对比等关键知识点。已有106人学习适合作为算力行业研究、投资判断与产业趋势分析的重要参考。数据丰富既有宏观趋势也有硬件拆解可作为AI服务器产业链研究的案头资料。1. AI服务器市场分析先看懂需求是怎么被算出来的2023年AI服务器市场最反直觉的地方在于需求并不是被芯片峰值算力单点驱动的而是被一个看似次要的指标放大——有效算力利用率。同一块训练卡放在单机、整柜和大规模集群里跑大模型训练时的MFU可以分别只有0.2、0.35和0.45这个差值直接改变采购台数和整条产业链的利润分配。下面把AI服务器需求拆成训练、推理、散热与容错三块把产业链拆成四个可独立定价的环节把竞争格局缩成可计算的集中度与护城河指标。每一步都有公式和命令不写观点只写可执行的分析动作最后落到一张能每月更新的观测表。适合售前方案、集群采购、算力运维和关注AI算力投资的IT从业者。2. AI服务器产业链拆解四个可独立定价的层级拿到一份AI服务器配置单第一件事不是看CPU型号而是先圈出三个字段加速卡显存容量、卡间互联带宽、整机最大功耗。这三个字段决定这台机器能被用来训练还是推理、能放进风冷机柜还是必须上液冷也决定它在产业链里对应哪个报价层级。把AI服务器看成一个算力供给系统从芯片到整机至少可以切分四层。2.1 芯片、结构、软件、整机集成成本与瓶颈分布层级核心部分影响需求的关键参数常见计价方式算力芯片AI加速卡、高带宽显存峰值算力、显存容量、互联带宽、TDP按单卡计价占整机成本最高基础结构与供电高速PCB、电源、散热系统板卡层数、单机柜功率密度、液冷占比按节点或整柜功率计价系统软件编译栈、集合通信库、容器运行时实际MFU、集合通信带宽利用率按授权或订阅服务整机集成BMC管理、老化测试、交付组装交付周期、集群故障恢复时间整机毛利率与维保比例2023年最大的变化是系统软件从可选变成必选项。原因是单卡算力上去了但多卡通信效率上不去训练集群的有效利用率可能被集合通信拉低一大截。服务器集群的采购决策已经从“选配置单”变成“选系统方案”芯片再强通信库和调度层不匹配整机也只能发挥七成性能。这个现象让整机集成环节的溢价能力在2023年明显提高。2.2 用PDF解析把报价单转成产业链价格结构表厂商报价多是以PDF文件下发规格和价格混在表格里人工录入效率低。常见做法是先用PDF解析把文本和表格抽出来再做成本拆解。下面这段脚本用pdfplumber遍历目录下所有报价PDF提取表格内容并打印适合批量整理报价单。import pdfplumber from pathlib import Path ROOT Path(quote_pdfs) def extract_quote_table(pdf_path: Path): rows [] with pdfplumber.open(pdf_path) as pdf: for page in pdf.pages: for table in page.extract_tables(): for row in table: clean [(c or ).replace(\n, ) for c in row] rows.append(clean) return rows for pdf_path in sorted(ROOT.glob(*.pdf)): for line in extract_quote_table(pdf_path): print(pdf_path.stem, |, | .join(line))extract_tables()返回的是页面表格的行列表每个单元格可能是None用空字符串替代是为了后续拼装不会断行。pdf_path.stem取文件名不带后缀正好可当作供应商或配置单编号。实际使用中扫描版PDF无法直接提取文本需要先OCR表格线不规则的报价单可以调整extract_tables()的参数比如vertical_strategylines或text_strategyexact不同版本PDF结构差异较大备两套解析参数轮询即可。2.3 显存和互联带宽才是需求测算的锚点产业链定价的锚点在显存和互联带宽不在单纯的FLOPS数字。16bit权重下7B模型的权重约14GB70B模型约140GB如果单卡显存只有80GB70B模型至少需要切2张卡实际部署往往切4张。张量并行度每翻一倍卡间通信量会明显上升有效算力随之下降。这就是为什么同一模型在不同显存容量的卡上跑单token成本能差出30%以上。2023年很多AI服务器采购是从显存容量反推整机配置的单卡显存不够整机台数就必须增加市场规模随之被放大。这个逻辑也能解释为什么2023年推理服务器比训练服务器更容易出现缺货训练负载可以等在线推理不能等显存容量不够就只能加节点。接下来把这种反推过程量化做成可复用的需求测算脚本。3. AI服务器需求测算从训练和推理负载反推卡数AI服务器需求不是凭感觉拍出来的可以从大模型训练和在线推理两侧分别计算。训练侧用计算量公式推理侧用吞吐和显存带宽约束两侧结果相加再乘上容错和散热冗余就是比较可靠的采购估算。3.1 训练需求用6ND公式计算最小卡数大模型训练的总计算量约等于6乘参数量乘训练token数也就是C ≈ 6ND。N是模型参数量D是训练数据量。已知总算力和单卡有效算力后就能算出卡时、卡日和最终所需卡数。def estimate_training_gpus( params_b: float, # 模型参数量单位B如7B tokens_b: float, # 训练数据量单位B token如2000 peak_pflops: float, # 单卡峰值算力单位PFLOPs如2 mfu: float, # 有效算力利用率常见0.35~0.55 train_days: float, # 目标训练天数 ): total_flops 6 * params_b * 1e9 * tokens_b * 1e12 usable_flops peak_pflops * 1e15 * mfu card_days total_flops / usable_flops / 86400 gpus card_days / train_days return { total_flops: total_flops, card_days: round(card_days, 1), gpus: round(gpus 1), } if __name__ __main__: result estimate_training_gpus( params_b7, tokens_b2000, peak_pflops2, mfu0.4, train_days10, ) print(result)这段脚本按7B模型、2000B token、单卡峰值算力2PFLOPs、MFU为0.4计算总算力约8.4e22 FLOPs单卡有效算力每天约6.9e19 FLOPs卡日约1215天10天训练需要约122张加速卡。MFU是关键变量2023年很多集群实际MFU达不到0.4通信和存储瓶颈会把需求再放大两三成。参数train_days不要设得太激进断点续训和日志同步都会吃掉额外时间。3.2 推理需求从并发会话和显存带宽估算实例数训练侧按总计算量算推理侧则不能只算FLOPS。在线推理时每生成一个token都要读取模型权重显存带宽往往先到瓶颈。以7B模型为例每个token至少读取14GB权重如果单卡显存带宽约2TB/s单卡理论最快约每秒140个token。要求峰值5000 tokens/s就需要约36张卡实际考虑批处理、显存碎片和后端优化还要再上浮。watch -n 5 nvidia-smi --query-gpuindex,utilization.gpu,memory.used,power.draw --formatcsv这是推理压测时用得最多的巡检命令之一。nvidia-smi每隔5秒输出每张卡的利用率、显存占用和实时功耗。如果显存占用接近上限而GPU利用率偏低说明负载卡在显存带宽或数据加载如果利用率和功耗都高才是算力瓶颈。服务器运维巡检时用这条命令连续观察15分钟就能判断推理集群是该加卡还是该调batch size。2023年AI agent和AI编程类应用开始起量这两类场景都是多轮对话每轮都要重复读取权重tokens/s要求比普通问答高不少。传统按每日请求量估算的方式容易低估峰值按并发会话乘单会话平均输出速率更可靠。这也意味着推理需求测算必须按会话维度拆而不是简单统计接口调用次数。3.3 需求修正散热和故障率会改变最终采购量算力计算只是理想值实际部署还要考虑散热能力和集群容错。单卡功耗到了700W级别后风冷机柜能容纳的卡数明显下降液冷从可选变成前置选型条件。下表是2023年常见做法中的对比基准散热方式单机柜典型功率上限单柜可部署的加速卡数量运维关注点风冷约20kW中低密度进风口温度、风扇转速、积灰液冷约40kW以上高密度漏液检测、流速、CDU冗余故障率的影响常被低估。1000卡规模下单卡年故障率哪怕只差2%每月故障卡数就差约1.7张而故障卡的替换周期会直接影响集群可用算力。为了维持同样的有效训练时长实际采购量通常要在理论估算结果上增加5%到10%的冗余。这个冗余比例不是固定的要结合维保交付周期和维修团队规模调整。4. AI服务器竞争格局量化从市场份额到护城河打分竞争格局不能只看企业排名要用可计算的方式拆开看。2023年AI服务器市场的竞争至少发生在三个层面加速卡层面、整机集成层面、集群方案层面。三个层面的集中度不同护城河的来源也不同直接用一个总排名会混淆口径。4.1 用HHI指数计算市场集中度赫芬达尔指数是评估集中度最直接的工具把市场份额的百分比取平方后求和即可。下面用一段简短的Python函数计算输入份额小数输出HHI。def hhi(shares: list[float]) - float: return sum((s * 100) ** 2 for s in shares) # 示例某环节头部六家份额单位小数合计为1 shares_example [0.35, 0.24, 0.18, 0.12, 0.07, 0.04] print(hhi(shares_example))这个示例算出来是2334落在1500到2500之间属于中度集中市场。判断标准通常是小于1500为竞争型市场1500到2500为中度集中大于2500为高度集中。实际操作时不要只算一次至少按季度连续算看指数是上升还是下降。2023年很多环节的HHI是明显上升的但不同环节差异很大算力芯片层集中度远高于整机集成层。4.2 台数、金额、算力三种口径怎么对齐统计口径优点失真风险出货台数直观易得入门机和旗舰机混在一起排名失真销售金额体现收入规模高端机占比波动时排名会跳变有效算力贴近实际生产能力对每代芯片的算力假设依赖较强常见做法是同时维护三种口径再以有效算力口径为主做判断。比如某厂商台数份额高但金额份额低说明它主要出货配置偏低的机型如果金额份额上升而算力份额不变说明涨价而不是扩容。用一张表把三个数字并列放在一起很多观点就不需要猜了。4.3 把护城河拆成四个可验证的指标壁垒维度验证动作异常信号生态兼容统计算子库覆盖数量、框架适配版本新模型框架上线慢社区抱怨多系统协同查看集群压测MFU和通信带宽利用率整机跑分不错集群一扩大性能就掉交付能力跟踪整机交付周期和液冷产能交期拉长替代方案集中出现服务响应查看故障报修流程和备件储备大客户开始自建维保团队真正的壁垒是卡在集群级的而不是单卡级。单卡性能数字可以很快追平但要让一万张卡稳定高速协同工作涉及通信拓扑、装箱调度和故障恢复这些能力需要大量现场经验。2023年竞争格局中比较明显的趋势是头部厂商从卖整机转向卖集群方案用软件和服务把客户绑定得更深。跟踪竞争格局时盯住整机中标公告里的“集群验收指标”比盯住市场份额数字更有前瞻性。5. 把AI服务器产业报告变成每月更新的跟踪清单分析报告看一遍容易过时更好的做法是把报告里的结论还原成可观测指标建一张月度跟踪表持续积累数据后自己也能做出趋势判断。5.1 需求、供给、竞争三层观测指标层面观测指标更新频率建议数据来源需求侧训练卡估算值、推理峰值tokens/s、资本性开支月度按3.1和3.2的办法回算供给侧加速卡交期、液冷订单、整机出厂周期月度供应链访谈、代工厂月度营收竞争侧重点环节HHI、新客户中标名单、认证数量季度中标公告、招聘职位变化这套指标体系的好处是每个数字都能追溯到具体动作。比如需求侧的“训练卡估算值”不是拍脑袋而是按每月新发布模型的参数量和训练数据量重算一遍供给侧的交期变化则可以通过公开报价单的交付时长交叉验证。5.2 用SQLite把每月数据固化下来用SQLite就能满足单人或小团队的跟踪需求不需要单独部署数据库。下面是建表和写入当月数据的命令在Linux或macOS终端直接执行。sqlite3 ai_server_tracker.db SQL CREATE TABLE IF NOT EXISTS monthly_metrics ( ym TEXT NOT NULL, layer TEXT NOT NULL, metric TEXT NOT NULL, value REAL, note TEXT ); INSERT INTO monthly_metrics (ym, layer, metric, value, note) VALUES (2023-10, 需求侧, 训练卡估算需求, 122, 按7B模型2000B token测算); SQL这里用layer区分需求侧、供给侧和竞争侧metric存指标名value存数值note记录计算假设。三个月后用一条查询就能看到趋势sqlite3 ai_server_tracker.db \ SELECT ym, metric, value FROM monthly_metrics WHERE layer需求侧 ORDER BY ym;建议当天记录数据时把计算假设写进note字段比如MFU取了多少、tokens/s按多少算。未来回看时假设变了才能判断数字变化是真实趋势还是口径变化造成的。连续三个月对比之后再回头更新上一份报告里的需求预测比重新收集一整年数据要高效得多。本文还有配套的精品资源点击获取
返回列表