ktransformers icon indicating copy to clipboard operation
ktransformers copied to clipboard

支持国产GPU/华为昇腾NPU需要做哪些工作?

Open xxchen86 opened this issue 10 months ago • 18 comments

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

xxchen86 avatar Feb 12 '25 09:02 xxchen86

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

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

Azure-Tang avatar Feb 12 '25 15:02 Azure-Tang

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

QwertyJack avatar Feb 12 '25 18:02 QwertyJack

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

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

Azure-Tang avatar Feb 13 '25 02:02 Azure-Tang

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

Atream avatar Feb 13 '25 03:02 Atream

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

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

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

xxchen86 avatar Feb 14 '25 02:02 xxchen86

我们意图在华为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的权重。这部分如果有不懂的欢迎交流

Azure-Tang avatar Feb 14 '25 02:02 Azure-Tang

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

Atream avatar Feb 14 '25 02:02 Atream

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

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

bachelor-dou avatar Feb 20 '25 07:02 bachelor-dou

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

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

bachelor-dou avatar Feb 20 '25 07:02 bachelor-dou

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

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

xxchen86 avatar Feb 20 '25 08:02 xxchen86

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

xxchen86 avatar Feb 20 '25 08:02 xxchen86

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

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

xiaods avatar Mar 19 '25 13:03 xiaods

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

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

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

handerason avatar Mar 20 '25 00:03 handerason

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

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

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

bachelor-dou avatar Mar 20 '25 01:03 bachelor-dou

同求

wuangmeugieuaixu avatar Apr 17 '25 09:04 wuangmeugieuaixu

同求

hoperun300339 avatar May 13 '25 13:05 hoperun300339

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

Zha-Miku avatar Sep 11 '25 06:09 Zha-Miku

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

zzc98 avatar Oct 15 '25 12:10 zzc98