
一、L0 原型验证级:跑通单卡Demo(入门门槛)
等级特征
这是所有DCU项目的起点,核心目标只有一个:验证算法和功能在DCU上可以正确运行,没有任何工程化要求,以可行性验证为唯一目的。
大部分个人练手项目、算法预研项目都停留在这个阶段,代码只需要自己能看懂、能跑就行,不需要考虑协作、部署、维护问题。
底线达标要求
HIP内核代码可正常编译通过,无语法错误
单卡运行输出结果正确,和CPU基线结果逻辑一致
核心计算逻辑在DCU上功能验证通过
常见卡点
CUDA代码转HIP的语法适配、基础编译错误、DCU环境配置问题,都是这个阶段的典型问题,解决完就能进入下一级。
阶段产出物
可运行的单卡Demo代码,无规范要求。
二、L1 可复现级:环境与结果可稳定复现(生产最低门槛)
等级特征
从“我能跑通”升级到“任何人拿到代码都能跑通”,解决环境不一致、结果不稳定的问题。这是项目能交给别人、能上测试环境的最低门槛。
很多团队的项目卡在L0到L1之间:换台机器编译报错、换个DTK版本结果不对、不同人跑出来的性能差一倍,本质是没有做版本和环境的标准化。
必做工程化工作
依赖版本全锁定:明确标注DTK版本、编译器版本、NetCDF/FFTW等第三方依赖的具体版本,禁止“随便装个最新版”
编译脚本标准化:提供一键编译脚本,所有编译参数写死在脚本里,不需要手动改命令、手动配路径
基础精度校验:自带1-2个基准测试用例,跑完自动和CPU基线对比误差,超过阈值直接报错,避免“看起来跑通了其实结果错了”
阶段产出物
可复现代码包 + 一键编译脚本 + 基础校验脚本,任何人拿到都能跑出一致结果。


三、L2 可维护级:支持多人协作与长期迭代
等级特征
从“一个人能维护”升级到“团队多人能共同开发”,解决代码乱、改不动、改完容易出问题的协作痛点。项目进入长期迭代阶段必须达到这个等级。
这个阶段最常见的问题是:代码全写在一个文件里、没有注释、改一个功能全链路崩、新人接手要读一周代码,本质是没有工程规范和测试体系。
必做工程化工作
标准化目录结构:内核代码、宿主逻辑、测试用例、配置文件、部署脚本分层存放,职责清晰,新人一眼能找到对应内容
代码规范统一:统一命名规则、错误处理方式、日志格式,所有DCU API调用必须做返回值检查,禁止静默失败
回归测试体系:搭建精度回归+性能回归双测试,每次代码提交自动跑用例,确保改代码不引入精度问题、不导致性能回退
版本管理规范:明确分支策略、发布流程、变更记录,每个版本都能追溯改了什么、对性能有什么影响
阶段产出物
符合规范的可维护项目 + 回归测试体系,支持3-5人团队并行开发。


四、L3 可部署级:可稳定在集群上线运行
等级特征
从“本地能跑”升级到“集群上能稳定跑批量作业”,解决部署混乱、作业失败率高、出问题查不到原因的生产痛点。要上线正式业务的项目必须达到这个等级。
很多项目本地测试一切正常,一上并行集群就各种问题:作业随机失败、性能波动大、出问题找不到日志,本质是没有做集群适配和部署标准化。
必做工程化工作
标准化部署脚本:统一SLURM作业模板,规范资源申请、环境加载、日志输出规则,内置异常重试和错误退出机制
环境隔离方案:用module模块管理或容器化部署,支持多版本DTK共存,不同项目互不干扰,避免环境串掉的诡异bug
运行监控体系:作业状态监控、异常告警、核心性能指标采集,作业跑的时候能看到进度,挂了能第一时间收到通知
故障排查SOP:规范日志格式,整理常见问题排查流程,新人也能按步骤定位80%的常见故障
阶段产出物
标准化部署包 + 监控排查体系,可在集群稳定运行批量生产作业。


五、L4 规模化级:支持多项目复用与大规模集群运行
等级特征
从“单个项目能跑”升级到“所有DCU项目都能复用工程能力”,解决每个新项目从零搭架子、重复造轮子的效率问题。团队有多个DCU项目、大规模集群场景需要达到这个等级。
这是DCU工程能力的最高阶段,核心是把单个项目的经验沉淀成通用能力,提升整个团队的DCU开发效率。
必做工程化工作
通用能力组件化:把异构接口封装、公共计算算子、数据预处理、工具函数抽成通用公共库,新项目直接引用,不用重复写
自动化流水线:编译、测试、部署全流程自动化,代码提交自动跑测试、自动构建版本、自动部署到测试环境
性能基线体系:建立全场景性能基准库,所有优化效果都可以和基线量化对比,避免“感觉变快了”的主观判断
统一工程标准:所有DCU项目遵循统一的目录规范、测试标准、部署标准,新项目可以直接套用模板快速启动
阶段产出物
DCU项目通用脚手架 + 自动化研发流水线,支持多项目并行、大规模集群部署。
DCU项目脚手架初始化脚本(L4必备)



七、最终总结
很多开发者做DCU项目,一上来就死磕内核性能优化,忽略了最基础的工程化建设。但真实的生产项目里,90%的问题都不是性能问题,是环境、协作、部署这些工程问题。
先把项目的成熟度等级提上来,再谈性能优化,才是长期迭代的正确顺序。一个L3级的普通性能项目,远比一个L0级的跑分Demo更有价值。
希望这个五级成熟度模型,能帮你清晰定位自己的项目阶段,一步步把DCU项目从原型做成稳定的生产级系统。