Skip to content

成本核算与计费

核心目标:让算力成本透明化、可追溯、可分摊,驱动各团队高效使用算力资源


为什么需要算力成本核算

算力不便宜。一台Atlas 800T A2服务器的全生命周期成本超过100万元。如果没有成本核算体系,会出现以下问题:

问题无成本核算有成本核算
成本不透明不知道算力花了多少钱每张卡、每个团队成本清晰
资源浪费免费资源导致占用不用按用量计费,促进高效使用
分摊困难成本全算IT头上,业务不买单各团队为自己的用量买单
决策缺乏依据不清楚扩容是否值得ROI驱动投资决策

算力成本核算的核心理念:谁使用,谁付费;用多少,付多少


按卡时计费模型

什么是卡时

卡时(Card-Hour) 是算力计费的基本单位,表示1张NPU卡使用1小时。

1卡时 = 1张NPU卡 × 1小时
8卡时 = 8张NPU卡 × 1小时(或1张卡 × 8小时)

卡时单价计算

卡时单价 = 算力总成本 / 总可用卡时

示例计算

假设:
- 硬件:10台 Atlas 800T A2(80张卡)
- 硬件采购成本:1000万元(5年折旧)
- 年化成本计算:

硬件折旧:1000万 / 5年 = 200万/年
电费:80卡 × 0.4kW × 8760h × 0.8元 = 22.4万/年
软件许可:CANN免费 + MindSpore免费 = 0
运维人力:2人 × 20万 = 40万/年
机房/网络:15万/年

年化总成本 = 200 + 22.4 + 0 + 40 + 15 = 277.4万/年

总可用卡时 = 80卡 × 8760h = 700,800 卡时/年

卡时单价 = 277.4万元 / 700,800 = 3.96元/卡时

(考虑85%可用率,实际单价 ≈ 4.65元/卡时)

分级计费模型

不同类型算力的成本不同,建议分级计费:

算力类型硬件参考单价(元/卡时)说明
训练算力Atlas 800T A2 (910B)4-6成本高,训练专用
推理算力Atlas 800I A2 (910B)3-5推理优化配置
轻量推理Atlas 300I (310P)1-2功耗低,成本低
边端推理Atlas 500 A20.5-1边端设备,成本最低
vNPU分片按比例折算单价/切分数细粒度计费

分时段计费

为鼓励闲时利用,可实施分时段计费:

时段时间范围计费系数说明
高峰时段9:00-18:00(工作日)1.2x鼓励错峰
平峰时段18:00-22:00(工作日)1.0x标准计费
低谷时段22:00-9:00 + 周末0.5x鼓励闲时使用

Chargeback体系搭建

Chargeback vs Showback

模式说明适用阶段
Showback展示各团队成本,但不实际扣费初期,培养成本意识
Chargeback实际从团队预算中扣除算力费用成熟期,成本驱动

建议分阶段实施:

  1. 第一阶段(1-3月):Showback,让团队看到自己的用量和成本
  2. 第二阶段(3-6月):半Chargeback,部分成本分摊到团队
  3. 第三阶段(6月+):全Chargeback,团队为实际用量买单

Chargeback实施流程

1. 卡时统计 → 2. 费用计算 → 3. 账单生成 → 4. 费用分摊 → 5. 报告反馈

第一步:卡时统计

Slurm环境

bash
# 统计各账户的卡时消耗(按月)
sacct --starttime 2026-08-01 --endtime 2026-08-31 \
      --format=Account,AllocatedNPU,Elapsed,State \
      --state=COMPLETED \
      | awk '{account=$1; npus=$2; time=$3; 
              # 计算卡时
              split(time, t, ":");
              hours = t[1] + t[2]/60 + t[3]/3600;
              card_hours[account] += npus * hours;
             } 
             END {for (a in card_hours) print a, card_hours[a]}'

K8s环境

bash
# 通过Metrics Server + 自定义脚本统计NPU使用时长
kubectl get pods --all-namespaces -o json | jq '
  .items[] | 
  {
    namespace: .metadata.namespace,
    npu: .spec.containers[].resources.limits["ascend.kubernetes.io/npu"]
  }' | group_by(.namespace) | ...

第二步:费用计算

python
# 费用计算脚本示例
from datetime import datetime, timedelta

