当“国产替代”不再是口号,而是我代码里实实在在跑起来的算力

我做了10年大模型工程师,过去经手的每一张卡都姓“N”。从V100到A100再到H100,CUDA几乎成了我肌肉记忆的一部分。坦白说,直到去年之前,我对国产显卡的态度还是“再等等”。

但形势比人强。美国出口管制一轮比一轮紧,H20被切到性能腰斩再腰斩,算力卡的供应成了悬在头上的达摩克利斯之剑。2025年开始,我所在的团队正式启动了“国产算力适配”项目,第一个深度接触的国产平台,就是海光DCU。

一年后的今天回头看,我想用一篇不那么“公关稿”的技术笔记,从一名工程师的真实视角,聊聊英伟达与海光的本质差异、迁移过程中的实操经验,以及我对国产算力现状的判断。

一、市场格局:为什么你现在必须关注国产GPU?

先说一个震撼我的数据:2025年中国AI加速卡市场,国产份额首次稳定突破40%,英伟达在华份额从三年前的95%暴跌至约8%。 华为昇腾单家出货逼近百万张,海光营收突破百亿,寒武纪首次扭亏。

这不是政策驱动的“虚假繁荣”。字节、阿里、百度、腾讯等头部互联网公司已经开始批量采购国产算力。黄仁勋2025年三次到访中国,公开承认“任何低估华为、低估中国制造能力的人都极其天真”。

作为一名工程师,我读到这句话时感触很深:我们曾经认为牢不可破的CUDA护城河,正在被“需求倒逼+自主突破”双重力量一点点填平。

二、架构差异:海光DCU和英伟达GPU到底有什么区别?

2.1 本质定位:都是GPGPU,但出身不同

英伟达GPU是自研架构,从底层指令集到上层软件栈完全闭源自控。而海光DCU基于GPGPU(通用图形处理器)架构,兼容“类CUDA”通用并行计算环境

通俗点说:海光走的不是“另起炉灶”,而是“兼容并蓄”。它的目标不是让你重学一套新东西,而是让你用几乎相同的方式写代码,跑在不同的硬件上

2.2 软件栈对比:CUDA vs DTK

这是最核心的差异点。我从实操层面拆解:

维度 英伟达 海光DCU
开发套件 CUDA Toolkit DTK(DCU Toolkit)
编程框架 PyTorch/TF原生CUDA支持 需安装DAS适配版本(如torch-2.3.0+das.opt2.dtk24043)
推理引擎 TensorRT、vLLM原生 vLLM需使用DAS专用版(如vllm-0.6.2+das.opt1.dtk24043)
算子库 cuDNN、cuBLAS(>3000个算子) 已集成超2000个算子,对标CUDA覆盖度超99%
生态规模 CUDA开发者590万 光合组织凝聚超6000家伙伴,完成1.5万适配

实际感受是:海光的软件栈已经“能用”,但距离“好用”还有一段距离。最典型的例子:你需要精确匹配DTK版本、PyTorch版本、flash_attn版本,稍有不慎就会报错。而CUDA生态几乎做到了“随便装、都能跑”。

2.3 硬件性能:纸面差距与实际差距

单看指标,国产旗舰与英伟达上一代主力差距在缩小,但仍有距离。

以海光深算三号BW1000为例,其支持FP64/FP32/FP16/TF32/BF16/INT8全精度,显存带宽与容量匹配千亿参数大模型需求。在实际科研场景中,海光DCU的计算效率超过CPU单核107倍,冷冻电镜算法并行效率达91.7%

但也要客观承认差距。昇腾910C单卡实测约为H100的六成性能。而“纸面算力”到“实际工作负载性能”之间,还有生态成熟度带来的20%左右折损。HBM带宽、NVLink级互联、制程工艺仍是国产芯片的硬约束。

不过,海光在推理场景已经可以规模化落地了。这正是现阶段国产算力最务实的定位。

三、实操笔记:从零到一在海光DCU上部署Qwen模型

下面这段内容来自我的真实操作记录,希望能给准备入手的同行省点踩坑时间。

3.1 环境准备——版本匹配是第一要务

首先确认DTK版本:

bash

ls -l /opt/ | grep dtk
# 输出: drwxr-xr-x 10 root root 4096 10月 22 10:15 dtk-24.04.3

