项目实战经验:
鲲鹏服务器配置昇腾 Atlas 300I A2 / Atlas 300I Duo 时,不能只看“有几个 PCIe 插槽”。真正要先算的是:CPU lane 总数、硬盘占用、网卡占用、RAID/HBA 占用,以及 A2/Duo 实际跑 x16 还是 x8。

一、为什么不能只看 PCIe 插槽数量?

项目里经常会遇到这种情况:服务器看起来有很多 PCIe 插槽,配置单上也写着支持多张加速卡,但真正落地时,A2/Duo 不一定都能按 x16 满血运行。

插槽数量 ≠ 可用 lane 数量
物理 x16 ≠ 电气 x16
能插上 ≠ 能跑满

PCIe lane 会被多类设备共同占用

双路鲲鹏 CPU
PCIe Lane 总资源

昇腾 A2 / DuoRAID / HBANVMe 硬盘
PCIe 网卡其他扩展设备最终判断 lane 是否够用

二、先确定 CPU lane 总账

本文按常见 鲲鹏 920 双路服务器项目 来算。

CPU 平台单颗 CPU lane 估算双路 CPU lane 估算
鲲鹏 920 32C40 lane80 lane
鲲鹏 920 48C40 lane80 lane
鲲鹏 920 64C40 lane80 lane
鲲鹏 920 单颗 CPU:40 lane
双路鲲鹏 920:2 × 40 = 80 lane

注意:如果项目使用的是鲲鹏 930 或其他新平台,不要直接套用 80 lane 的算法,需要按对应平台和整机 PCIe 拓扑重新计算。

三、常见设备 lane 预算表

项目评审时,可以先按下面方式估算:

设备lane 预算说明
Atlas 300I A2x16建议按满血 x16 预留
Atlas 300I Duox16建议按满血 x16 预留
RAID / HBA 卡x8SAS/SATA 硬盘常见方案
单块 NVMe SSDx4NVMe 会直接吃 PCIe lane
PCIe 25G 网卡x8以具体网卡规格为准
PCIe 100G 网卡x8 / x16项目中必须确认

四、核心计算公式

项目中最实用的公式就一个:

可用 lane = CPU 总 lane - 硬盘 lane - 网卡 lane - RAID/HBA lane - 其他设备 lane

如果是双路鲲鹏 920,可以写成:

可用 lane = 80 - 硬盘 lane - 网卡 lane - RAID/HBA lane - 其他设备 lane

可配 A2/Duo 数量 = 可用 lane ÷ 16

五、项目配置案例

案例 1:4 张 A2/Duo + SAS/SATA 硬盘

SAS/SATA 硬盘一般通过 RAID/HBA 卡连接,不是一块盘一块盘吃 CPU lane。

4 张 A2/Duo = 4 × 16 = 64 lane
RAID/HBA = 8 lane
合计 = 72 lane

剩余 = 80 - 72 = 8 lane
设备lane
4 张 A2/Duo64
RAID/HBA8
合计72
剩余8

结论:这个配置比较常见,lane 基本够用。

案例 2:4 张 A2/Duo + RAID + 100G 网卡

4 张 A2/Duo = 64 lane
RAID/HBA = 8 lane
100G 网卡 = 8 lane
合计 = 80 lane
设备lane
4 张 A2/Duo64
RAID/HBA8
100G 网卡8
合计80
剩余0

结论:这个配置刚好用满。项目里必须确认 100G 网卡到底是 x8 还是 x16。如果 100G 网卡是 x16,lane 就会超。

案例 3:4 张 A2/Duo + 4 块 NVMe

4 张 A2/Duo = 64 lane
4 块 NVMe = 4 × 4 = 16 lane
合计 = 80 lane
设备lane
4 张 A2/Duo64
4 块 NVMe16
合计80
剩余0

结论:这个配置也是刚好用满。如果还要加 PCIe 网卡,就需要重新调整方案。

案例 4:3 张 A2/Duo + RAID + 4 块 NVMe + 100G 网卡

3 张 A2/Duo = 48 lane
RAID/HBA = 8 lane
4 块 NVMe = 16 lane
100G 网卡 = 8 lane
合计 = 80 lane
设备lane
3 张 A2/Duo48
RAID/HBA8
4 块 NVMe16
100G 网卡8
合计80
剩余0

结论:如果项目既要 NPU,又要 NVMe,还要高速网络,3 张 A2/Duo 有时比硬上 4 张更稳。

