"Stable Diffusion是一种潜在的文本到图像扩散模型,能够根据任何文本输入生成逼真的照片般的图像,培养了自主创作的自由,让数十亿人在短短几秒内创作出令人惊艳的艺术作品。" 正常来讲,大部分的Stable Diffusion软件必须使用配备至少8 GB VRAM的普通消费级GPU上运行,鉴于Intel 新一代Sappire Rapids CPU提供了AMX 指令加速技术,在这片文章里,我们将展示在Sapphire Rapids CPU上加速Stable Diffusion模型的一些优化技术。
英特尔公司在2023年初发布了最新一代的Xeon CPU(代号Sapphire Rapids),以及其在深度学习加速方面的新硬件特性(AMX),英特尔® AMX 是内置于第四代英特尔® 至强® 可扩展处理器中的加速器,可优化深度学习 (DL) 训练和推理工作负载。
英特尔® AMX 支持两种数据类型:INT8 和 BF16,两者均可用于 AI 工作负载所需的矩阵乘法运算。
当推理无需 FP32(AI 经常使用的单精度浮点格式)的精度时可使用 INT8 这种数据类型。由于该数据类型的精度较低,因此单位计算周期内运算次数就更多。
- BF16 这种数据类型实现的准确度足以达到大多数训练的要求,必要时它也能让 AI 推理实现更高的准确度。
凭借这种新的平铺架构,英特尔® AMX 实现了大幅代际性能提升。与运行英特尔® 高级矢量扩展 512 神经网络指令(Intel® Advanced Vector Extensions 512 Neural Network Instructions,英特尔® AVX-512 VNNI)的第三代英特尔® 至强® 可扩展处理器相比,运行英特尔® AMX 的第四代英特尔® 至强® 可扩展处理器将单位计算周期内执行 INT8 运算的次数从 256 次提高至 2048 次。此外,如图 6 所示,第四代英特尔® 至强® 可扩展处理器可在单位计算周期内执行 1024 次 BF16 运算,而第三代英特尔® 至强® 可扩展处理器执行 FP32 运算的次数仅为 64 次7。