# 计费配置
PRICING = {
    "training": 5.0,      # 训练算力 5元/卡时
    "inference": 4.0,     # 推理算力 4元/卡时
    "light_inference": 1.5,  # 轻量推理 1.5元/卡时
}

# 分时段系数
TIME_MULTIPLIER = {
    "peak": 1.2,     # 高峰 9:00-18:00
    "normal": 1.0,   # 平峰 18:00-22:00
    "off_peak": 0.5, # 低谷 22:00-9:00 + 周末
}

def calculate_cost(team, resource_type, card_hours, time_period):
    """计算团队算力费用"""
    base_price = PRICING[resource_type]
    multiplier = TIME_MULTIPLIER[time_period]
    cost = card_hours * base_price * multiplier
    return cost

def generate_monthly_bill(year, month):
    """生成月度账单"""
    # 从统计系统获取各团队卡时数据
    usage_data = get_usage_data(year, month)  # {team: {resource_type: {period: hours}}}
    
    bills = {}
    for team, resources in usage_data.items():
        total_cost = 0
        details = []
        for res_type, periods in resources.items():
            for period, hours in periods.items():
                cost = calculate_cost(team, res_type, hours, period)
                total_cost += cost
                details.append({
                    "resource_type": res_type,
                    "time_period": period,
                    "card_hours": hours,
                    "cost": cost
                })
        bills[team] = {"total_cost": total_cost, "details": details}
    
    return bills

第三步:账单生成

月度账单模板

╔══════════════════════════════════════════════╗
║          昇腾算力月度账单                      ║
║          2026年8月                            ║
╠══════════════════════════════════════════════╣
║  团队:AI研发团队A                             ║
║  账期:2026-08-01 至 2026-08-31               ║
╠══════════════════════════════════════════════╣
║  资源明细:                                    ║
║  ┌────────┬────────┬────────┬────────┐       ║
║  │资源类型 │时段    │卡时    │费用(元) │       ║
║  ├────────┼────────┼────────┼────────┤       ║
║  │训练算力 │高峰    │2,400   │14,400  │       ║
║  │训练算力 │低谷    │1,800   │4,500   │       ║
║  │推理算力 │平峰    │960     │3,840   │       ║
║  └────────┴────────┴────────┴────────┘       ║
║                                              ║
║  总卡时:5,160 卡时                            ║
║  总费用:¥22,740                              ║
║                                              ║
║  备注:低谷时段享5折优惠                        ║
╚══════════════════════════════════════════════╝

成本分摊策略

分摊模式对比

模式说明优点缺点适用场景
按用量分摊按实际卡时消耗分摊公平,激励节约需精确计量成熟期
按配额分摊按团队配额比例分摊固定成本简单,可预测不激励节约初期
混合分摊固定成本按配额 + 变动成本按用量兼顾公平和可预测计算复杂推荐方案

混合分摊方案

团队月费用 = 固定费用(配额部分) + 变动费用(用量部分)

固定费用 = 团队配额卡数 × 月时长 × 固定单价 × 60%
变动费用 = 实际卡时 × 变动单价 × 40%

示例

团队A:
- 配额:30张卡
- 固定费用 = 30卡 × 730h × 4元 × 60% = 52,560元
- 实际使用:20,000卡时
- 变动费用 = 20,000 × 4元 × 40% = 32,000元
- 月总费用 = 52,560 + 32,000 = 84,560元

团队B:
- 配额:20张卡
- 固定费用 = 20卡 × 730h × 4元 × 60% = 35,040元
- 实际使用:12,000卡时
- 变动费用 = 12,000 × 4元 × 40% = 19,200元
- 月总费用 = 35,040 + 19,200 = 54,240元

共享资源分摊

多个团队共享的推理服务,按调用量分摊:

团队A月调用量:500万次(50%)
团队B月调用量:300万次(30%)
团队C月调用量:200万次(20%)

推理服务月成本:50,000元

团队A分摊:50,000 × 50% = 25,000元
团队B分摊:50,000 × 30% = 15,000元
团队C分摊:50,000 × 20% = 10,000元

算力TCO计算框架

TCO(Total Cost of Ownership)总拥有成本

算力TCO包含硬件、软件、运维、电费等全生命周期成本:

TCO = 硬件成本 + 软件成本 + 运维成本 + 电费成本 + 场地成本 + 其他成本

TCO详细分解

1. 硬件成本