这是整个迁移最关键的一步。 海光的依赖版本比CUDA生态“敏感”得多。我在一次生产环境部署中吃过亏——开发环境跑的没问题,上生产就报错,最后发现是flash_attn的opt1/opt2版本不一致导致的。

3.2 安装PyTorch——别从官方源装

不能在PyTorch官网直接装。需要从光合开发者社区下载对应DTK版本的whl包:

bash

wget https://download.sourcefind.cn:65024/directlink/4/pytorch/DAS1.3/torch-2.3.0+das.opt2.dtk24043-cp310-cp310-manylinux_2_28_x86_64.whl
pip install torch-2.3.0+das.opt2.dtk24043-cp310-cp310-manylinux_2_28_x86_64.whl

同样的,flash_attn、vLLM都需要装带das.dtk后缀的版本。

3.3 验证安装

bash

python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"
# 输出:
# 2.3.0
# True

这里有个小细节:海光DCU虽然不用NVIDIA驱动,但为了保持框架兼容性,torch.cuda.is_available()仍返回True——这是DAS的兼容层在起作用。

3.4 部署Qwen2.5-32B模型

下载模型(从魔搭社区):

bash

pip install modelscope
modelscope download --model Qwen/Qwen2.5-32B-Instruct --local_dir ./qwen-32b

启动推理服务:

bash

python -m vllm.entrypoints.openai.api_server \
    --model ./qwen-32b \
    --served-model-name qwen-32b \
    --host 0.0.0.0 \
    --port 8000 \
    --tensor-parallel-size 8  # 根据DCU卡数修改

成功启动后,就能用OpenAI兼容接口调用了。

3.5 关键经验总结

  1. 版本锁定:DTK版本、PyTorch版本、flash_attn版本、vLLM版本必须严格匹配,建议用官方文档推荐的组合。

  2. 推理优先:目前海光DCU在推理场景最成熟,训练场景建议从小规模起步验证。

  3. 迁移成本:如果你的代码只用PyTorch标准API,迁移成本很低。如果用到了cuDNN/cuBLAS等底层库,需要替换为海光对应实现。

  4. 关注更新:海光的软件栈迭代很快,建议关注光合开发者社区的版本更新公告。

四、适用场景:海光DCU该用在哪儿?

基于我的实操经验,给一个务实的建议:

✅ 推荐场景

  • 大模型推理部署:海光DCU已与DeepSeek V3/R1、Qwen3等主流大模型深度适配,可实现“当日无缝适配与深度调优”。政务、金融等需要数据不出境的场景尤其适合。

  • AI for Science:海光在高能物理、基因组学、流体仿真、分子动力学等领域有大量落地案例。中国科学院高能物理所的“溪悟”大模型、自动化所的“紫东太初”均跑在海光DCU上。

  • 信创替代项目:要求国产化率、符合安全合规要求的场景,海光是目前少数能真正跑起来大模型的国产算力方案之一。

⚠️ 谨慎场景

  • 大规模预训练:虽然海光支持训练,但相比英伟达最新旗舰仍有性能差距。建议先从小模型验证,逐步扩展。

  • 依赖CUDA专有库的复杂项目:如果项目中大量使用NCCL、cuGraph等CUDA生态专有库,迁移成本会显著增加。

五、我的判断:国产算力正在跨越“可用”到“好用”的鸿沟

如果你问我:现在能不能全面切换海光?

我的回答是:分场景、分阶段、不盲从、不回避。

在推理场景,我认为已经可以规模化使用。成本优势、供应链安全、政策合规三重驱动下,海光DCU已经是一个合格的选项。

在训练场景,建议保持“混合算力”策略——核心训练用英伟达,微调、推理、周边任务逐步切国产。国产训练生态还在快速追赶中,需要给它一点时间。

海光目前已完成与国内外主流大模型的全面适配,算子覆盖度对标CUDA超99%,光合组织生态伙伴超6000家。我亲身验证过的是:你不需要重学一门新语言,只需要多花一点时间处理版本兼容性,就能跑起你的模型

从一个依赖CUDA十几年的工程师角度说,切换从来不容易。但我更不愿意看到的是:哪天算力卡真的断供了,才手忙脚乱地从头学起。

国产算力,已经值得你认真看一看、亲手试一试了。

Logo

免费领 200 小时云算力,进群参与显卡、AI PC 幸运抽奖

更多推荐