六、SAS/SATA 和 NVMe 要分开算

1. SAS/SATA 硬盘

SAS/SATA 一般是:

CPU PCIe lane → RAID/HBA 卡 → SAS/SATA 背板 → 多块硬盘

所以 SAS/SATA 硬盘主要看 RAID/HBA 卡占多少 lane,常见可以先按 x8 估算。

2. NVMe 硬盘

NVMe 数量lane 占用
1 块x4
2 块x8
4 块x16
8 块x32

重点:NVMe 硬盘会直接和 A2/Duo 抢 lane。

七、按 80 lane 反推 A2/Duo 数量

如果只看 A2/Duo,每张按 x16 计算:

A2/Duo 数量lane 占用项目判断
2 张32 lane比较宽松
3 张48 lane适合再配 NVMe 和高速网卡
4 张64 lane项目中比较常见
5 张80 lane理论刚好,但没有硬盘和网卡余量
6 张96 lane直连 x16 不够
8 张128 lane直连 x16 不够

80 lane 使用量示意

2 张卡:32 / 80 lane 

3 张卡:48 / 80 lane 

4 张卡:64 / 80 lane 

5 张卡:80 / 80 lane 

6 张卡:96 / 80 lane  超出

8 张卡:128 / 80 lane  超出

项目结论:双路鲲鹏 920,如果 A2/Duo 都按 x16 算,4 张是比较稳的配置。5 张以上要重点确认是否降 x8、是否使用 PCIe Switch、是否共享上游带宽。

八、项目实战中的五步计算法

在实际项目里,我一般不会一上来就问“最多能插几张卡”。更稳妥的方式是先把整机资源拆开,按下面五步走。

步骤要做什么项目关注点
第一步确认 CPU 平台是否双路鲲鹏 920,按 80 lane 做初算
第二步列出所有 PCIe 设备A2/Duo、RAID/HBA、NVMe、网卡都要列出来
第三步逐项扣 laneA2/Duo 按 x16,NVMe 每块按 x4,RAID/HBA 常见按 x8
第四步核对槽位电气宽度物理 x16 不代表电气 x16,要看 Riser 和拓扑
第五步交付后验证用 LnkCap / LnkSta 看实际链路

比如一个项目配置单写的是:

CPU:双路鲲鹏 920
NPU:4 张 Atlas 300I A2
硬盘:系统盘 + 业务数据盘,走 RAID/HBA
网络:1 张 100G PCIe 网卡

那么第一轮计算就应该是:

CPU 总 lane:80
4 张 A2:4 × 16 = 64
RAID/HBA:8
100G 网卡:8

剩余 lane = 80 - 64 - 8 - 8 = 0

项目判断:这类方案不是不能做,而是已经没有 lane 余量。后续如果再要求加 NVMe、双 100G、额外采集卡,就一定要重新评估,不能直接往配置单上加。

九、三类常见项目方案怎么取舍

不同项目对 NPU、存储和网络的侧重点不一样。lane 计算不是为了把卡数堆满,而是为了让整机配置和业务场景匹配。

1. 算力优先型

这类项目通常是推理服务、模型部署、批量图片或文本处理,核心诉求是多放 A2/Duo,硬盘和网络相对简单。

推荐思路:
4 张 A2/Duo
SAS/SATA 硬盘走 RAID/HBA
网卡尽量用板载、FlexIO 或 x8 PCIe 网卡

这个方案的优点是 NPU 数量比较充足,lane 计算也清晰。风险点是,如果客户后续又提出增加多块 NVMe 或双 100G 网卡,lane 很容易不够。

2. 存储增强型

这类项目会更看重本地数据读写,比如本地缓存、向量库、日志留存、数据预处理等。如果要上 4 块或 8 块 NVMe,就要提前给硬盘留 lane。

示例:
3 张 A2/Duo = 48 lane
4 块 NVMe = 16 lane
RAID/HBA = 8 lane
100G 网卡 = 8 lane
合计 = 80 lane

这种方案看起来少了一张 NPU,但整体更均衡,适合既要推理能力、又要本地高速存储和高速网络的项目。

3. 网络带宽优先型

有些项目更依赖网络,比如多机推理调度、前端业务请求量很大、数据从存储集群实时拉取,或者需要双 100G 做冗余。这种情况下,网卡不能随便按 x8 估算,必须看具体型号。

如果 100G 网卡是 x16:
4 张 A2/Duo = 64 lane
RAID/HBA = 8 lane
100G 网卡 = 16 lane
合计 = 88 lane,已经超过 80 lane

