作为深度参与过昇腾CANN生态迁移的工程师,我最初对DeepSeek V4所谓的“芯模协同”持怀疑态度——毕竟过去两年,所谓“国产算力突破”往往停留在PPT层面。但这次AIGCode在昇腾上实现MoE模型MFU达65%的数据,确实让我眼前一亮。这个数字接近行业平均两倍,说明CANN生态从“幼儿期”步入“青年期”不是空话。个人经验是,之前迁移LLM模型时,算子适配和内存碎片是两大痛点,CANN 7.0之后的自动调优工具和动态shape支持才真正让我觉得“能用”。对比CUDA+英伟达体系,DeepSeek V4这次在超大规模工程化尺度上验证了协同可行性,填补了生态护城河。但问题来了:这种高性能能否在非华为芯片上复现?比如寒武纪或海光的生态是否也能达到类似MFU?另外,金融和科研领域的核心业务迁移,是否有实际案例能分享下部署后的稳定性表现?从行业格局看,芯模协同一旦标准化,国产算力平台从“备选”跃升为“首选”将成为可能,但关键在于生态工具链的成熟度和社区贡献的持续性。
芯模协同不是噱头,DeepSeek V4实测让我改观了
全部回复
共 32 条这帖子看得我直点头,你在CANN上踩过的算子适配和内存碎片坑,我迁移MoE模型时也全体验过一遍。不过CANN 7.0之后自动调优确实支棱起来了,动态shape支持也解决了之前“跑一次调半天”的痛点。不过话说回来,MFU 65%这个数是在多大规模集群上跑出来的?我好奇的是,如果卡数翻倍,这个协同效率还能保持住吗,毕竟通信瓶颈往往才是国产集群的硬伤。
看到MFU 65%这个数据确实有点震撼,我去年用CANN 6.x跑过几轮MoE模型,当时连稳定收敛都磕磕绊绊,算子得手动抠半天,动不动就OOM。7.0之后动态shape和自动调优确实把体验拉高了一个台阶,但当时我测的MFU大概也就35%左右,所以V4这个65%如果是实打实跑出来的,那CANN这波迭代确实猛。
不过有个细节我想追问一下:这个MFU数据是单卡还是8卡或者更大集群?跨节点通信有没有做特殊的拓扑优化?因为我之前试过在昇腾上跑千亿级MoE,最头疼的是All-to-All通信在非NVLink场景下的开销,即使CANN做了RDR和混合精度优化,多机之间带宽瓶颈依然明显。如果V4能把这个压下来,那就真的接近可工程化了。
另外,AIGCode这个团队之前好像主要做推理优化,这次训练侧的数据是他们自己复现的,还是团队官方公布的?如果是前者,那环境配置和具体参数有没有公开?我挺想自己动手复现一下,毕竟“芯模协同”这个口号喊了两年,终于有实例能落地了。内存碎片问题你提的也很准,CANN之前的内存池管理确实糙,经常跑着跑着显存残片就炸了,7.0之后有改善,但跟CUDA的cudaMallocAsync比还是有差距,不知道V4有没有针对这个做专门的显存调度策略?
AIGCode那个MFU 65%的数据我也仔细看了,确实不是虚标。之前我们团队在昇腾上跑MoE,光算子融合就折腾了大半个月,CANN 7.0之前的版本对动态shape的支持简直反人类,内存碎片问题严重到得手动去调tiling策略,稍微大一点的batch就崩。现在这个自动调优工具算是补上了最关键的短板,至少能让工程落地少走一半弯路。
不过我想问个实际点的:这个65%的MFU是在多少卡规模下测的?是单机8卡还是多机互联?如果上了万卡集群,通信拓扑和跨机带宽的瓶颈依然存在。DeepSeek V4那个芯模协同,本质上靠的是昇腾的HCCS和CANN的通信算子库做软硬联合优化,但实际部署时,如果机房是旧拓扑的IB网络或者以太网,性能衰减能控制在多少?我们之前测过类似方案,千卡以下还行,一旦跨机群,通信延迟会把MFU直接打下来15个点。
另外,算子适配这块,DeepSeek V4有没有给出针对MoE的稀疏激活场景的专用算子库?如果只是靠通用算子走自动调优,遇到专家路由不均匀的情况,负载均衡和内存复用还是会有坑。建议你们可以放一下在真实业务负载下的长稳测试数据,比如连续跑48小时后的显存碎片率和吞吐抖动,这个比单点MFU更有说服力。
这个MFU 65%的数据确实有点意思,我拿自己手头的昇腾910B集群试过几个MoE模型,之前CANN 6.x的时候,Memory碎片和算子编译开销一直是个坎,尤其是dynamic shape场景下,连续跑几个batch内存就炸了。7.0之后自动调优确实能兜住一部分,但说实话,我这边实测MFU大概在45%左右,离65%还有差距,估计AIGCode那边做了不少底层算子级的手工调优,或者用了更激进的流水线并行策略。你提到“填补生态护城河”,我倒觉得现在更关键的还是看这个性能能不能稳定复现到不同规模的集群上,毕竟PPT上的峰值数据和实际生产环境的均值差距,咱们都懂。
另外,CANN现在的自动调优工具虽然能缓解算子适配的痛点,但遇到非标准化的算子,比如自定义的稀疏attention或者特殊激活函数,还是得手动写TBE算子,这门槛比CUDA高不少。DeepSeek V4这次在昇腾上走通的,大概率是标准化的MoE结构,如果后续能把更多非标算子的自动化支持做上去,那才叫真正从“能用”到“好用”。我比较好奇的是,他们在超大规模工程化验证里,千卡级别的通信调度是怎么做的?CANN现在对集合通信的优化,尤其是跨节点NVLink的替代方案,有没有踩坑?希望后面能出点更底层的性能分析报告,别光给个MFU数字就完事。
同感,CANN 7.0之后动态shape和自动调优确实把体验拉上一个台阶,之前做算子适配调内存布局调到想摔键盘。不过好奇你实测下来,MoE模型里专家路由那部分的通信开销占比大概多少?昇腾互联目前还是短板,要是这个能压住,那MFU 65%含金量就真高了。
跑过AIGCode那个MoE模型的实测,65%的MFU确实有点东西。之前在昇腾上试过类似的稀疏模型,内存碎片和算子融合简直是噩梦,尤其是MoE的专家路由,动态shape一上来,显存分配直接裂开。CANN 7.0之后那个自动调优工具我倒是没重度用过,但动态shape支持确实让我少改了不少代码,之前为了对齐静态图,硬是手动rewrite了好几层算子。
不过我想问个实际问题:这个65%是在什么batch size和序列长度下跑出来的?我们团队之前测试过类似规模的MoE模型,在昇腾910B上跑长序列(比如8K以上),显存带宽和跨卡通信的瓶颈反而比算子更明显,MFU掉到40%出头。如果V4能在长上下文场景下维持这个效率,那才算是真正解决了工程痛点。
另外,CANN生态现在对混合精度和梯度检查点的支持到底怎么样?我上次迁移LLM时,fp16和bf16的算子覆盖率还有坑,尤其是自定义激活函数那块,最后还是绕回CUDA做fallback。如果DeepSeek V4的芯模协同真能把这些底层调度都自动化了,那我愿意再给昇腾一次机会。不然的话,光靠几个benchmark好看,实际生产环境一上压力,还是得老老实实切回CUDA。
同感,之前我也被各种“国产算力突破”的宣传稿搞麻了,直到自己上手做了一次从CUDA到昇腾的算子迁移,才发现坑比想象中多。你提到的内存碎片问题我深有体会,去年调一个稀疏注意力模块,光碎片整理就折腾了两周,CANN 7.0之前的版本确实不太敢在生产环境用。
不过这次V4的65% MFU确实挺意外的,尤其MoE模型对通信带宽和调度要求极高,能刷到这个数说明CANN在动态路由和负载均衡上下了狠功夫。我比较好奇的是,这个数据是在单机还是多机场景下测的?如果是多机,跨节点通信有没有用到自研的集合通信库?之前昇腾在All-to-All上吃过亏,延迟比NCCL高不少。
另外你提到“工程化尺度验证”,具体是多大规模的参数量?如果是千亿级MoE,那对齐精度和显存复用策略才是关键。我最近在试DeepSeek V3的蒸馏版本,发现昇腾对int8量化支持还不太成熟,V4是不是已经在算子层原生支持了?如果能把量化工具链也补上,那对实际部署的吸引力会大很多。
说真的,如果这次能公开一些benchmark的复现细节,比如算子级别的MFU分解,或者动态shape下的资源调度日志,那对社区开发者来说会是个很好的参考,省得大家自己在CANN的文档里翻半天。
看到这个MFU 65%的数据确实有点东西,我之前在昇腾上跑MoE模型,死活卡在55%左右,各种算子手写和内存池优化都试过,最后发现是动态路由那块的内存分配策略有问题。CANN 7.0的自动调优工具我还没深度用过,想请教一下,你们在实测中,这个工具对动态shape场景下的稀疏激活模式有没有做针对性优化?因为MoE的专家路由分布方差很大,如果调优策略是通用的,那可能还是得手动干预。
另外你提到内存碎片问题,我这边之前用昇腾时,特别是长序列推理场景,碎片率能到30%以上,后来靠手动预分配和分级缓存才压下去。DeepSeek V4在工程化时,对这块有没有什么新方案?比如是否引入了类似CUDA的虚拟内存管理,或者通过模型结构设计来降低碎片?
其实最让我好奇的是,这个65%的MFU是在多大batch size和序列长度下测出来的?如果是在小batch下堆出来的,那说服力会打折扣。毕竟工业级落地,大batch和长序列才是常态。不过无论如何,这至少证明CANN生态在MoE这类复杂结构上确实开始能打了,算是一个里程碑式的突破吧。希望后续能开源一些细粒度的benchmark,让大家自己也能复现一下。
你提的这个MFU 65%确实挺炸的,我之前也做过昇腾的算子迁移,那会儿CANN 5.0的时候真是折磨,动态shape基本等于没有,内存碎片全靠手动拼,一个模型调下来头发都少一半。后来7.0的自动调优工具出来,确实改善了一个量级,但当时我测的还是稠密模型,MoE这种稀疏架构能跑到这个水平,说实话有点超出预期。
不过我倒是有个疑问,你说这个MFU是单卡还是集群的数据?如果是集群,通信开销怎么压下来的?MoE的alltoall通信在昇腾上之前一直是个瓶颈,CANN的通信库和HCCL的兼容性到现在我也没完全摸透。另外,AIGCode那个案例里有没有提到具体用了多少卡?如果规模上千卡,那这个数据含金量就高了,如果是小规模验证,可能还要再看看大规模下的稳定性。
还有你最后那个问题没写完,我也挺好奇——这种高性能能不能持续迭代?毕竟CUDA的生态优势不只是性能,更是十年积累的工具链和社区支持。CANN现在虽然进步明显,但遇到冷门算子或者边界情况,debug起来还是得靠手工写TBE算子,这点和CUDA的成熟度差距不是一两个版本能追上的。你觉得这次DeepSeek V4的验证,能不能倒逼昇腾把算子库和调试工具做得更全?
65%的MFU在昇腾上跑MoE模型,这个数据确实硬核。我之前在CANN 6.x版本上做算子调优的时候,动态shape的支持简直是个噩梦,一遇到输入长度变化就得手动调缓存,不然内存碎片分分钟炸掉。7.0之后自动调优工具总算能兜住一些场景,但说实话,大规模集群下的通信拓扑感知才是真正考验,昇腾的HCCS在多机互联时的带宽利用率跟NVLink比还是有差距的。
不过你提到的AIGCode这个点我比较好奇——是整网训练还是推理场景?如果是训练,MoE模型里Expert并行和Token选择带来的负载不均衡问题,他们是怎么用CANN的流水线调度来解决的?我之前试过在昇腾上做类似架构,发现AlltoAll通信的延迟波动会导致Expert利用率参差不齐,后来靠手动调整负载均衡策略才勉强压下去。
另外你说“填补生态护城河”,我倒觉得真正的护城河不在于单点性能,而在于工具链的完整度。比如CUDA生态里NCCL的故障恢复、Nsight的系统级剖析,这些在昇腾上要么缺失要么效果打折。DeepSeek V4能在这个尺度上验证协同可行性是好事,但后续如果要把这种方案铺开到更多非标准模型上,CANN的算子覆盖率和自定义算子的开发效率还得再上一个台阶。你测的时候有遇到算子缺失导致的回退到CPU的情况吗?
看了这个帖子挺有感触的,我最近也在研究昇腾的生态迁移,但还没到你们这种深度调优的程度。之前一直听圈里人说CANN的算子库覆盖率是个坑,特别是那种动态shape的场景,动不动就报内存碎片。你帖子说的“CANN 7.0之后自动调优工具和动态shape支持”这点特别戳我——能具体说说这个自动调优工具是怎么解决碎片问题的吗?是类似CUDA Graph那种静态图优化,还是说有了更智能的内存池管理?因为我现在手头有个MoE模型要迁移,正好卡在专家路由带来的动态shape上,每次切换专家都感觉显存利用率忽高忽低。
另外关于AIGCode那个65%的MFU数据,我特别想知道这个是在多少卡规模下测的?是大规模集群还是小规模验证?毕竟MoE的通信开销在跨节点时太容易成为瓶颈了,如果只在单机8卡或者小规模集群上跑出这个数字,那和英伟达H800集群的对比可能还有点距离。不过话说回来,如果真能在千卡级规模上稳定复现这个效率,那确实说明DeepSeek V4在通信调度和CANN的协同上下了硬功夫。最后追问一句,你们在迁移时对DeepSeek V4本身的MoE路由策略有没有做额外优化?还是说直接用默认配置就能达到这个效率?
同感,之前我们团队做LLM迁移也是被算子适配和内存碎片折磨得够呛。CANN 7.0之后的自动调优确实改观很大,但说实话动态shape支持还有进步空间,有些场景下还是得手写workaround。MoE模型MFU到65%这个数字,如果是在实际生产负载下测出来的,那确实证明了芯模协同不是空话,昇腾这波生态迭代的速度比我想象中快。
不过有个问题想探讨:这种高性能在跨集群通信瓶颈上表现如何?MoE模型天然对All-to-All通信要求高,而国产网络栈在跨节点带宽和延迟上跟NVIDIA的NVLink/NVSwitch还有差距。我之前在昇腾上试过千卡级训练,通信开销占到总时间的30%以上,不知道DeepSeek V4在拓扑优化或通信压缩上有没有什么新trick?另外,AIGCode的MFU数据是否包含了通信开销,还是纯计算效率?这点在评估实际可用性时很关键。
还有一点,生态护城河不能只看单点性能,开发工具链和调试体验也很重要。CUDA生态的成熟度在于profiling、调优工具和社区积累的大量最佳实践。CANN虽然有了自动调优,但很多高级场景下还得靠工程师经验堆,这块希望后续能多开源些实战案例和benchmark。总的来说,这波芯模协同的实测数据确实是个积极信号,但真正要成为主流,还得看能否在更大规模的异构集群上稳定复现这个性能。