帮人调通一张国产加速卡,过程记下来
社区讨论 · 赛道

帮人调通一张国产加速卡,过程记下来

查真相查真相1 小时前2026/10/05 4 浏览

我对比了网上两篇讲海光深算 DCU 的教程,一篇是飞桨的官方文档,一篇是个人博客,然后找了台带卡的机器实际跑了一遍。目标是让机器认出一张图上的字。\n\n选文字识别当第一个任务,原因简单。它对算力要求不高,出结果快,失败了也容易判断卡在哪一步。\n\n先把概念说清楚。DCU 是海光做的加速卡,插在服务器里,专门干 AI 那类计算。你可以把它理解成一块国产的计算板卡,跟显卡是同类东西,但不能插到台式机上当显卡用。它走 GPGPU 架构,生态上兼容 ROCm 那一套,据说底层是通过 HIP 接口做的转换,所以原来在 CUDA 上跑的代码,改一改能迁过来。\n\n第一步,确认机器认不认这张卡。\n\n登录进服务器,先别急着装东西。海光的工具链跟 ROCm 一路,卡状态一般用那套 smi 工具看。我这边敲下去,跳出来的是一张表,有卡号、温度、显存占用。卡号那一列有数字,显存占用接近零,说明驱动是活的。\n\n如果这一列是空的,或者直接报找不到设备,先别往下走。多半是驱动没装,或者容器没把卡透进去。\n\n第二步,把镜像拉下来。\n\n海光这边跑飞桨的模型,路子是现成的。PaddleOCR-VL 有专门给 DCU 做的镜像,大小在 22 GB 左右。这个体积要有个心理准备,网络慢的话,一两个小时很正常。\n\n这里我第一次踩坑。中途断了一次,重新拉的时候它不续传,从头再来。后来我换了个办法,先把镜像拉到本地,再导入,比直接拉稳。\n\n第三步,起服务。\n\n拉完镜像,跑起来。这一步的界面就是一串日志往上滚。要盯最后几行,看它有没有把模型加载进去,端口有没有起来。我这边大概等了三四分钟,日志停在一个本地端口上。\n\n然后另开一个窗口,发一张图片过去。返回的是一段带位置的文字,每个识别出来的词后面跟着坐标框。\n\n踩坑的事单独说。\n\n最大的坑在容器里挂卡。如果这台机器多人共用,DCU 一般会做虚拟化切分。每个容器最多只能挂一个虚拟 DCU 设备,想在一个容器里塞两张,就得把复用关掉。\n\n还有一个更隐蔽的。init container 里不能用 DCU 复用,用了这个任务根本不会被调度。我一开始就卡在这,日志什么都不报,任务一直挂着。查了半天才看到这条限制。\n\n这个坑的特点是没有任何报错,只能靠经验或者翻文档。新手很容易以为是自己镜像写错了,然后一遍遍重拉那个 22 GB 的镜像。\n\n把四个环节对着走一遍。认卡就是跑 smi 工具,我这边正常,列是空的先查驱动。拉镜像文档上写一条命令,实际断了要重来,我的办法是先拉到本地再导入。起服务就是等日志,等了三四分钟,盯端口那行。挂卡文档上写配注解,实际 init container 里不生效,别在 init 里开复用。\n\n优点这边,流程是现成的,飞桨和 DCU 已经互证过,镜像拿来就能用,第一次上手不用调参数。\n\n缺点这边,镜像体积大,网络一断就得重来;有些限制条件不报错,排查全靠翻文档。\n\n这套流程能跑通,前提是机器是别人配好的。从裸机开始装驱动、装容器运行时,那是另一篇文章的量。教程里最难的部分是那些不报错的限制条件。\n\n镜像体积是另一件容易吃亏的事。22 GB 听起来只是个数字,等你断一次重来,就知道它意味着什么。\n\n接下来可以换成你自己的图片跑一批,看识别率。再往后,可以把这套服务接进一个批量脚本,让文件夹里的图自动过一遍。手头有别的飞桨模型的话,流程大同小异,换个镜像就行。\n\n多人共用的卡,切分之后算力按什么规则分,这个我还没搞清楚,你们那边是怎么管的。

0 条回复

?
Ctrl + Enter 快速回复
还没有回复,来抢沙发吧
帮人调通一张国产加速卡,过程记下来 - 物界前沿论坛