项目建议:网络带宽优先的项目,不要默认 4 张卡就是最优配置。可以考虑 3 张 A2/Duo + x16 100G 网卡,或者确认是否有板载 100G、FlexIO、PCIe Switch 等方案。

十、x16、x8 和 PCIe Switch 要分开判断

项目里经常会听到一句话:“这张卡可以跑 x8,所以就没问题。”这个说法不够严谨。

A2/Duo 如果运行在 x8,很多业务确实还能跑,但要看业务是不是频繁在 CPU、内存、NPU 之间搬数据。如果模型加载后长期在 NPU 上推理,PCIe 压力可能没那么大;如果业务需要频繁传输大图片、大批量特征、视频帧或者多路并发数据,x8 和 x16 的差异就可能影响吞吐。

情况项目判断
A2/Duo 跑 x16优先推荐,带宽余量最好
A2/Duo 跑 x8可以评估,但要结合业务压测确认
多张卡经过 PCIe Switch要看上游到 CPU 的总带宽,不能只看下游槽位数量
宣传支持 6 张/8 张卡必须确认每张卡实际链路宽度和是否共享带宽

PCIe Switch 不是不能用,但项目评审时一定要问清楚:Switch 上游到 CPU 是 x16、x32 还是其他设计?多张卡同时满载时,是不是共享同一个上游链路?如果 8 张卡下游看起来都是 x16,但上游只有 x32,那么它不是 8 张卡都等同于 CPU 直连 x16。

十一、槽位归属和 NUMA 也要看

双路服务器里,PCIe 槽位通常会分属不同 CPU。项目里除了算总 lane,还要看 A2/Duo、网卡、NVMe 分别挂在哪颗 CPU 下。

举个简单例子:如果网卡挂在 CPU0,A2/Duo 大部分挂在 CPU1,业务数据从网卡进来后要跨 CPU 访问 NPU,就可能多一层 NUMA 访问开销。这个问题不一定每个项目都很明显,但在高并发、低时延场景里值得关注。

建议交付后确认:
1. 每张 A2/Duo 对应的 PCIe BDF
2. 每个 BDF 对应的 numa_node
3. 网卡和 NPU 是否尽量在同一 CPU 侧
4. 业务进程是否做了 CPU 亲和或 NUMA 绑定

这个部分不是简单的“能不能插”,而是“插上之后跑得稳不稳、延迟和吞吐有没有达到预期”。所以在重要项目里,最好把槽位拓扑和 NUMA 绑定也纳入交付检查。

十二、项目评审时建议直接问厂商

不要只问“这台服务器能插几张卡”,建议直接问:

  1. CPU 是鲲鹏 920 32C、48C 还是 64C?
  2. 是否双路 CPU?总 lane 是否按 80 lane 设计?
  3. 每个 PCIe 槽是物理 x16,还是电气 x16?
  4. A2/Duo 实际运行是 x16 还是 x8?
  5. RAID/HBA 占几条 lane?
  6. NVMe 是几块?每块是否占 x4?
  7. 100G 网卡是 x8 还是 x16?
  8. 是否使用 PCIe Switch?
  9. 6 张/8 张卡方案是否共享上游带宽?

十三、交付后用命令验证

服务器到场后,不要只看配置单,要进系统检查实际链路。

lspci -tv
lspci -vv -s <BDF> | egrep "LnkCap|LnkSta"
npu-smi info
numactl -H

重点看:

LnkCap:设备支持的最大链路
LnkSta:当前实际运行链路

如果看到:

LnkCap: Width x16
LnkSta: Width x8

说明卡支持 x16,但当前实际只跑在 x8。

可能原因包括:

  • 插槽电气只有 x8;
  • Riser 做了拆分;
  • BIOS 配置限制;
  • 经过 PCIe Switch 后共享带宽;
  • 卡没有插在推荐槽位。

十四、总结

鲲鹏服务器配置昇腾 A2/Duo,不能只看 PCIe 插槽数量。

鲲鹏 920 32C / 48C / 64C:单颗 40 lane
双路 CPU:80 lane
A2/Duo:每张按 x16 预算

然后再扣掉硬盘、RAID/HBA、网卡和其他 PCIe 设备,最终判断 A2/Duo 能配几张。

一句话总结:项目实战里,A2/Duo 能配几张,不是看槽位有几个,而是看 80 lane 怎么分。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