[GH-ISSUE #167] 支持国产GPU/华为昇腾NPU需要做哪些工作? #91

Open
opened 2026-10-29 14:34:02 +00:00 by bsakaguchi · 18 comments
Owner

Originally created by @xxchen86 on GitHub (Feb 12, 2025).
Original GitHub issue: https://github.com/kvcache-ai/ktransformers/issues/167

我们意图在华为Ascend 910B上进行Deepseek-R1 671B的推理,请问适配新的硬件需要做哪些工作?

Originally created by @xxchen86 on GitHub (Feb 12, 2025). Original GitHub issue: https://github.com/kvcache-ai/ktransformers/issues/167 我们意图在华为Ascend 910B上进行Deepseek-R1 671B的推理,请问适配新的硬件需要做哪些工作?
Author
Owner

@Azure-Tang commented on GitHub (Feb 12, 2025):

我们意图在华为Ascend 910B上进行Deepseek-R1 671B的推理,请问适配新的硬件需要做哪些工作?

我们目前没有昇腾的设备和懂昇腾硬件的同学,所以可能没办法支持您做这个。您可以看一下marlin算子是否可以在昇腾卡上运算?
https://github.com/IST-DASLab/marlin

<!-- gh-comment-id:2654064912 --> @Azure-Tang commented on GitHub (Feb 12, 2025): > 我们意图在华为Ascend 910B上进行Deepseek-R1 671B的推理,请问适配新的硬件需要做哪些工作? 我们目前没有昇腾的设备和懂昇腾硬件的同学,所以可能没办法支持您做这个。您可以看一下marlin算子是否可以在昇腾卡上运算? https://github.com/IST-DASLab/marlin
Author
Owner

@QwertyJack commented on GitHub (Feb 12, 2025):

我这有,怎么联系?wx群满了

<!-- gh-comment-id:2654547594 --> @QwertyJack commented on GitHub (Feb 12, 2025): 我这有,怎么联系?wx群满了
Author
Owner

@Azure-Tang commented on GitHub (Feb 13, 2025):

我这有,怎么联系?wx群满了

非常感谢您🙏不过这个支持应该不会在短期计划中。如果想加群的话我们更新了主页的二维码

<!-- gh-comment-id:2655304247 --> @Azure-Tang commented on GitHub (Feb 13, 2025): > 我这有,怎么联系?wx群满了 非常感谢您🙏不过这个支持应该不会在短期计划中。如果想加群的话我们更新了主页的二维码
Author
Owner

@Atream commented on GitHub (Feb 13, 2025):

wx群已更新,我们也有同学在研究国产卡上的算子优化但人手和经验严重不足,短期内不会支持,支持非CUDA卡需要开源社区的帮助

<!-- gh-comment-id:2655350477 --> @Atream commented on GitHub (Feb 13, 2025): wx群已更新,我们也有同学在研究国产卡上的算子优化但人手和经验严重不足,短期内不会支持,支持非CUDA卡需要开源社区的帮助
Author
Owner

@xxchen86 commented on GitHub (Feb 14, 2025):

我们意图在华为Ascend 910B上进行Deepseek-R1 671B的推理,请问适配新的硬件需要做哪些工作?

我们目前没有昇腾的设备和懂昇腾硬件的同学,所以可能没办法支持您做这个。您可以看一下marlin算子是否可以在昇腾卡上运算? https://github.com/IST-DASLab/marlin

所以 KTransformer 和硬件之间的接口就只是 Marlin 的矩阵乘算子吗?如果要适配新的硬件,是不是把特定硬件实现的 FP16xINT4 的矩阵乘算子接入 KTransformer 就可以了呢?

<!-- gh-comment-id:2658100244 --> @xxchen86 commented on GitHub (Feb 14, 2025): > > 我们意图在华为Ascend 910B上进行Deepseek-R1 671B的推理,请问适配新的硬件需要做哪些工作? > > 我们目前没有昇腾的设备和懂昇腾硬件的同学,所以可能没办法支持您做这个。您可以看一下marlin算子是否可以在昇腾卡上运算? https://github.com/IST-DASLab/marlin 所以 KTransformer 和硬件之间的接口就只是 Marlin 的矩阵乘算子吗?如果要适配新的硬件,是不是把特定硬件实现的 FP16xINT4 的矩阵乘算子接入 KTransformer 就可以了呢?
Author
Owner

@Azure-Tang commented on GitHub (Feb 14, 2025):

我们意图在华为Ascend 910B上进行Deepseek-R1 671B的推理,请问适配新的硬件需要做哪些工作?

我们目前没有昇腾的设备和懂昇腾硬件的同学,所以可能没办法支持您做这个。您可以看一下marlin算子是否可以在昇腾卡上运算? https://github.com/IST-DASLab/marlin

所以 KTransformer 和硬件之间的接口就只是 Marlin 的矩阵乘算子吗?如果要适配新的硬件,是不是把特定硬件实现的 FP16xINT4 的矩阵乘算子接入 KTransformer 就可以了呢?

看上去是的,您可以仿造我们的linearMarlin算子(在linear.py里)构造一个新的算子,然后可能需要注意一下load权重部分,我们是将gguf dequant后再用marlin pack成marlin的权重。这部分如果有不懂的欢迎交流

<!-- gh-comment-id:2658125750 --> @Azure-Tang commented on GitHub (Feb 14, 2025): > > > 我们意图在华为Ascend 910B上进行Deepseek-R1 671B的推理,请问适配新的硬件需要做哪些工作? > > > > > > 我们目前没有昇腾的设备和懂昇腾硬件的同学,所以可能没办法支持您做这个。您可以看一下marlin算子是否可以在昇腾卡上运算? https://github.com/IST-DASLab/marlin > > 所以 KTransformer 和硬件之间的接口就只是 Marlin 的矩阵乘算子吗?如果要适配新的硬件,是不是把特定硬件实现的 FP16xINT4 的矩阵乘算子接入 KTransformer 就可以了呢? 看上去是的,您可以仿造我们的linearMarlin算子(在linear.py里)构造一个新的算子,然后可能需要注意一下load权重部分,我们是将gguf dequant后再用marlin pack成marlin的权重。这部分如果有不懂的欢迎交流
Author
Owner

@Atream commented on GitHub (Feb 14, 2025):

还有CUDA Graph这种计算图的优化,因为使用了python,不使用计算图优化会导致python成为性能瓶颈

<!-- gh-comment-id:2658143529 --> @Atream commented on GitHub (Feb 14, 2025): 还有CUDA Graph这种计算图的优化,因为使用了python,不使用计算图优化会导致python成为性能瓶颈
Author
Owner

@bachelor-dou commented on GitHub (Feb 20, 2025):

还有CUDA Graph这种计算图的优化,因为使用了python,不使用计算图优化会导致python成为性能瓶颈

昇腾NPU 配套的CANN支持计算图优化

<!-- gh-comment-id:2670664496 --> @bachelor-dou commented on GitHub (Feb 20, 2025): > 还有CUDA Graph这种计算图的优化,因为使用了python,不使用计算图优化会导致python成为性能瓶颈 昇腾NPU 配套的CANN支持计算图优化
Author
Owner

@bachelor-dou commented on GitHub (Feb 20, 2025):

还有CUDA Graph这种计算图的优化,因为使用了python,不使用计算图优化会导致python成为性能瓶颈

目前来看,关键在于marlin算子的实现

<!-- gh-comment-id:2670669933 --> @bachelor-dou commented on GitHub (Feb 20, 2025): > 还有CUDA Graph这种计算图的优化,因为使用了python,不使用计算图优化会导致python成为性能瓶颈 目前来看,关键在于marlin算子的实现
Author
Owner

@xxchen86 commented on GitHub (Feb 20, 2025):

感谢大家的回复,鄙人结合各位的建议和对KTransformer源码的分析,总结出以下适配新的硬件组合可能要解决的问题:

  1. CPU 侧硬件加速指令的支持。如果不使用英特尔的CPU,使用 arm 架构的CPU,可能存在 CPU 侧硬件加速指令的适配工作。
  2. 加速卡侧(国产GPU/NPU)高性能的 FP16xINT4 矩阵乘算子(Marlin)的适配。如果硬件不支持 INT4,还需考虑使用 INT8 的数据类型代替,改动数据类型这部分,对权重文件或者其他模块存在什么样的影响尚未知。
  3. 算子图模式支持,需要将源码中使用 CUDA Graph 的部分替换成别家异构计算软件栈中对应的图模型接口。KTransformer框架似乎与CUDA Graph强耦合,如果要适配别的图模式接口,可能会对源码有较大的改动。另外,还要求新引入的图模式接口中有类似cudaLaunchHostFunc的函数,以实现单个forward只生成一张图。目前来看,适配新的异构计算软件栈的图模式的难度较大。
  4. 引入新的硬件组合后,可能需要尝试更多的计算资源的分配组合,需要理解网络层的计算逻辑,以尝试将哪些网络层放到加速卡上,哪些网络层放到 CPU 上,对开发者的模型结构知识提出了更高的要求。
<!-- gh-comment-id:2670790960 --> @xxchen86 commented on GitHub (Feb 20, 2025): 感谢大家的回复,鄙人结合各位的建议和对KTransformer源码的分析,总结出以下适配新的硬件组合可能要解决的问题: 1. CPU 侧硬件加速指令的支持。如果不使用英特尔的CPU,使用 arm 架构的CPU,可能存在 CPU 侧硬件加速指令的适配工作。 2. 加速卡侧(国产GPU/NPU)高性能的 FP16xINT4 矩阵乘算子(Marlin)的适配。如果硬件不支持 INT4,还需考虑使用 INT8 的数据类型代替,改动数据类型这部分,对权重文件或者其他模块存在什么样的影响尚未知。 3. 算子图模式支持,需要将源码中使用 CUDA Graph 的部分替换成别家异构计算软件栈中对应的图模型接口。KTransformer框架似乎与CUDA Graph强耦合,如果要适配别的图模式接口,可能会对源码有较大的改动。另外,还要求新引入的图模式接口中有类似cudaLaunchHostFunc的函数,以实现单个forward只生成一张图。目前来看,适配新的异构计算软件栈的图模式的难度较大。 4. 引入新的硬件组合后,可能需要尝试更多的计算资源的分配组合,需要理解网络层的计算逻辑,以尝试将哪些网络层放到加速卡上,哪些网络层放到 CPU 上,对开发者的模型结构知识提出了更高的要求。
Author
Owner

@xxchen86 commented on GitHub (Feb 20, 2025):

针对国产卡的适配问题,欢迎大家一起讨论!

<!-- gh-comment-id:2670792667 --> @xxchen86 commented on GitHub (Feb 20, 2025): 针对国产卡的适配问题,欢迎大家一起讨论!
Author
Owner

@xiaods commented on GitHub (Mar 19, 2025):

KTransformers是当前最火热的最低成本的Deepseek满血版推理方案。KunLun AI Space大模型加速引擎在此基础上完成两项重大技术突破:移植KTransformers到鲲鹏+昇腾全国产生态,同时使用自研算子替代Marlin算子,实现单张昇腾300I Duo推理卡高效运行满血版DeepSeek大模型

https://mp.weixin.qq.com/s/amGL613UMF-seH9pkzZI_g

<!-- gh-comment-id:2736694229 --> @xiaods commented on GitHub (Mar 19, 2025): KTransformers是当前最火热的最低成本的Deepseek满血版推理方案。KunLun AI Space大模型加速引擎在此基础上完成两项重大技术突破:移植KTransformers到鲲鹏+昇腾全国产生态,同时使用自研算子替代Marlin算子,实现单张昇腾300I Duo推理卡高效运行满血版DeepSeek大模型 https://mp.weixin.qq.com/s/amGL613UMF-seH9pkzZI_g
Author
Owner

@handerason commented on GitHub (Mar 20, 2025):

KTransformers是当前最火热的最低成本的Deepseek满血版推理方案。KunLun AI Space大模型加速引擎在此基础上完成两项重大技术突破:移植KTransformers到鲲鹏+昇腾全国产生态,同时使用自研算子替代Marlin算子,实现单张昇腾300I Duo推理卡高效运行满血版DeepSeek大模型

https://mp.weixin.qq.com/s/amGL613UMF-seH9pkzZI_g

大佬您好,请问有实现的过程嘛?可以复现吗?

<!-- gh-comment-id:2738679044 --> @handerason commented on GitHub (Mar 20, 2025): > KTransformers是当前最火热的最低成本的Deepseek满血版推理方案。KunLun AI Space大模型加速引擎在此基础上完成两项重大技术突破:移植KTransformers到鲲鹏+昇腾全国产生态,同时使用自研算子替代Marlin算子,实现单张昇腾300I Duo推理卡高效运行满血版DeepSeek大模型 > > https://mp.weixin.qq.com/s/amGL613UMF-seH9pkzZI_g 大佬您好,请问有实现的过程嘛?可以复现吗?
Author
Owner

@bachelor-dou commented on GitHub (Mar 20, 2025):

KTransformers是当前最火热的最低成本的Deepseek满血版推理方案。KunLun AI Space大模型加速引擎在此基础上完成两项重大技术突破:移植KTransformers到鲲鹏+昇腾全国产生态,同时使用自研算子替代Marlin算子,实现单张昇腾300I Duo推理卡高效运行满血版DeepSeek大模型

https://mp.weixin.qq.com/s/amGL613UMF-seH9pkzZI_g

目前有代码公布计划时间吗?

<!-- gh-comment-id:2738744718 --> @bachelor-dou commented on GitHub (Mar 20, 2025): > KTransformers是当前最火热的最低成本的Deepseek满血版推理方案。KunLun AI Space大模型加速引擎在此基础上完成两项重大技术突破:移植KTransformers到鲲鹏+昇腾全国产生态,同时使用自研算子替代Marlin算子,实现单张昇腾300I Duo推理卡高效运行满血版DeepSeek大模型 > > https://mp.weixin.qq.com/s/amGL613UMF-seH9pkzZI_g 目前有代码公布计划时间吗?
Author
Owner

@Thymos2027 commented on GitHub (Apr 17, 2025):

同求

<!-- gh-comment-id:2812256502 --> @Thymos2027 commented on GitHub (Apr 17, 2025): 同求
Author
Owner

@hoperun300339 commented on GitHub (May 13, 2025):

同求

<!-- gh-comment-id:2876551099 --> @hoperun300339 commented on GitHub (May 13, 2025): 同求
Author
Owner

@Zha-Miku commented on GitHub (Sep 11, 2025):

现在还能支持910b4的推理吗

<!-- gh-comment-id:3278197882 --> @Zha-Miku commented on GitHub (Sep 11, 2025): 现在还能支持910b4的推理吗
Author
Owner

@zzc98 commented on GitHub (Oct 15, 2025):

还有支持Ascend的计划吗,我看之前说 v0.2.4 就会支持,readme中也写了,但是没有看到任何与ascend相关的代码或文档

<!-- gh-comment-id:3406121189 --> @zzc98 commented on GitHub (Oct 15, 2025): 还有支持Ascend的计划吗,我看之前说 v0.2.4 就会支持,readme中也写了,但是没有看到任何与ascend相关的代码或文档
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
kvcache-ai/ktransformers#91
No description provided.