自有AI芯片接入AI框架Pytorch的方案

现在AI框架主要用Pytorch,包括一些常用的库对Pytorch支持都较好,国产AI芯片很多也对AI框架Pytorch进行了支持

一、华为昇腾npu

能够跟上Pytorch的更新,直接和Pytorch兼容,而且有较多人来维护,代码风格不错,之前是通过注入Pytorch预留的的xla搞的接入,Pytorch 2.1起被官方接收了。这个代码非常推荐,笔者用他的框架实现了自有GPGPU芯片手写数字识别的训练,2023.8跑路了,靠只接入算子是能跑的,但是不做fuse效率很差。
2025.6更 找个时间复现一下,把我当时做的开源出来,其实主要是补充了一些算子,改了内存池以及host和device的copy等。

二、寒武纪mlu

这个版本很老,他们是通过docker为客户提供运行环境的,pytorch_patches文件夹表明他们需要修改Pytorch源代码

三、谷歌tpu

Pytorch 给他留了接口,甚至aten中也有为了支持他的某些feature的源码,tpu也算DSA的引领者

四、OpenCL 实现

一个老哥在孜孜不倦得推动OpenCL在Pytorch的适配,他还一直在维护,可惜OpenCL都要无了(

五、摩尔线程 MTT

2024.1更新 当时团队找错了,正确的是MooreThreads,发布会的时候应该还没公开,2023年6月底放上来的,接入方式和寒武纪差不多的
不知道他开源在哪里了,github团队是空的,可能合作商能从他官网拿到?他说自己开源了, 2023夏季发布会

六、Inductor backend


Pytorch2.0 提供的新的接入方式,官方文档,Triton就是这样的,你就可以省掉些算子开发,不过从MLIR还要再接你的编译器后端,但是他能快速跑完流程。nvFuser(JIT 合并和优化)就被Triton替代了,Triton很稳。

七、OpenMLIR/triton-ocl

我在维护的OpenCL的Triton后端,目前已跑通向量加、矩阵乘,会生成OpenCL源码。

项目还非常不成熟,但是我想试试

等相关算子完善了打算试试vllm这些推理框架

八、独树一帜支持国产框架 PaddlePaddle

PaddlePaddle还是有不少国产芯片提供了支持的,不过要谨防PaddleNLPPaddle版本间的不匹配问题。但是『飞桨』自定义硬件接入实现 还是比较nice的

九、其他

沐曦是有的,看到这个pr里提到了,应该也是给的docker
天数智芯iluvatar 也有自己维护的库,不过找不到他们的源码
昆仑芯 有适配,疑似源码,只是克隆了过来
壁仞Github团队 团队有的,不过没有pytorch源码
燧原Github团队 团队有的,没有pytorch源码,但是他们用EnflameGCU对飞桨进行了支持。torch_gcu 已经有了,疑似源码

posted @ 2023-12-06 12:31  暴力都不会的蒟蒻  阅读(2235)  评论(1)    收藏  举报