You need to enable JavaScript to run this app.
文档中心
云服务器

云服务器

复制全文
下载 pdf
AIGC实践
搭建SDXL-Turbo模型文生图推理
复制全文
下载 pdf
搭建SDXL-Turbo模型文生图推理
本文主要介绍如何在云服务器实例中部署Stable Diffusion XL Turbo模型,并使用CPU加速文生图推理。​
功能特色​
本实践使用了火山引擎第3代云服务器通用型g3i,该规格实例采用火山引擎自研最新DPU架构并搭载了第5代英特尔®至强®可扩展处理器(Emerald Rapids,EMR),结合新一代硬件AI加速指令AMX-BF16(Intel Advanced Matrix Extensions)以及基于其上的IPEX框架优化,实现了系统级优化方案来加速SDXL-Turbo模型的文生图推理速度。​
背景信息​
IPEX​
Intel® Extension for PyTorch(IPEX)是由Intel开源并维护的一个PyTorch扩展库,大幅度提升了使用PyTorch在Intel处理器上运行AI应用,尤其是深度学习应用的性能。Intel正不断为PyTorch贡献IPEX的优化性能,为PyTorch社区提供最新的Intel硬件和软件改进。更多信息,请参见IPEX。​
SDXL-Turbo模型​
本实践使用的推理模型为SDXL-Turbo(Stable Diffusion XL Turbo),该模型是Stability AI在Stable Diffusion基于SDXL 1.0的蒸馏(Distillation)版本,专为实时合成的文生图场景服务。该模型能够确保即使在一到两个采样步骤,也能保持高的图片质量。​
更多模型相关的信息可参考:SDXL-Turbo。​
操作步骤​
步骤一:环境准备​
  1. 创建搭载了第5代英特尔®至强®可扩展处理器(Emerald Rapids,EMR)实例,详细操作请参见购买云服务器。​
  • 创建实例时,请注意以下配置:​
  • 实例规格:本文选择通用型g3i(ecs.g3i.8xlarge)规格。​
  • 云盘:推荐云盘容量不低于60GiB。​
  • 镜像:本文选择Ubuntu 22.04 LTS 64位。​
  • 网络:需要绑定公网IP,操作详情可查看绑定公网IP。​
  1. 为目标实例安装Docker。​
说明​
请确保Docker版本不低于19.03,且DOCKER_BUILDKIT=1。​
步骤二:部署SDXL-Turbo模型​
  1. 下载SDXL-Turbo模型。​
  1. 执行如下命令,创建存放模型的目录。​
  • ​
    mkdir models​
    ​
  1. 执行如下命令,进入该目录。​
  • ​
    cd models/​
    ​
  1. 下载所需工具与模型。​
说明​
本文通过huggingface 镜像站下载模型,您也可以前往huggingface 官网进行下载。​
  • ​
    pip install -U huggingface_hub hf_transfer ​
    HF_ENDPOINT=https://hf-mirror.com HF_HUB_ENABLE_HF_TRANSFER=1 huggingface-cli download --resume-download stabilityai/sdxl-turbo --local-dir sdxl-turbo --local-dir-use-symlinks=False​
    ​
  1. 将如下文件上传至在SDXL-Turbo模型同级目录下。操作详情可查看本地数据上传。​
  • Dockerfile​
  • ​
    ​
    Dockerfile
    ​
    ​
  • run_local.sh​
  • ​
    ​
    run_local.sh
    ​
    ​
  • sd_pipe_sdxl_turbo.py​
说明​
本实践使用Intel提交的diffusers库,详情可查看Stable Diffusion XL on IPEX。​
  • ​
    ​
    sd_pipe_sdxl_turbo.py
    ​
    ​
  • pipeline_stable_diffusion_xl_ipex.py​
说明​
本文件内容参考huggingface的pipeline_stable_diffusion_xl_ipex.py文件编写,您可以参考官方示例自行修改。​
  • ​
    ​
    pipeline_stable_diffusion_xl_ipex.py
    ​
    ​
  • 完成上传后,文件结构如下如图所示。​
  • ​​​
  1. 在Dockerfile文件同级目录下,执行如下命令,制作Docker镜像。​
  • ​
    docker build -t sdxl:v1 .​
    ​
  1. 执行如下命令,运行Docker。​
  • ​
    docker run --name sdxl --privileged=true -v /root/models:/models -it sdxl:v1 bash​
    ​
