2
1
DCU技术达人
从CUDA到DTK:一名大模型工程师的海光DCU迁移实战笔记
2026-07-09 16:08:00
106
> 当“国产替代”不再是口号,而是我代码里实实在在跑起来的算力 我做了十年大模型工程,过去经手的每一张卡都姓“N”。从V100到A100再到H100,CUDA几乎成了我肌肉记忆的一部分。坦白说,直到去年之前,我对国产显卡的态度还是“再等等”。 但形势比人强。美国出口管制一轮比一轮紧,H20被切到性能腰斩再腰斩,算力卡的供应成了悬在头上的达摩克利斯之剑。2025年开始,我所在的团队正式启动了“国产算力适配”项目,**第一个深度接触的国产平台,就是[海光DCU](https://zhida.zhihu.com/search?content_id=277722155&content_type=Article&match_order=1&q=%E6%B5%B7%E5%85%89DCU&zhida_source=entity)。** 一年后的今天回头看,我想用一篇不那么“公关稿”的技术笔记,从一名工程师的真实视角,聊聊英伟达与海光的本质差异、迁移过程中的实操经验,以及我对国产算力现状的判断。 ## 一、市场格局:为什么你现在必须关注国产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](https://zhida.zhihu.com/search?content_id=277722155&content_type=Article&match_order=1&q=CUDA+Toolkit&zhida_source=entity) | DTK(DCU Toolkit) | | 编程框架 | [PyTorch](https://zhida.zhihu.com/search?content_id=277722155&content_type=Article&match_order=1&q=PyTorch&zhida_source=entity)/TF原生CUDA支持 | 需安装DAS适配版本(如torch-2.3.0+das.opt2.dtk24043) | | 推理引擎 | [TensorRT](https://zhida.zhihu.com/search?content_id=277722155&content_type=Article&match_order=1&q=TensorRT&zhida_source=entity)、vLLM原生 | vLLM需使用DAS专用版(如vllm-0.6.2+das.opt1.dtk24043) | | 算子库 | [cuDNN](https://zhida.zhihu.com/search?content_id=277722155&content_type=Article&match_order=1&q=cuDNN&zhida_source=entity)、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模型](https://zhida.zhihu.com/search?content_id=277722155&content_type=Article&match_order=1&q=Qwen%E6%A8%A1%E5%9E%8B&zhida_source=entity) 下面这段内容来自我的真实操作记录,希望能给准备入手的同行省点踩坑时间。 ### 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](https://link.zhihu.com/?target=https%3A//download.sourcefind.cn%3A65024/directlink/4/pytorch/DAS1.3/torch-2.3.0%2Bdas.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](https://zhida.zhihu.com/search?content_id=277722155&content_type=Article&match_order=1&q=DeepSeek+V3%2FR1&zhida_source=entity)、Qwen3等主流大模型深度适配,可实现“当日无缝适配与深度调优”。政务、金融等需要数据不出境的场景尤其适合。 * **AI for Science**:海光在高能物理、基因组学、流体仿真、分子动力学等领域有大量落地案例。中国科学院高能物理所的“溪悟”大模型、自动化所的“[紫东太初](https://zhida.zhihu.com/search?content_id=277722155&content_type=Article&match_order=1&q=%E7%B4%AB%E4%B8%9C%E5%A4%AA%E5%88%9D&zhida_source=entity)”均跑在海光DCU上。 * **信创替代项目**:要求国产化率、符合安全合规要求的场景,海光是目前少数能真正跑起来大模型的国产算力方案之一。 ### ⚠️ 谨慎场景 * **大规模预训练**:虽然海光支持训练,但相比英伟达最新旗舰仍有性能差距。建议先从小模型验证,逐步扩展。 * **依赖CUDA专有库的复杂项目**:如果项目中大量使用NCCL、cuGraph等CUDA生态专有库,迁移成本会显著增加。 ## 五、我的判断:国产算力正在跨越“可用”到“好用”的鸿沟 如果你问我:现在能不能全面切换海光? 我的回答是:**分场景、分阶段、不盲从、不回避。** **在推理场景**,我认为已经可以规模化使用。成本优势、供应链安全、政策合规三重驱动下,海光DCU已经是一个合格的选项。 **在训练场景**,建议保持“混合算力”策略——核心训练用英伟达,微调、推理、周边任务逐步切国产。国产训练生态还在快速追赶中,需要给它一点时间。 海光目前已完成与国内外主流大模型的全面适配,算子覆盖度对标CUDA超99%,光合组织生态伙伴超6000家。我亲身验证过的是:**你不需要重学一门新语言,只需要多花一点时间处理版本兼容性,就能跑起你的模型**。 从一个依赖CUDA十几年的工程师角度说,切换从来不容易。但我更不愿意看到的是:哪天算力卡真的断供了,才手忙脚乱地从头学起。 **国产算力,已经值得你认真看一看、亲手试一试了。**
全部评论(0)
只看楼主
暂无数据
--
楼主
Level.3
0 帖子
楼主热帖
暂无数据