Stable Diffusion 加速高達 211.2%:Aitemplate、TensorRT、OneFlow 與 Xformers 加速測試

Stable Diffusion 加速高達 211.2%:Aitemplate、TensorRT、OneFlow 與 Xformers 加速測試

1. 簡介

Stable Diffusion 是一種基於擴散模型的影像生成技術,能夠從文字生成高品質影像,適用於 CG、插畫以及高解析度桌布等領域。

然而,由於其運算過程複雜,Stable Diffusion 的影像生成速度往往成為瓶頸。為了解決這個問題,novita.ai 針對多種加速方法進行了一系列比較測試,包括 Xformers、Aitemplate、TensorRT 與 OneFlow。

本文將介紹這些加速方法的原理與效能測試結果,並提供不同顯示卡的性價比考量,協助您在部署時做出明智選擇。

測試結果顯示,OneFlow 在 RTX 3090 上相較於 Xformers 加速了 211.2%,在 RTX 4090 上則加速了 205.6%。因此,在部署 Stable Diffusion 時,建議首選 GPU 為 RTX 3090。

2. 加速方案原理與特性比較

首先,我們整理了可用於加速 stable diffusion 的各種方案。

我們選取了 Xformers、Aitemplate、TensorRT 與 OneFlow 作為加速方案。NvFuser 原理與 Xformers 相似,都是使用 FlashAttention 技術。DeepSpeed 與 colossal 主要用於訓練加速,而 OpenAI Triton 則作為模型部署引擎,適合批次加速而非模型延遲優化場景,因此我們將其排除在比較之外。

目前,我們正在測試 WebUI 基本方案以及四種加速方案(Xformers、Aitemplate、TensorRT 與 OneFlow)在不同 GPU 上的效能。

我們使用 VoltaML 評估 Aitemplate 的加速效果,使用 Stable Diffusion WebUI 評估 Xformers 的加速效果,使用官方 TensorRT 範例評估 TensorRT 的效能,並將 OneFlow 整合到 Diffusions 中進行測試。

3. 加速方案測試

接下來,我們將介紹相關測試配置,並與您分享實際測試結果。

3.1 測試設定

本次測試的效能指標為每秒疊代次數(its/s)。

影像設定:512*512,步數 100

提示詞:A beautiful girl, best quality, ultra-detailed, extremely detailed CG unity 8k wallpaper, best illustration, an extremely delicate and beautiful, floating, high resolution.

負面提示詞:Low resolution, bad anatomy, bad hands, text error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, bad feet, fused body.

取樣器:Euler a

模型:Stable Diffusion 1.5

3.2 測試結果

經過一系列測試,我們獲得了各 GPU 上的效能測試結果,如下所示:

從上表中可以看出,加速效果比較為:OneFlow > TensorRT > Aitemplate > Xformers。

在 RTX 3090 上,OneFlow 相較於 Xformers 的相對加速比為 211.2%;在 RTX 4090 上則為 205.6%。

4. GPU 效能與性價比比較

我們針對不同 GPU 進行了性價比分析。以下是結論:

結論 1:就性價比而言,RTX 040 GPU 提供了最高的價值。

結論 2:極低階 GPU 可能會增加整體成本。RTX 2080Ti 或許能在初期大量投資與整體成本之間取得平衡。

結論 3:效能最差的 GPU

在此次測試中,我們挑選了幾款記憶體容量大於 6GB 的低階 GPU,包括 M60、1660s 與 1080。

  1. 像 1660s 與 1080 這樣的 GPU 不支援 TensorRT、Aitemplate 與 OneFlow 等加速方案,可能是因為記憶體不足或 GPU 不相容。

  2. 其中,1660s(1080)在生成 512*512 影像、20 步時達到 2.61 it/s(2.64 it/s),耗時 7.66 秒(7.57 秒),顯示仍具有一定的可用性。

  3. 另一方面,M60 僅達到 1.27 it/s,生成 512*512 影像、20 步耗時 15.74 秒,可用性較差。

5. 選擇建議

5.1 RTX 4090 具有最高的性價比,但我們建議部署 RTX 3090。

例如,我們可以透過 runpod 測試計算每個 GPU 的「每美元疊代次數」,代表 GPU 的性價比。

很明顯,在相似的使用率下,RTX 4090 的性價比高於 RTX 3090。此外,RTX 3090 的表現優於同級的其他 GPU,如 A5000 與 A4000。

選擇 RTX 4090 用於 Stable Diffusion 模型取決於具體情況:

  1. 實際性價比由使用率(每小時使用時間 / 60 分鐘)* its/$ 決定。根據服務模式與預估使用率,如果 RTX 4090 的使用率相當於 RTX 3090 的兩倍,那麼 RTX 4090 的性價比會更高。然而,如果部署兩張 RTX 3090 實例,由於增加了並發支援與請求處理能力,使用率會更高,那麼 RTX 3090 可能更受青睞。使用率需根據具體場景進行分析。
  2. its/$ 代表推論效能,而更大的 VRAM 可以快取更多模型,減少模型載入時間,並顯著加速影像生成過程。RTX 3090 與 RTX 4090 都擁有 24GB VRAM,但如果 Stable Diffusion WebUI 根據 VRAM 使用量進行最佳化,RTX 3090 在 VRAM 成本上可能具有優勢。
  3. 如果優先考量推論速度,RTX 4090 是最佳選擇,因為其推論時間約為 RTX 3090 的一半。

這與 https://timdettmers.com/2023/01/30/which-gpu-for-deep-learning/ 的發現一致。更多 GPU 資料,請參閱下圖。

當 GPU 時間在處理鏈中佔整體時間的比例較小時,可以考慮選擇效能稍低的 GPU 來取代 RTX 3090。這些選項包括 A5000、A10G、RTX 3080、RTX 3080Ti 與 RTX 2080Ti。

如果您有任何疑問,或想探索更多 Stable Diffusion 的加速選項,歡迎透過我們的 Discord 與我們聯繫。

歡迎加入,與 novita.ai 一同探索 Stable Diffusion 的潛力!

novita.ai 提供 Stable Diffusion API 以及數百種快速且經濟實惠的 AI 影像生成 API,支援 10,000 種模型。🎯 最快 2 秒生成,按量計費,每張標準影像最低僅需 $0.0015,您還可以新增自己的模型並免去 GPU 維護。免費分享開源擴充功能。

推薦閱讀

  1. How to Install Stable Diffusion 2.1 Easily
  2. Lora AI-Generated Images - The Future of Art
  3. Stable Diffusion GTX 1650: The Ultimate Guide