步骤三:运行SDXL-Turbo模型​
  1. 在容器sdxl的交互模式中,执行如下命令,进入模型目录。​
  • ​
    cd sdxl-turbo​
    ​
  1. 执行如下命令,通过脚本进行文生图推理测试。​
  • ​
    sh run_local.sh​
    ​
  • 生成图片示例:​
  • 在Docker容器中,推理生成的图片将以saved_pic0ite$Nubmer$.png格式命名。​
  • ​​​
  • ​​​
  1. 后续您可以使用如下命令,继续文生图推理。​
  • ​
    numactl --localalloc --physcpubind=48-71 python sd_pipe_sdxl_turbo.py --height 512 --width 512 --repeat 11 --step 4 --bf16 --prompt "A spaceship traveling through the stars. highly detailed, 8k"​
    ​
  • 参数说明​
  • numactl命令参数​
  • ​
    参数名​
    说明​
    取值样例​
    --localalloc​
    指定使用本地内存分配器,而不是默认的系统内存分配器。​
    -​
    --physcpubind​
    指定物理CPU的绑定范围,以提高程序的运行效率。​
    48-71​
    ​
  • 模型运行参数​
  • ​
    参数名​
    说明​
    取值样例​
    --bf16​
    表示是否启用BF16精度模式。​
    说明​
    • 推荐您启用BF16精度模式。启用后,可使用AMX指令集加速文生图推理,否则不会使用AMX指令集进行推理加速。​
    • 传递本参数表示启用BF16精度模式,不传递表示不启用。​
    --bf16​
    --batch​
    int,表示批处理大小,默认值为1。​
    1​
    --height​
    int,表示图像高度,单位像素,默认值为512。​
    说明​
    支持与推荐的高、宽值,可参考width-and-height。​
    512​
    --width​
    int,表示图像宽度,单位像素,默认值为512。​
    说明​
    支持与推荐的高、宽值,可参考width-and-height。​
    512​
    --step​
    int,表示旋转循环的步长,默认值为4。​
    4​
    --repeat​
    int,表示推断的重复次数,默认值为3。​
    11​
    --prompt​
    String,表示生成图片的内容,默认值为beautiful beach with white sands, trophical island, coconat tree, a beautiful boat on the beach, moon night, 8k。​
    A spaceship traveling through the stars. highly detailed, 8k​
    ​
性能说明​
测试数据​
本节展示了使用ecs.g3i.8xlarge规格实例,通过Stable Diffusion XL Turbo模型生成不同分辨率与数据精度图片的耗时信息。​
说明​
下表测试数据仅做参考,实际数据可能会因您的操作环境而发生变化,请以实际情况为准。​
​
实例规格​
数据精度​
参数​
单次平均耗时​
(512x512)​
单次平均耗时​
(1024x1024)​
ecs.g3i.8xlarge​
(32 vCPU 128 GiB)​
BF16​
batch: 1​
step: 4​
1.36s​
5.05s​
​
FP32​
batch: 1​
step: 4​
4.86s​
17.37s​
​
测试结论​
在搭载英特尔EMR处理器的ecs.g3i.8xlarge规格实例中,根据本实践调整后的文生图模型,可通过使能高级矩阵扩展加速引擎(AMX指令集)有效加速推理速度,最快可达 0.735 images/s,实现秒级生图性能。与未使用或不支持AMX指令集加速的实例相比,其文生成图性能可提升293% ~ 388%。​
因此,在追求性价比、丰富实例资源场景下,您可以使用搭载英特尔EMR处理器的实例规格(例如通用型g3i)代替GPU实例,通过系统级加速方案获取最优性价比的高效文生图服务。​
最近更新时间:2026.10.30 17:01:32
这个页面对您有帮助吗?
有用
有用
无用
无用