Ascend Extension for DiffSynth-Studio
本项目开发了名为diffsynth_npu的Ascend Extension for DiffSynth插件,使昇腾NPU可以适配DiffSynth框架,为使用DiffSynth框架的开发者提供昇腾AI处理器的超强算力。
昇腾为基于华为昇腾处理器和软件的行业应用及服务提供全栈AI计算基础设施。您可以通过访问昇腾社区 ,了解关于昇腾的更多信息。
DiffSynth 版本
DiffSynth-NPU 版本
1.18.0
1.18.0
模型名称
验证状态
运行样例
Wan2.1-VACE-14B
验证通过✅
doc
Wan2.1-VACE-1.3B
未验证⏳
/
Wan2.1-T2V-1.3B
未验证⏳
/
Wan2.1-T2V-14B
未验证⏳
/
Wan2.1-I2V-14B-480P
未验证⏳
/
Wan2.1-I2V-14B-720P
未验证⏳
/
Wan2.2-T2V-A14B
未验证⏳
/
Wan2.2-I2V-A14B
未验证⏳
/
Wan2.2-TI2V-5B
未验证⏳
/
Wan2.2-Animate-14B
未验证⏳
/
Wan2.2-S2V-14B
未验证⏳
/
功能名称
状态
路径
NPU Laser Attention
已适配✅
attn_layer.py
NPU Layer Norm
计划中🕐
\
NPU RmsNorm
计划中🕐
\
NPU Fast Gelu
计划中🕐
\
功能名称
状态
路径
NPU Cache
计划中🕐
\
PAD FREQS 优化
计划中🕐
\
Rope 前置计算
计划中🕐
\
VACE 并行
计划中🕐
\
VAE 并行
计划中🕐
\
CFG 并行
计划中🕐
\
FSDP 分片
计划中🕐
\
表 1 版本配套表
配套
版本
环境准备指导
Python
3.11.10
-
torch
2.1.0
-
5.1.2 获取CANN&MindIE安装包&环境准备
# 增加软件包可执行权限,{version}表示软件版本号,{arch}表示CPU架构,{soc}表示昇腾AI处理器的版本。
chmod +x ./Ascend-cann-toolkit_{version}_linux-{arch}.run
chmod +x ./Ascend-cann-kernels-{soc}_{version}_linux.run
# 校验软件包安装文件的一致性和完整性
./Ascend-cann-toolkit_{version}_linux-{arch}.run --check
./Ascend-cann-kernels-{soc}_{version}_linux.run --check
# 安装
./Ascend-cann-toolkit_{version}_linux-{arch}.run --install
./Ascend-cann-kernels-{soc}_{version}_linux.run --install
# 设置环境变量
source /usr/local/Ascend/ascend-toolkit/set_env.sh
pip3 install -r requirements.txt
# 增加软件包可执行权限,{version}表示软件版本号,{arch}表示CPU架构。
chmod +x ./Ascend-mindie_${version} _linux-${arch} .run
./Ascend-mindie_${version} _linux-${arch} .run --check
# 方式一:默认路径安装
./Ascend-mindie_${version} _linux-${arch} .run --install
# 设置环境变量
cd /usr/local/Ascend/mindie && source set_env.sh
# 方式二:指定路径安装
./Ascend-mindie_${version} _linux-${arch} .run --install-path=${AieInstallPath}
# 设置环境变量
cd ${AieInstallPath} /mindie && source set_env.sh
下载 pytorch_v{pytorchversion}_py{pythonversion}.tar.gz
tar -xzvf pytorch_v{pytorchversion}_py{pythonversion}.tar.gz
# 解压后,会有whl包
pip install torch_npu-{pytorchversion}.xxxx.{arch}.whl
# 若环境镜像中没有gcc、g++,请用户自行安装
yum install gcc
yum install g++
# 导入头文件路径
export CPLUS_INCLUDE_PATH=/usr/include/c++/12/:/usr/include/c++/12/aarch64-openEuler-linux/:$CPLUS_INCLUDE_PATH
注:若使用openeuler镜像,需要配置gcc、g++环境,否则会导致fatal error: 'stdio.h' file not found
5.2 编译安装 DiffSynth-Studio
参考DiffSynth-Studio
import diffsynth
import diffsynth_npu
...