项目说明计算方式
NPU服务器Atlas 800T A2 / 800I A2采购价 / 折旧年限(通常5年)
CPU服务器管理节点、登录节点采购价 / 折旧年限
网络设备交换机、网卡(RoCE)采购价 / 折旧年限
存储设备NAS/分布式存储采购价 / 折旧年限
机柜/PDU机柜及配电采购价 / 折旧年限

Atlas 800T A2 参考价格

配置参考价格年折旧(5年)
Atlas 800T A2(8×910B)100-140万元20-28万/年
Atlas 800I A2(8×910B推理)80-120万元16-24万/年
Atlas 300I(310P推理卡)2-3万元/卡0.4-0.6万/年
Atlas 500 A2(边端)3-5万元/台0.6-1万/年

2. 软件成本

项目说明费用
CANN昇腾计算架构免费
MindSporeAI框架免费(开源)
MindFormers大模型库免费(开源)
MindIE推理引擎免费
Slurm作业调度免费(开源)
KubeSphere容器平台社区版免费/企业版收费
商业大模型盘古大模型等按许可收费
监控系统Prometheus + Grafana免费(开源)

昇腾优势:CANN + MindSpore + MindFormers全免费,软件成本极低。

3. 运维成本

项目说明参考费用
运维工程师硬件运维1人 × 15-25万/年
AI平台工程师平台维护1-2人 × 20-35万/年
算力运营专员计费/报表0.5人 × 12-18万/年
培训费用团队培训5-10万/年

4. 电费成本

python
# 电费计算
def calculate_power_cost(num_cards, power_per_card_w, hours_per_year, electricity_rate):
    """
    num_cards: NPU卡数
    power_per_card_w: 单卡功耗(瓦)
    hours_per_year: 年运行小时数
    electricity_rate: 电价(元/kWh)
    """
    total_power_kw = num_cards * power_per_card_w / 1000
    annual_kwh = total_power_kw * hours_per_year
    annual_cost = annual_kwh * electricity_rate
    return annual_cost

# 示例:80张910B卡
cost = calculate_power_cost(
    num_cards=80,
    power_per_card_w=400,  # 910B TDP约400W
    hours_per_year=8760,
    electricity_rate=0.8   # 工业电价
)
print(f"年电费: {cost:.1f}元 = {cost/10000:.1f}万元")
# 输出: 年电费: 224256.0元 = 22.4万元

各硬件功耗参考

硬件单卡/台功耗80卡年电费
Ascend 910B400W/卡22.4万元
Ascend 310P75W/卡4.2万元
Atlas 500 A260W/台-

注意:还需加上服务器其他组件功耗(CPU、内存、风扇等),通常NPU功耗约占总功耗的60-70%。

5. 场地成本

项目说明参考费用
机房空间机柜租用5000-15000元/机柜/月
网络带宽互联网/专线5000-20000元/月
制冷空调电费已含在电费或机房费用中

TCO计算示例

10台Atlas 800T A2训练集群5年TCO

成本项金额(万元)年化(万元)占比
硬件采购120024065%
电费11222.46%
运维人力175359%
场地网络90185%
软件许可000%
培训其他50103%
合计1627325.4100%

单位成本

  • 80张卡,年化成本325.4万元
  • 卡时成本 = 325.4万 / (80 × 8760) = 4.64元/卡时
  • 考虑85%可用率:5.46元/卡时

成本优化建议

降低TCO的策略

策略节省比例实施难度
提升利用率(30%→70%)相当于节省57%硬件投入
闲时利用(夜间+周末)提升30%+有效算力
vNPU分片减少30-50%推理卡数
模型量化(FP32→INT8)推理吞吐提升2-4倍
混合精度训练训练速度提升1.5-2倍
合理选型(推理用310P)推理成本降低60%+

成本可视化看板

建议建设以下成本看板:

看板核心内容更新频率
月度成本总览总成本/各团队成本/趋势
团队成本排行各团队月费用排行
卡时消耗趋势各团队卡时趋势
单位成本趋势元/卡时趋势
ROI分析各场景投入产出季度
成本预警超预算团队预警实时

下一步


本文档由昇腾AI解决方案架构师团队编写,持续更新中。最后更新:2026-08-26

AscendMate · AscendLA · GitHub 统计(近14天):仓库访问 次 · 独立访客 人 · 克隆