华为昇腾910A NPU 的机密计算方案 ASCEND-CC 论文解读
参考 https://blog.csdn.net/qq_41691212/article/details/142111046
据了解还在论文阶段。
文章由ai生成
一句话概括
让 AI 模型和数据在云端"黑箱"里安全运行------云厂商看不到、改不了,而且几乎不影响性能。
为什么要做这件事?(痛点)
现在大模型(如 ChatGPT)都跑在云端,但这里面有三方互相不信任:
- 模型厂商:怕自己的模型(知识产权)被云厂商偷走
- 数据用户:怕自己的隐私数据(病历、商业机密)被泄露
- 云厂商:提供机器,但其他两方不信任它
以前的安全方案主要靠 CPU 的"保险箱"(TEE),但问题是:
- AI 计算主要在 NPU/GPU,CPU 的保险箱管不到加速器
- Nvidia 的方案需要 CPU 也可信,链条太长,容易出漏洞
- 以前的学术方案要么只支持老模型,要么需要改硬件、改 PyTorch,不实用
ASCEND-CC 怎么解决?(核心思路)
简单说就是:只信 NPU 芯片本身,主机(CPU、操作系统、驱动)一律视为不可信。
具体做法像"快递加密 + 密室执行":
| 步骤 | 通俗解释 |
|---|---|
| 加密传输 | 模型和数据像"加密快递"一样发给 NPU,主机全程只能看到乱码 |
| 切断通道 | 数据进 NPU 解密前,先把主机的 DMA 访问权限拔掉(像关上门反锁) |
| 密室计算 | NPU 在内部解密、执行 AI 推理,此时主机完全看不到内存 |
| 加密输出 | 算完结果先加密,再重新开门(恢复 DMA)传回主机 |
| 验明正身 | NPU 启动时验证固件是否官方正版,防止被刷恶意固件 |
| 任务防篡改 | 检查 AI 模型的执行步骤有没有被恶意修改(比如防止偷插"复制模型参数"的指令) |
关键亮点
- 不依赖 CPU 安全机制:只信任 NPU 芯片,主机就算被黑客完全控制也不怕
- 对 PyTorch 零改动:开发者不用改代码,直接用现有 AI 框架
- 专注大模型:针对 Llama2/3 这类现代 LLM 优化,不像老方案只支持小模型
- 单租户设计:大模型本身就吃满显存,没必要搞多租户共享,反而更安全
效果怎么样?
在华为昇腾 910A 上实测多个主流大模型(Llama-2/3、CodeLlama 等):
- 性能开销极低 :推理延迟只增加 0.028% ~ 0.91%,几乎无感
- 一次性初始化:首次设置有少量开销,之后正常运行
总结
ASCEND-CC 相当于给昇腾 NPU 打造了一个**"独立保险柜"**------模型和数据加密进去,在里面明文计算,但主机全程被隔离在外,算完加密出来。既防云厂商偷窥,又防黑客攻击,还不用改代码。
和H100 安全飞地 对比
不能简单说"差一些",而是设计理念不同、适用场景不同 。客观来看,两者是互有优劣:
1. 信任模型:ASCEND-CC 信任依赖更少
| 维度 | Nvidia-CC (H100) | ASCEND-CC (昇腾平台) |
|---|---|---|
| 信任主机吗? | 常见配置下需信任 CPU 端的机密虚拟机(C-VM)及部分驱动;但也支持仅信任 GPU 的模式(纯 GPU 证明) | 完全不信任主机,只信 NPU 芯片本身 |
| TCB(可信代码量) | 较大:NPU + CPU TEE + 驱动 + 安全处理器(协同模式) | 较小:仅 NPU 内部 |
| 被攻击面 | CPU 侧通道攻击可能影响协同模式下的密钥交互;纯 GPU 模式可避免 | 主机被完全攻破也不影响 NPU 内数据 |
通俗说 :Nvidia-CC 可根据场景选择"CPU 与 GPU 联手"或"GPU 独立守秘",灵活性高,但协同模式下若 CPU 可信域被侧信道攻击,可能增加风险。ASCEND-CC 设计上完全斩断对主机的依赖,像"NPU 自己单干",主机被黑客全控也碰不到数据。因此,ASCEND-CC 的信任模型更纯粹,受攻击面更小。
2. 多租户 vs 大模型:场景选择不同
| 维度 | Nvidia-CC (H100) | ASCEND-CC (昇腾平台) |
|---|---|---|
| 空间共享/多租户 | ✅ 支持(MIG 切分) | 论文场景为单租户,未涉及空间共享 |
| 资源利用率 | 云厂商爱用(一卡多租) | 大模型本身吃满显存,切分意义不大 |
通俗说 :Nvidia-CC 更适合"云厂商把一张 H100 切成多块租给不同客户";ASCEND-CC 论文认为"当前 Llama-70B 等大模型一张卡都装不下,切分无必要,独占更安全"。这不是技术差距,是产品定位差异。
3. 生态与成熟度:H100 确实领先
| 维度 | Nvidia-CC (H100) | ASCEND-CC (昇腾平台) |
|---|---|---|
| 软件生态 | CUDA + PyTorch/TensorFlow,生态无敌 | CANN + 适配层,生态仍在追赶 |
| 硬件安全 | 原生集成安全处理器,硬件级支持 | 修改固件实现,基于现有芯片(论文方案) |
| 商用状态 | 已商用(AWS、Azure、GCP 已上线) | 目前为学术论文/预印本阶段 |
| 编程接口 | 开发者几乎无感 | 需要 torch_npu 适配层 |
这一点上 H100 确实更强。 毕竟 Nvidia 是行业标准,CUDA 生态护城河深,且 H100 的机密计算是硬件原生设计,ASCEND-CC 是论文中基于现有芯片修改固件的方案。学术方案与成熟商用产品有差距,是技术演进中的正常过程。
4. 性能开销:两者都很低
据论文实验,ASCEND-CC 在特定模型和精度下的推理开销仅为 0.028%~0.91% ;Nvidia 官方在特定条件下宣称"接近零开销"。这方面两者基本打平。
总结
不是"差一些",而是"各有取舍":
- 若看重"绝对安全"与"自主可控":ASCEND-CC 的信任模型更干净(不依赖主机 CPU),更适合防云厂商偷窥模型、国产替代等场景。
- 若看重"生态成熟度、多租户、商用落地":H100 的 Nvidia-CC 目前更成熟,云厂商容易接入,且提供了灵活的空间共享能力。
打个比方:
- H100 像"精装公寓"------拎包入住(CUDA 生态),还能合租(MIG),物业(CPU)可协作,但也能独立加固。
- 昇腾 ASCEND-CC 像"自建安全屋"------自己搭(生态仍在建设),独门独院(当前聚焦单租户),且完全不依赖物业(主机)。
对于大模型推理这个特定场景,ASCEND-CC 的设计逻辑是成立的;但作为学术方案,它距离 H100 的商业产品成熟度还有显著距离。
分维度看,结论不同。
1. 技术理念层面:很行,甚至有点超前
"不依赖 CPU TEE,只信任 NPU 本身"这个思路,比 Nvidia-CC 更干净。现在 CPU TEE(Intel TDX、AMD SEV)漏洞频出,侧信道攻击不断,把安全锚点完全放到 NPU 内部是更现代的设计。
评价:方向是对的,理念领先。
2. 论文原型层面:行,但有限制
文章说在昇腾 910A 上修改固件实现了整套方案,跑通了 Llama2/3、CodeLlama 等主流大模型,性能开销确实极低(<<1%)。
但注意几个细节:
- 修改固件:这不是用户能随便做的,需要华为官方支持或开放固件权限
- 单租户:大模型本身吃满显存,所以不共享是合理的,但云厂商可能不喜欢(不能一卡多租)
- 调试功能全关:对运维不友好,出问题难排查
评价:学术验证通过了,但工程化还有不少坑。
3. 商用落地层面:目前不太行
对比 Nvidia-CC:
| 维度 | Nvidia-CC (H100) | ASCEND-CC |
|---|---|---|
| 状态 | 已商用,AWS/Azure/GCP 上线 | 2024 Arxiv 论文,无商用消息 |
| 生态 | CUDA 无缝衔接 | 依赖 CANN + torch_npu 适配 |
| 硬件支持 | 原生安全处理器 | 基于现有芯片改固件 |
| 云厂商接受度 | 高 | 未知 |
评价:离真正给云厂商拿去卖服务,还有产品化、标准化、合规认证的距离。
4. 国产替代层面:行,且有意义
如果你问的是"国产 NPU 能不能做机密计算",那 ASCEND-CC 证明了昇腾可以做到,而且思路和性能都不差。这对国内做 AI 云服务的厂商(比如华为云、电信运营商)有参考价值------至少技术路径是通的。
评价:对国产 AI 芯片安全生态有实际价值。
5. 开发者用起来行不行?暂时不太行
普通开发者现在用不了:
- 没有开源代码
- 没有公开 API
- 没有云服务实例可以勾选"启用 ASCEND-CC"
- 需要等华为把这套方案产品化
评价:目前只是"论文可行",不是"产品可用"。
一句话总结
学术上站得住,工程上走得通,但产品化还没影。
如果你是研究人员或国产芯片从业者 :这个方案很行,值得关注。
如果你是想上云的开发者或企业:暂时还不行,等华为官方产品化。目前选 H100 的 Nvidia-CC 更现实。
目前没开源。
我搜了一圈,没找到 ASCEND-CC 这篇论文对应的公开代码仓库。论文里说的是"通过修改固件在昇腾 910A 上实现",这本身就暗示了几件事:
- 学术原型阶段:论文是 2024 年挂在 Arxiv 上的,属于研究性质,不是产品
- 需要固件级权限:修改 NPU 固件不是普通开发者能随便做的,需要华为官方支持
- 没有公开 repo:论文里没提 GitHub/Gitee 链接,网上也搜不到对应的开源项目
现在能拿到什么?
昇腾生态里其他东西是开源的,比如:
- CANN 部分组件(Gitee 上能看到 HCCL 通信库等)
- Triton-Ascend(GitHub 开源,昇腾版的 Triton 推理服务器)
- MindSpeed 、MindSpore 等框架
但 ASCEND-CC 这个机密计算方案本身 ,目前就是论文 + 概念验证,没有对外放代码。
结论
现在用不了,也看不到代码。
如果你是想研究这个方向,只能读论文;如果你是想在昇腾上落地机密计算,只能等华为官方把这套方案产品化(比如集成到 CANN 或昇腾云服务里),或者自己基于论文思路做类似实现。