昇腾社区首页
中文
注册
开发者
下载

简介

MindIE SD(Mind Inference Engine Stable Diffusion,Diffusion系列大模型)旨在构建昇腾亲和的多模态加速系列套件,配合业内模型套件(如:diffusers),提升多模态推理在昇腾上的效率。主要专注于提供多模态生成的关键算子和融合算子,配合的昇腾亲和量化/稀疏算法,以存代算,多卡并行等策略,实现对diffusers模型的快速迁移和昇腾加速,未来会进一步扩展到多模态理解,全模态等场景的加速。

MindIE SD各模块间独立解耦设计,可单独使用也可以叠加使用。业内本身存在类似Cache-dit, xDiT等加速手段, 其效果与cache模块和parallelism模块功能相似,存在方案选择的问题。但是MindIE SD中其他组件依旧可以单独与之叠加使用,但各组件都使用了monkey patch。

MindIE SD基于PyTorch框架对外提供昇腾的加速能力,各加速能力支持独立使用,主要包含cache、parallelism、quantization、layer、kernel等模块,相关接口遵从diffusers的接口定义,部分基于MindIE SD实现昇腾加速的diffusers模型详情请参见在ModelersModelZoo。同时也支持基于diffusers进行简单插件化改造。其架构图如图1所示,模块介绍如表1所示。

图1 视图生成推理架构图
表1 主要功能模块

功能模块

说明

基础模块

layer模块

提供基础对外的加速接口(包含attn,moe, quant等特性的layer),是高阶特性的基础,本身可以单独使用。

kernel模块

提供多模态生成相关的昇腾高性能kernel,支持AscendC和Triton等编程语言的算子接入。

compilation模块

基于fx graph的能力,开启compile后使能融合pass,实现昇腾自动亲和加速。

高级模块

quantization模块

支持量化能力的自动使能。

cache模块

提供以存代算的加速能力的实现。

parallelism模块

提供多卡并行的分布式加速能力,需要与layer模块和pytorch协同实现。