当“国产替代”不再是口号,而是我代码里实实在在跑起来的算力
我做了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 关键经验总结
版本锁定:DTK版本、PyTorch版本、flash_attn版本、vLLM版本必须严格匹配,建议用官方文档推荐的组合。
推理优先:目前海光DCU在推理场景最成熟,训练场景建议从小规模起步验证。
迁移成本:如果你的代码只用PyTorch标准API,迁移成本很低。如果用到了cuDNN/cuBLAS等底层库,需要替换为海光对应实现。
关注更新:海光的软件栈迭代很快,建议关注光合开发者社区的版本更新公告。
四、适用场景:海光DCU该用在哪儿?
基于我的实操经验,给一个务实的建议:
✅ 推荐场景
大模型推理部署:海光DCU已与DeepSeek V3/R1、Qwen3等主流大模型深度适配,可实现“当日无缝适配与深度调优”。政务、金融等需要数据不出境的场景尤其适合。
AI for Science:海光在高能物理、基因组学、流体仿真、分子动力学等领域有大量落地案例。中国科学院高能物理所的“溪悟”大模型、自动化所的“紫东太初”均跑在海光DCU上。
信创替代项目:要求国产化率、符合安全合规要求的场景,海光是目前少数能真正跑起来大模型的国产算力方案之一。
⚠️ 谨慎场景
大规模预训练:虽然海光支持训练,但相比英伟达最新旗舰仍有性能差距。建议先从小模型验证,逐步扩展。
依赖CUDA专有库的复杂项目:如果项目中大量使用NCCL、cuGraph等CUDA生态专有库,迁移成本会显著增加。
五、我的判断:国产算力正在跨越“可用”到“好用”的鸿沟
如果你问我:现在能不能全面切换海光?
我的回答是:分场景、分阶段、不盲从、不回避。
在推理场景,我认为已经可以规模化使用。成本优势、供应链安全、政策合规三重驱动下,海光DCU已经是一个合格的选项。
在训练场景,建议保持“混合算力”策略——核心训练用英伟达,微调、推理、周边任务逐步切国产。国产训练生态还在快速追赶中,需要给它一点时间。
海光目前已完成与国内外主流大模型的全面适配,算子覆盖度对标CUDA超99%,光合组织生态伙伴超6000家。我亲身验证过的是:你不需要重学一门新语言,只需要多花一点时间处理版本兼容性,就能跑起你的模型。
从一个依赖CUDA十几年的工程师角度说,切换从来不容易。但我更不愿意看到的是:哪天算力卡真的断供了,才手忙脚乱地从头学起。
国产算力,已经值得你认真看一看、亲手试一试了。