Segmented Checkpointing¶
Segmented checkpointing は、全 block を checkpoint する設定と checkpoint なしの中間にある設定です。
PyTorch の activation checkpointing を使用します。SimpleTuner は連続する Transformer block のグループを1回の checkpoint 呼び出しで実行し、返された隠れ状態を次のグループに渡します。グループを大きくすると保存する境界状態は減りますが、逆伝播時には対象の block を再計算します。速度とピーク VRAM の関係は実測してください。
CPU offload と FFN-only checkpointing は Unsloth-style checkpointing を参照してください。短い判断基準は Decision Rule にあります。
Controls¶
{
"gradient_checkpointing": true,
"gradient_checkpointing_backend": "torch",
"gradient_checkpointing_interval": 2
}
対応している whole-block path では、gradient_checkpointing_interval が segment width です。2 は blocks 0-1、2-3、4-5 を checkpoint します。
より細かく VRAM を制御するには stride を追加します:
{
"gradient_checkpointing": true,
"gradient_checkpointing_backend": "torch",
"gradient_checkpointing_interval": 2,
"gradient_checkpointing_segment_stride": 4
}
これは blocks 0-1 を checkpoint し、2-3 は通常実行、4-5 を checkpoint、6-7 は通常実行、という形で繰り返します。stride は interval 以上である必要があり、重複 schedule は無効です。
Segmented whole-block path 対応: Flux.1、Flux.2、Flux.3 Image Klein、HunyuanVideo、Krea 2、LongCat Image、LongCat Video、LTXVideo 0.9、LTXVideo2、Lumina2、MageFlow、MiniMax H3、PixArt、Qwen Image 2.1、SD3、SanaVideo、Z-Image、ZLab I1、Wan。
Stable Cascade stage C も interval と stride に対応していますが、schedule は transformer whole-block group ではなく UNet の Res/Timestep/Attention micro-block sequence に適用されます。
一部の family は古い semantics です:
| Family | gradient_checkpointing_interval |
gradient_checkpointing_segment_stride |
|---|---|---|
| Sana | N block ごとに checkpoint | 無視 |
| Stable Cascade stage C | interval ごとに UNet micro-block を checkpoint | stride は checkpointed/non-checkpointed UNet micro-block window を交互にする |
| SD1x, SDXL | segmented whole-block 非対応 | 無視 |
stride が無視される family では stride 行を比較しないでください。数字が同じなら、多くの場合は option が効いていないだけです。
使う場面¶
通常の per-block checkpointing では fit するが step time が高すぎる場合に使います。まず 2 から始めてください。VRAM に余裕がある深いモデルでは 2 と stride 4 を試します。
peak の主因が trainable weights、optimizer state、validation、VAE caching、block swapping、routing の場合は効果を期待しないでください。モデル機能が per-block 制御を必要とする場合、SimpleTuner はより安全な per-block path に戻ります。
dynamo_use_regional_compilation は万能ではありません。一部の image model では有利または中立でしたが、下の Wan/RamTorch と LTXVideo2 profile では悪い結果でした。compile 設定も benchmark 条件として扱ってください。
Benchmarks¶
実際の SimpleTuner examples を使い、single-GPU H100/L40S pods で測定しました。validation と checkpoint saves は無効、cache preparation は除外、post-warmup timing がある場合は train loop 内の first-step compile/setup も除外しています。
測定済み cell は post-warmup sec/step / peak VRAM GiB です。status-only cell の意味は、OOM が GPU memory 不足、failed が measured training steps まで到達しなかった run、unsupported がその family に option が wired されていない状態、not run が sweep にその組み合わせがなかった状態です。
まず同じ family 内で mode を比較してください。family 間の比較は、resolution、frame count、attention backend、model depth、trainable adapter type、dataset shape が違うため、おおまかな目安です。
下の matrix がこの sweep の source of truth です。model-specific notes は、row が recommendation ではなく coverage data の場合に caveat を示します。
Family Sweep Results¶
ACE Step 1.5¶
Example: ace_step/v15-base/default/v1-5.peft-lora. Resolution: 512.
Note: This sweep did not produce a usable ACE Step throughput row. The status-only entries below should be treated as coverage gaps, not as a recommendation.
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | OOM | OOM |
| bf16 | activation-offload | unsupported | unsupported |
| bf16 | layer | OOM | OOM |
| bf16 | interval2 | OOM | OOM |
| bf16 | seg2-stride4 | OOM | OOM |
| bf16 | seg2-stride4-offload | unsupported | unsupported |
| int8-sdnq-hadamard | none | OOM | OOM |
| int8-sdnq-hadamard | activation-offload | unsupported | unsupported |
| int8-sdnq-hadamard | layer | OOM | OOM |
| int8-sdnq-hadamard | interval2 | OOM | OOM |
| int8-sdnq-hadamard | seg2-stride4 | OOM | OOM |
| int8-sdnq-hadamard | seg2-stride4-offload | unsupported | unsupported |
| fp8-torchao | none | OOM | OOM |
| fp8-torchao | activation-offload | unsupported | unsupported |
| fp8-torchao | layer | OOM | OOM |
| fp8-torchao | interval2 | OOM | OOM |
| fp8-torchao | seg2-stride4 | OOM | OOM |
| fp8-torchao | seg2-stride4-offload | unsupported | unsupported |
Anima 上の AnyFlow 蒸留¶
例: anima/base-v1.0/default/anyflow-stage1.peft-lora。解像度: 1024x1024。この行は Anima を使った AnyFlow 蒸留の測定で、通常の Anima LoRA 例ではありません。通常の 1024x1024 Anima 画像 training には anima/base-v1.0/default/peft-lora を使ってください。
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | 1.022 / 17.26 | 0.719 / 17.21 |
| bf16 | activation-offload | unsupported | unsupported |
| bf16 | layer | 1.232 / 5.60 | 0.903 / 5.56 |
| bf16 | interval2 | 1.252 / 5.60 | 0.897 / 5.56 |
| bf16 | seg2-stride4 | 1.244 / 5.60 | 0.898 / 5.56 |
| bf16 | seg2-stride4-offload | unsupported | unsupported |
| int8-sdnq-hadamard | none | 5.417 / 18.61 | 4.974 / 18.57 |
| int8-sdnq-hadamard | activation-offload | unsupported | unsupported |
| int8-sdnq-hadamard | layer | 4.562 / 4.36 | 4.019 / 4.31 |
| int8-sdnq-hadamard | interval2 | 3.723 / 4.36 | 3.196 / 4.31 |
| int8-sdnq-hadamard | seg2-stride4 | 3.658 / 4.36 | 3.140 / 4.31 |
| int8-sdnq-hadamard | seg2-stride4-offload | unsupported | unsupported |
| fp8-torchao | none | 2.242 / 45.71 | OOM |
| fp8-torchao | activation-offload | unsupported | unsupported |
| fp8-torchao | layer | 2.810 / 5.51 | 2.576 / 5.46 |
| fp8-torchao | interval2 | 2.846 / 5.51 | 2.581 / 5.46 |
| fp8-torchao | seg2-stride4 | 2.766 / 5.51 | 2.567 / 5.46 |
| fp8-torchao | seg2-stride4-offload | unsupported | unsupported |
AuraFlow¶
Example: auraflow/v0.3/default/peft-lora. Resolution: 1024x1024.
注記: AuraFlow は SDNQ と TorchAO 量子化に対応しています。量子化した none 行は下にあります。量子化 checkpoint 行は、新しい full-length benchmark で確認してから数値を入れます。
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | 0.180 / 19.19 | 0.233 / 19.12 |
| bf16 | activation-offload | unsupported | unsupported |
| bf16 | layer | 1.824 / 13.37 | 0.833 / 13.32 |
| bf16 | interval2 | 1.764 / 16.21 | 0.877 / 16.14 |
| bf16 | seg2-stride4 | 1.771 / 16.21 | 0.887 / 16.14 |
| bf16 | seg2-stride4-offload | unsupported | unsupported |
| int8-sdnq-hadamard | none | 0.642 / 12.88 | 0.610 / 12.87 |
| int8-sdnq-hadamard | activation-offload | unsupported | unsupported |
| int8-sdnq-hadamard | layer | not run | not run |
| int8-sdnq-hadamard | interval2 | not run | not run |
| int8-sdnq-hadamard | seg2-stride4 | not run | not run |
| int8-sdnq-hadamard | seg2-stride4-offload | unsupported | unsupported |
| fp8-torchao | none | 0.621 / 24.53 | 0.757 / 24.44 |
| fp8-torchao | activation-offload | unsupported | unsupported |
| fp8-torchao | layer | not run | not run |
| fp8-torchao | interval2 | not run | not run |
| fp8-torchao | seg2-stride4 | not run | not run |
| fp8-torchao | seg2-stride4-offload | unsupported | unsupported |
Boogu Image¶
Example: boogu_image/v0.1-base/default/peft-lora. Resolution: 1024x1024.
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | 0.694 / 59.14 | OOM |
| bf16 | activation-offload | unsupported | unsupported |
| bf16 | layer | 0.907 / 23.44 | 2.641 / 23.39 |
| bf16 | interval2 | 0.912 / 23.44 | 2.649 / 23.39 |
| bf16 | seg2-stride4 | 0.911 / 23.44 | 2.648 / 23.39 |
| bf16 | seg2-stride4-offload | unsupported | unsupported |
| int8-sdnq-hadamard | none | 1.488 / 53.24 | OOM |
| int8-sdnq-hadamard | activation-offload | unsupported | unsupported |
| int8-sdnq-hadamard | layer | 1.878 / 15.20 | 3.309 / 15.15 |
| int8-sdnq-hadamard | interval2 | 1.630 / 34.12 | 2.577 / 34.07 |
| int8-sdnq-hadamard | seg2-stride4 | 1.656 / 34.11 | 2.574 / 34.06 |
| int8-sdnq-hadamard | seg2-stride4-offload | unsupported | unsupported |
| fp8-torchao | none | OOM | OOM |
| fp8-torchao | activation-offload | unsupported | unsupported |
| fp8-torchao | layer | 1.713 / 18.48 | 3.778 / 18.44 |
| fp8-torchao | interval2 | 1.731 / 18.48 | 3.777 / 18.44 |
| fp8-torchao | seg2-stride4 | 1.721 / 18.48 | 3.779 / 18.44 |
| fp8-torchao | seg2-stride4-offload | unsupported | unsupported |
Chroma¶
Example: chroma/default/default/peft-lora. Resolution: 1024x1024.
Note: Checkpointed Chroma rows use attention_mechanism=native-efficient, which was the stable attention path for this sweep.
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | 0.454 / 26.18 | 0.559 / 26.13 |
| bf16 | activation-offload | 4.873 / 18.74 | 4.793 / 18.69 |
| bf16 | layer | 1.276 / 17.67 | 1.430 / 17.63 |
| bf16 | interval2 | 1.204 / 21.80 | 1.349 / 21.75 |
| bf16 | seg2-stride4 | 1.200 / 21.78 | 1.382 / 21.74 |
| bf16 | seg2-stride4-offload | unsupported | unsupported |
| int8-sdnq-hadamard | none | 1.083 / 21.42 | 1.061 / 21.37 |
| int8-sdnq-hadamard | activation-offload | unsupported | unsupported |
| int8-sdnq-hadamard | layer | 1.714 / 10.41 | 1.646 / 10.36 |
| int8-sdnq-hadamard | interval2 | 1.443 / 15.72 | 1.391 / 15.68 |
| int8-sdnq-hadamard | seg2-stride4 | 1.428 / 15.71 | 1.323 / 15.67 |
| int8-sdnq-hadamard | seg2-stride4-offload | unsupported | unsupported |
| fp8-torchao | none | 1.122 / 45.44 | OOM |
| fp8-torchao | activation-offload | unsupported | unsupported |
| fp8-torchao | layer | 1.821 / 10.64 | 2.104 / 10.60 |
| fp8-torchao | interval2 | 1.447 / 27.49 | 1.871 / 27.44 |
| fp8-torchao | seg2-stride4 | 1.431 / 27.49 | 1.877 / 27.44 |
| fp8-torchao | seg2-stride4-offload | unsupported | unsupported |
Cosmos 2 Image¶
Example: cosmos/default/default/lycoris-lokr. Resolution: 512x512.
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | 0.336 / 8.05 | 0.316 / 8.00 |
| bf16 | activation-offload | unsupported | unsupported |
| bf16 | layer | 0.567 / 4.09 | 0.559 / 4.04 |
| bf16 | interval2 | 0.595 / 4.09 | 0.544 / 4.04 |
| bf16 | seg2-stride4 | 0.598 / 4.09 | 0.546 / 4.04 |
| bf16 | seg2-stride4-offload | unsupported | unsupported |
| int8-sdnq-hadamard | none | 0.831 / 6.56 | 0.783 / 6.56 |
| int8-sdnq-hadamard | activation-offload | unsupported | unsupported |
| int8-sdnq-hadamard | layer | 1.315 / 2.44 | 1.288 / 2.39 |
| int8-sdnq-hadamard | interval2 | 1.346 / 2.44 | 1.321 / 2.39 |
| int8-sdnq-hadamard | seg2-stride4 | 1.413 / 2.44 | 1.274 / 2.39 |
| int8-sdnq-hadamard | seg2-stride4-offload | unsupported | unsupported |
| fp8-torchao | none | 0.850 / 13.30 | 0.840 / 13.25 |
| fp8-torchao | activation-offload | unsupported | unsupported |
| fp8-torchao | layer | 1.692 / 2.70 | 1.560 / 2.65 |
| fp8-torchao | interval2 | 1.626 / 2.70 | 1.544 / 2.65 |
| fp8-torchao | seg2-stride4 | 1.607 / 2.70 | 1.555 / 2.65 |
| fp8-torchao | seg2-stride4-offload | unsupported | unsupported |
Cosmos 3¶
Example: cosmos3/edge/24g/image.lycoris-lokr. Resolution: 1024 px.
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | 2.747 / 8.90 | 2.904 / 8.86 |
| bf16 | activation-offload | unsupported | unsupported |
| bf16 | layer | 2.602 / 8.90 | 2.606 / 8.86 |
| bf16 | interval2 | 2.658 / 8.90 | 2.567 / 8.86 |
| bf16 | seg2-stride4 | 2.628 / 8.90 | 2.899 / 8.86 |
| bf16 | seg2-stride4-offload | unsupported | unsupported |
| int8-sdnq-hadamard | none | 17.112 / 6.21 | 17.965 / 6.16 |
| int8-sdnq-hadamard | activation-offload | unsupported | unsupported |
| int8-sdnq-hadamard | layer | 3.238 / 6.21 | 2.891 / 6.16 |
| int8-sdnq-hadamard | interval2 | 3.253 / 6.21 | 2.916 / 6.16 |
| int8-sdnq-hadamard | seg2-stride4 | 3.254 / 6.21 | 2.923 / 6.16 |
| int8-sdnq-hadamard | seg2-stride4-offload | unsupported | unsupported |
| fp8-torchao | none | 1.849 / 17.84 | 1.559 / 17.80 |
| fp8-torchao | activation-offload | unsupported | unsupported |
| fp8-torchao | layer | 1.869 / 17.84 | 1.599 / 17.79 |
| fp8-torchao | interval2 | 1.855 / 17.84 | 1.600 / 17.80 |
| fp8-torchao | seg2-stride4 | 1.859 / 17.84 | 1.523 / 17.80 |
| fp8-torchao | seg2-stride4-offload | unsupported | unsupported |
ERNIE 4.5 Image¶
Example: ernie/base/default/peft-lora. Resolution: 512x512.
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | 0.711 / 15.61 | 1.282 / 15.56 |
| bf16 | activation-offload | unsupported | unsupported |
| bf16 | layer | 1.110 / 4.94 | 1.840 / 4.90 |
| bf16 | interval2 | 0.876 / 10.16 | 1.536 / 10.12 |
| bf16 | seg2-stride4 | 0.874 / 10.16 | 1.532 / 10.12 |
| bf16 | seg2-stride4-offload | unsupported | unsupported |
| int8-sdnq-hadamard | none | 2.782 / 13.75 | 2.722 / 13.70 |
| int8-sdnq-hadamard | activation-offload | unsupported | unsupported |
| int8-sdnq-hadamard | layer | 4.262 / 2.98 | 4.393 / 2.94 |
| int8-sdnq-hadamard | interval2 | 3.547 / 8.26 | 3.380 / 8.21 |
| int8-sdnq-hadamard | seg2-stride4 | 3.366 / 8.26 | 3.457 / 8.21 |
| int8-sdnq-hadamard | seg2-stride4-offload | unsupported | unsupported |
| fp8-torchao | none | 2.432 / 14.03 | 2.303 / 13.98 |
| fp8-torchao | activation-offload | unsupported | unsupported |
| fp8-torchao | layer | 3.920 / 3.26 | 4.008 / 3.22 |
| fp8-torchao | interval2 | 3.316 / 8.54 | 2.973 / 8.49 |
| fp8-torchao | seg2-stride4 | 2.994 / 8.54 | 3.046 / 8.49 |
| fp8-torchao | seg2-stride4-offload | unsupported | unsupported |
Flux.3 Image Klein¶
例: flux3_image/klein-base/default/peft-lora、Klein Base。学習設定: 512x512 中央クロップ、batch 1、rank/alpha 32 の attention LoRA、BF16 AdamW、native SDPA、regional Inductor compilation(default、C++ wrapper)。CREPA と assistant adapter は無効です。各測定行は 30 更新を実行し、step time から最初の 5 更新とキャッシュ準備を除外します。 VRAM は学習更新中の PyTorch peak allocated memory です。
データセット: RareConcepts/Domokun、27 枚。固定 caption: a photograph of a toy character(キャッシュされたテキストは 80 tokens)。
PyTorch 2.14.1+cu130; Diffusers 0.41.0; Transformers 5.20.1; PEFT 0.21.2; Accelerate 1.15.0; SDNQ 0.2.8; TorchAO 0.17.0+cu130. dynamo_dynamic=true.
画像、テキスト、参照画像、joint stream のブロック列はそれぞれ独立に分割します。interval2 は隣接する 2 ブロックをまとめて checkpoint し、seg2-stride4 は 2 ブロックを checkpoint して次の 2 ブロックの activations を保持します。Hidden-state capture は per-block path を使います。Attention activation offload は未対応です。
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | 0.159 / 13.69 | 0.231 / 13.65 |
| bf16 | activation-offload | unsupported | unsupported |
| bf16 | layer | 0.265 / 11.05 | 0.302 / 11.01 |
| bf16 | interval2 | 0.249 / 11.04 | 0.298 / 11.00 |
| bf16 | seg2-stride4 | 0.209 / 12.26 | 0.270 / 12.22 |
| bf16 | seg2-stride4-offload | unsupported | unsupported |
| int8-sdnq-hadamard | none | 0.189 / 12.39 | 0.267 / 12.35 |
| int8-sdnq-hadamard | activation-offload | unsupported | unsupported |
| int8-sdnq-hadamard | layer | 0.340 / 6.34 | 0.349 / 6.31 |
| int8-sdnq-hadamard | interval2 | 0.277 / 6.34 | 0.344 / 6.31 |
| int8-sdnq-hadamard | seg2-stride4 | 0.232 / 9.14 | 0.301 / 9.10 |
| int8-sdnq-hadamard | seg2-stride4-offload | unsupported | unsupported |
| fp8-torchao | none | 0.195 / 10.39 | 0.250 / 10.33 |
| fp8-torchao | activation-offload | unsupported | unsupported |
| fp8-torchao | layer | 0.325 / 6.20 | 0.330 / 6.15 |
| fp8-torchao | interval2 | 0.302 / 6.15 | 0.331 / 6.09 |
| fp8-torchao | seg2-stride4 | 0.252 / 8.10 | 0.288 / 8.05 |
| fp8-torchao | seg2-stride4-offload | unsupported | unsupported |
| fp8wo-torchao | none | 0.181 / 16.74 | 0.258 / 16.69 |
| fp8wo-torchao | activation-offload | unsupported | unsupported |
| fp8wo-torchao | layer | 0.285 / 6.09 | 0.364 / 6.04 |
| fp8wo-torchao | interval2 | 0.265 / 6.30 | 0.368 / 6.25 |
| fp8wo-torchao | seg2-stride4 | 0.221 / 11.17 | 0.297 / 11.12 |
| fp8wo-torchao | seg2-stride4-offload | unsupported | unsupported |
HeartMula¶
Example: heartmula/3b/default/peft-lora. Audio-token training.
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | failed | failed |
| bf16 | activation-offload | unsupported | unsupported |
| bf16 | layer | failed | failed |
| bf16 | interval2 | unsupported | unsupported |
| bf16 | seg2-stride4 | unsupported | unsupported |
| bf16 | seg2-stride4-offload | unsupported | unsupported |
| int8-sdnq-hadamard | none | OOM | OOM |
| int8-sdnq-hadamard | activation-offload | unsupported | unsupported |
| int8-sdnq-hadamard | layer | failed | failed |
| int8-sdnq-hadamard | interval2 | unsupported | unsupported |
| int8-sdnq-hadamard | seg2-stride4 | unsupported | unsupported |
| int8-sdnq-hadamard | seg2-stride4-offload | unsupported | unsupported |
| fp8-torchao | none | failed | failed |
| fp8-torchao | activation-offload | unsupported | unsupported |
| fp8-torchao | layer | failed | failed |
| fp8-torchao | interval2 | unsupported | unsupported |
| fp8-torchao | seg2-stride4 | unsupported | unsupported |
| fp8-torchao | seg2-stride4-offload | unsupported | unsupported |
HiDream¶
Example: hidream/full/default/peft-lora. Resolution: 512x512.
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | 0.515 / 44.58 | OOM |
| bf16 | activation-offload | unsupported | unsupported |
| bf16 | layer | 0.928 / 33.57 | 1.043 / 33.52 |
| bf16 | interval2 | 0.971 / 33.57 | 1.002 / 33.52 |
| bf16 | seg2-stride4 | 0.952 / 33.57 | 1.010 / 33.52 |
| bf16 | seg2-stride4-offload | unsupported | unsupported |
| int8-sdnq-hadamard | none | not measured | not measured |
| int8-sdnq-hadamard | activation-offload | unsupported | unsupported |
| int8-sdnq-hadamard | layer | 2.497 / 17.99 | 2.058 / 17.93 |
| int8-sdnq-hadamard | interval2 | unsupported | unsupported |
| int8-sdnq-hadamard | seg2-stride4 | unsupported | unsupported |
| int8-sdnq-hadamard | seg2-stride4-offload | unsupported | unsupported |
| fp8-torchao | none | not measured | not measured |
| fp8-torchao | activation-offload | unsupported | unsupported |
| fp8-torchao | layer | 4.920 / 18.10 | 4.338 / 18.05 |
| fp8-torchao | interval2 | unsupported | unsupported |
| fp8-torchao | seg2-stride4 | unsupported | unsupported |
| fp8-torchao | seg2-stride4-offload | unsupported | unsupported |
SDNQ Hadamard numbers use sdnq_compile_mode=eager. The compiled SDNQ path quantizes HiDream, but this sweep spent the first training step in Inductor dequantizer compilation, so it is not listed as a throughput row.
HunyuanVideo¶
Example: hunyuanvideo/t2v-480p/default/1.5-t2v.peft-lora. Training shape: 480 pixel-area video buckets, 48 frames, batch 2.
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | OOM | OOM |
| bf16 | activation-offload | not run | not run |
| bf16 | layer | 7.682 / 26.35 | 22.816 / 26.30 |
| bf16 | interval2 | 7.398 / 26.11 | 22.772 / 26.06 |
| bf16 | seg2-stride4 | OOM | OOM |
| bf16 | seg2-stride4-offload | 10.679 / 58.37 | not run |
| int8-sdnq-hadamard | none | not run | not run |
| int8-sdnq-hadamard | activation-offload | not run | not run |
| int8-sdnq-hadamard | layer | 11.765 / 25.96 | 34.464 / 25.92 |
| int8-sdnq-hadamard | interval2 | not run | not run |
| int8-sdnq-hadamard | seg2-stride4 | not run | not run |
| int8-sdnq-hadamard | seg2-stride4-offload | not run | not run |
| fp8-torchao | none | not run | not run |
| fp8-torchao | activation-offload | not run | not run |
| fp8-torchao | layer | 10.516 / 33.55 | 32.003 / 33.53 |
| fp8-torchao | interval2 | not run | not run |
| fp8-torchao | seg2-stride4 | not run | not run |
| fp8-torchao | seg2-stride4-offload | not run | not run |
HunyuanVideo はこの training shape では activation が重いです。Per-block と interval-2 checkpointing は安定して入り、checkpointing なしは 80 GB H100 でも入りません。seg2-stride4 は attention activation offload を有効にした場合だけ入りましたが、速度向けではなくメモリ用の fallback です。SDNQ Hadamard は動きますが、conditioning shape が変わるため測定中にも dynamic kernel compilation が残ります。
Ideogram 4.0¶
Example: ideogram/fp8/default/peft-lora. Resolution: 1024x1024. fp8 flavour は Ideogram 4 の native weight-only fp8 checkpoint を使います (base_model_precision=no_change)。bf16-upcast は ideogram_fp8_base_upcast=true を設定し、ロード時に base weights を bf16 に dequantize します。他の base_model_precision(例: int8-sdnq)を指定した場合も先に dequantize されるため、quantizer は実際の weights に対して動作します。
このテーブルの以前の版は、Ideogram が gradient_checkpointing_interval、gradient_checkpointing_segment_stride、gradient_checkpointing_backend を反映する前(custom loader が共有の wiring をスキップしていた)、かつ int8-sdnq が fp8 checkpoint を実際に quantize する前に測定されたものです — すべての checkpointing 行は、実際には fp8-native weights に対する full-layer torch checkpointing でした。以下の H100 の数値は修正後のもので、L40S 行は再測定待ちです。
torch-ffn/unsloth-ffn backend は unsupported です。Ideogram 4 は attention/FFN の checkpointing 境界を公開していません。
| Precision | Mode | Backend | H100 speed (s/step) | H100 VRAM (GiB) |
|---|---|---|---|---|
| fp8-native | layer | torch | 1.068 | 12.33 |
| fp8-native | layer | unsloth | 1.098 | 11.17 |
| fp8-native | seg2-stride4 | torch | 0.915 | 36.28 |
| fp8-native | seg2-stride4 | unsloth | 0.929 | 35.70 |
| bf16-upcast | layer | torch | 0.962 | 20.51 |
| bf16-upcast | layer | unsloth | 0.992 | 19.35 |
| bf16-upcast | seg2-stride4 | torch | 0.842 | 36.85 |
| bf16-upcast | seg2-stride4 | unsloth | 0.848 | 36.27 |
| int8-sdnq-hadamard | layer | torch | 1.735 | 11.88 |
| int8-sdnq-hadamard | layer | unsloth | 1.535 | 10.72 |
| int8-sdnq-hadamard | seg2-stride4 | torch | 0.981 | 28.19 |
| int8-sdnq-hadamard | seg2-stride4 | unsloth | 0.992 | 27.61 |
まとめ: seg2-stride4 は full-layer より約 14% 速く、保持される activations は約 24 GiB 増えます。unsloth offload は約 1.2 GiB を節約し、step time のコストは 1-3% です(int8 full-layer では offload が quantized matmul とオーバーラップするため torch より速くなります)。VRAM に余裕があれば bf16-upcast が throughput の勝者です。
Kandinsky 5 Image¶
Example: kandinsky5_image/default/default/6b-t2i.lycoris-lokr. Resolution: 1024x1024.
Note: batch 3 at 1024x1024 needs full checkpointing on both cards. SDNQ with Hadamard is the best low-VRAM row; H100 can also use partial checkpointing with SDNQ, but only near the top of the card.
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | OOM | OOM |
| bf16 | activation-offload | 6.956 / 25.52 | 10.189 / 25.42 |
| bf16 | layer | 6.590 / 25.58 | 9.458 / 25.55 |
| bf16 | interval2 | OOM | OOM |
| bf16 | seg2-stride4 | OOM | OOM |
| bf16 | seg2-stride4-offload | OOM | OOM |
| int8-sdnq-hadamard | none | OOM | OOM |
| int8-sdnq-hadamard | activation-offload | 7.186 / 20.00 | 10.141 / 19.95 |
| int8-sdnq-hadamard | layer | 6.830 / 20.12 | 9.362 / 20.08 |
| int8-sdnq-hadamard | interval2 | 5.746 / 75.67 | OOM |
| int8-sdnq-hadamard | seg2-stride4 | OOM | OOM |
| int8-sdnq-hadamard | seg2-stride4-offload | 6.057 / 71.46 | OOM |
| fp8-torchao | none | OOM | OOM |
| fp8-torchao | activation-offload | 8.319 / 24.29 | 14.716 / 24.24 |
| fp8-torchao | layer | 7.976 / 24.40 | 13.949 / 24.35 |
| fp8-torchao | interval2 | OOM | OOM |
| fp8-torchao | seg2-stride4 | OOM | OOM |
| fp8-torchao | seg2-stride4-offload | OOM | OOM |
Kandinsky 5 Video¶
Example: kandinsky5_video/default/default/2b-t2v.peft-lora. Resolution: 768x512, 81f.
Kandinsky 5 video is activation-heavy at this frame count. Full block checkpointing is the practical baseline on both cards. On H100, interval2 and seg2-stride4 are faster when they fit; on L40S, SDNQ interval2 is the only partial-checkpoint row here that fits without attention activation offload.
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | OOM | OOM |
| bf16 | activation-offload | 2.580 / 9.49 | 7.136 / 9.45 |
| bf16 | layer | 2.267 / 9.83 | 6.379 / 9.79 |
| bf16 | interval2 | 1.967 / 44.57 | OOM |
| bf16 | seg2-stride4 | 1.971 / 46.62 | OOM |
| bf16 | seg2-stride4-offload | 2.275 / 37.99 | 6.249 / 37.94 |
| int8-sdnq-hadamard | none | OOM | OOM |
| int8-sdnq-hadamard | activation-offload | 2.844 / 8.07 | 7.234 / 8.02 |
| int8-sdnq-hadamard | layer | 2.460 / 8.40 | 6.509 / 8.35 |
| int8-sdnq-hadamard | interval2 | 2.126 / 43.12 | 5.641 / 43.08 |
| int8-sdnq-hadamard | seg2-stride4 | 2.125 / 45.19 | OOM |
| int8-sdnq-hadamard | seg2-stride4-offload | 2.451 / 36.56 | 6.322 / 36.51 |
| fp8-torchao | none | OOM | OOM |
| fp8-torchao | activation-offload | 3.867 / 15.11 | 11.501 / 15.06 |
| fp8-torchao | layer | 3.579 / 15.28 | 10.822 / 15.24 |
| fp8-torchao | interval2 | OOM | OOM |
| fp8-torchao | seg2-stride4 | OOM | OOM |
| fp8-torchao | seg2-stride4-offload | OOM | OOM |
Kolors¶
Example: kolors/1.0/default/peft-lora. Resolution: 1024x1024.
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | 0.635 / 7.22 | 0.628 / 7.17 |
| bf16 | activation-offload | unsupported | unsupported |
| bf16 | layer | 1.118 / 5.36 | 1.065 / 5.31 |
| bf16 | interval2 | 1.105 / 5.36 | 1.068 / 5.31 |
| bf16 | seg2-stride4 | 1.110 / 5.36 | 1.072 / 5.31 |
| bf16 | seg2-stride4-offload | unsupported | unsupported |
| int8-sdnq-hadamard | none | 1.860 / 5.68 | 1.726 / 5.63 |
| int8-sdnq-hadamard | activation-offload | unsupported | unsupported |
| int8-sdnq-hadamard | layer | 2.967 / 3.38 | 2.803 / 3.33 |
| int8-sdnq-hadamard | interval2 | 2.770 / 3.32 | 2.655 / 3.27 |
| int8-sdnq-hadamard | seg2-stride4 | 2.805 / 3.32 | 2.742 / 3.27 |
| int8-sdnq-hadamard | seg2-stride4-offload | unsupported | unsupported |
| fp8-torchao | none | 1.629 / 8.79 | 1.637 / 8.75 |
| fp8-torchao | activation-offload | unsupported | unsupported |
| fp8-torchao | layer | 3.044 / 3.50 | 3.013 / 3.45 |
| fp8-torchao | interval2 | 3.040 / 3.50 | 3.019 / 3.45 |
| fp8-torchao | seg2-stride4 | 2.988 / 3.50 | 2.935 / 3.45 |
| fp8-torchao | seg2-stride4-offload | unsupported | unsupported |
Krea 2¶
例: krea2/raw/default/peft-lora。学習解像度: 512 px square crop。例の validation 設定: 1024x1024。benchmark では validation は無効です。
メイン表は regional compilation を使っています。Krea2 の step speed には有利ですが、VRAM 比較としてはきれいではありません。compiled graph/workspace により、いくつかの checkpoint mode で peak が未 checkpoint の peak に近く残ります。regional compilation を無効にした bf16 control run では、checkpointing が正しく接続され、期待通りの memory/speed 形になりました:
ここでの activation-offload 行は、full-block checkpointing に attention activation offload を足したものです。full-block layer checkpointing 単体と比べると、この Krea2 shape では attention offload は peak VRAM を下げず、主に CPU transfer overhead を増やしました。
| Mode | H100 no-compile | L40S no-compile |
|---|---|---|
| none | 0.272 / 40.09 | 0.661 / 40.01 |
| layer | 0.371 / 30.06 | 0.919 / 30.01 |
| seg2-stride4 | 0.317 / 34.75 | 0.788 / 34.70 |
| activation-offload | 0.657 / 30.50 | 1.341 / 30.30 |
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | 0.275 / 40.06 | 0.662 / 40.01 |
| bf16 | activation-offload | 0.416 / 34.62 | 0.822 / 34.57 |
| bf16 | layer | 0.268 / 40.06 | 0.665 / 40.01 |
| bf16 | interval2 | 0.274 / 40.06 | 0.663 / 40.01 |
| bf16 | seg2-stride4 | 0.279 / 40.06 | 0.663 / 40.01 |
| bf16 | seg2-stride4-offload | 0.404 / 34.62 | 0.819 / 34.57 |
| int8-sdnq-hadamard | none | 0.462 / 27.01 | 0.807 / 26.96 |
| int8-sdnq-hadamard | activation-offload | 0.773 / 21.57 | 1.012 / 21.53 |
| int8-sdnq-hadamard | layer | 0.473 / 27.01 | 0.802 / 26.96 |
| int8-sdnq-hadamard | interval2 | 0.474 / 27.01 | 0.804 / 26.96 |
| int8-sdnq-hadamard | seg2-stride4 | 0.472 / 27.01 | 0.802 / 26.96 |
| int8-sdnq-hadamard | seg2-stride4-offload | 0.744 / 21.57 | 1.007 / 21.53 |
| fp8-torchao | none | 0.689 / 51.63 | OOM |
| fp8-torchao | activation-offload | 0.975 / 37.77 | 2.058 / 37.73 |
| fp8-torchao | layer | 0.689 / 51.63 | OOM |
| fp8-torchao | interval2 | 0.684 / 51.63 | OOM |
| fp8-torchao | seg2-stride4 | 0.674 / 51.63 | OOM |
| fp8-torchao | seg2-stride4-offload | 0.965 / 37.77 | 2.053 / 37.73 |
LongCat Image¶
例: longcat_image/default/default/peft-lora。Training resolution: 512 px square; validation resolution: 1024x1024. Rows use attention_mechanism=native-flash.
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | 0.193 / 16.47 | 0.262 / 16.42 |
| bf16 | activation-offload | 0.544 / 12.73 | 0.543 / 12.69 |
| bf16 | layer | 0.327 / 12.38 | 0.370 / 12.34 |
| bf16 | interval2 | 0.257 / 14.38 | 0.313 / 14.34 |
| bf16 | seg2-stride4 | 0.263 / 14.36 | 0.316 / 14.31 |
| bf16 | seg2-stride4-offload | 0.446 / 13.42 | 0.492 / 13.38 |
| int8-sdnq-hadamard | none | 0.578 / 12.54 | 0.537 / 12.45 |
| int8-sdnq-hadamard | activation-offload | 1.184 / 7.43 | 1.185 / 7.39 |
| int8-sdnq-hadamard | layer | 0.901 / 7.19 | 0.911 / 7.09 |
| int8-sdnq-hadamard | interval2 | 0.718 / 9.73 | 0.695 / 9.68 |
| int8-sdnq-hadamard | seg2-stride4 | 0.735 / 9.72 | 0.717 / 9.68 |
| int8-sdnq-hadamard | seg2-stride4-offload | 1.056 / 8.49 | 1.011 / 8.45 |
| fp8-torchao | none | 0.602 / 25.19 | 0.834 / 25.14 |
| fp8-torchao | activation-offload | 1.662 / 7.75 | 1.844 / 7.70 |
| fp8-torchao | layer | 0.984 / 7.57 | 1.080 / 7.53 |
| fp8-torchao | interval2 | 0.750 / 16.15 | 0.938 / 16.10 |
| fp8-torchao | seg2-stride4 | 0.760 / 16.13 | 0.961 / 16.09 |
| fp8-torchao | seg2-stride4-offload | 1.287 / 13.02 | 1.653 / 12.98 |
LongCat Video¶
例: longcat_video/final/default/peft-lora+ramtorch。Resolution: 832x480, 81f。各行は attention_mechanism=native-flash を使用。
LongCat Video はこの shape では activation が重いです。Full per-block checkpointing が実用的な行です。Partial checkpoint 行(interval2、seg2-stride4)はここでは入りません。strided 行に attention activation offload を足しても不足します。通常の attention activation offload は bf16 と SDNQ では入りますが、full checkpointing よりかなり遅くなります。
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | OOM (77.86 GiB) | OOM (43.30 GiB) |
| bf16 | activation-offload | 25.774 / 37.36 | 49.149 / 37.14 |
| bf16 | layer | 7.448 / 23.73 | 24.866 / 23.68 |
| bf16 | interval2 | OOM (76.41 GiB) | OOM (42.80 GiB) |
| bf16 | seg2-stride4 | OOM (76.42 GiB) | OOM (43.06 GiB) |
| bf16 | seg2-stride4-offload | OOM (76.72 GiB) | OOM (42.29 GiB) |
| int8-sdnq-hadamard | none | OOM (77.40 GiB) | OOM (43.59 GiB) |
| int8-sdnq-hadamard | activation-offload | 30.887 / 35.28 | 61.270 / 35.24 |
| int8-sdnq-hadamard | layer | 8.444 / 21.60 | 25.164 / 21.55 |
| int8-sdnq-hadamard | interval2 | OOM (76.01 GiB) | OOM (42.47 GiB) |
| int8-sdnq-hadamard | seg2-stride4 | OOM (77.01 GiB) | OOM (43.02 GiB) |
| int8-sdnq-hadamard | seg2-stride4-offload | OOM (76.42 GiB) | OOM (42.57 GiB) |
| fp8-torchao | none | OOM (75.87 GiB) | OOM (41.28 GiB) |
| fp8-torchao | activation-offload | 30.163 / 47.88 | OOM (40.11 GiB) |
| fp8-torchao | layer | 8.343 / 34.16 | 24.659 / 34.07 |
| fp8-torchao | interval2 | OOM (74.63 GiB) | OOM (40.85 GiB) |
| fp8-torchao | seg2-stride4 | OOM (75.37 GiB) | OOM (41.19 GiB) |
| fp8-torchao | seg2-stride4-offload | OOM (75.55 GiB) | OOM (40.94 GiB) |
LTXVideo 0.9.5¶
Example: ltxvideo/0.9.5/default/t2v.peft-lora. Resolution: 768x512, 49f.
数字は warm seconds/step / peak GiB です。full-run average は setup と compile overhead を含むため、sweep artifacts に記録しています。
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | 0.274 / 8.77 | 0.275 / 8.72 |
| bf16 | layer | 0.462 / 4.21 | 0.459 / 4.16 |
| bf16 | interval2 | 0.449 / 4.30 | 0.433 / 4.25 |
| bf16 | seg2-stride4 | 0.359 / 6.40 | 0.357 / 6.35 |
| int8-sdnq-hadamard | none | 0.688 / 7.05 | 0.640 / 6.90 |
| int8-sdnq-hadamard | layer | 1.094 / 2.59 | 1.081 / 2.44 |
| int8-sdnq-hadamard | interval2 | 1.112 / 2.57 | 1.073 / 2.53 |
| int8-sdnq-hadamard | seg2-stride4 | 0.887 / 4.61 | 0.817 / 4.56 |
| fp8-torchao | none | 0.655 / 17.45 | 0.735 / 17.41 |
| fp8-torchao | layer | 1.226 / 2.94 | 1.206 / 2.89 |
| fp8-torchao | interval2 | 1.259 / 3.40 | 1.233 / 3.35 |
| fp8-torchao | seg2-stride4 | 0.933 / 9.96 | 0.901 / 9.91 |
| fp8wo-torchao | none | 0.328 / 10.06 | 0.325 / 10.01 |
| fp8wo-torchao | layer | 0.567 / 2.64 | 0.540 / 2.59 |
| fp8wo-torchao | interval2 | 0.555 / 2.84 | 0.531 / 2.79 |
| fp8wo-torchao | seg2-stride4 | 0.443 / 6.20 | 0.432 / 6.15 |
Attention activation offload rows は、この sweep の LTXVideo 0.9 では非対応です。
LTXVideo2 2.3¶
Example: ltxvideo2/2.3-dev/default/720p-single-gpu.peft-lora+sdnq-hadamard. Resolution: 1280x704, 49f.
Note: LTXVideo2 2.3 should be read from the no-regional-compile rows in this sweep; regional compile raised memory pressure for this model.
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | OOM | OOM |
| bf16 | activation-offload | 6.350 / 58.36 | OOM |
| bf16 | layer | 3.993 / 47.95 | OOM |
| bf16 | interval2 | 3.977 / 48.83 | OOM |
| bf16 | seg2-stride4 | OOM | OOM |
| bf16 | seg2-stride4-offload | 5.554 / 75.64 | OOM |
| int8-sdnq-hadamard | none | OOM | OOM |
| int8-sdnq-hadamard | activation-offload | 10.102 / 38.20 | 9.852 / 38.15 |
| int8-sdnq-hadamard | layer | 7.753 / 27.78 | 7.579 / 27.73 |
| int8-sdnq-hadamard | interval2 | 7.733 / 28.66 | 7.288 / 28.61 |
| int8-sdnq-hadamard | seg2-stride4 | 6.522 / 61.50 | OOM |
| int8-sdnq-hadamard | seg2-stride4-offload | 8.659 / 55.48 | OOM |
| fp8-torchao | none | OOM | OOM |
| fp8-torchao | activation-offload | failed | 22.917 / 38.57 |
| fp8-torchao | layer | 8.580 / 30.27 | 10.381 / 30.22 |
| fp8-torchao | interval2 | 8.660 / 33.71 | 10.661 / 33.66 |
| fp8-torchao | seg2-stride4 | OOM | OOM |
| fp8-torchao | seg2-stride4-offload | failed | OOM |
Lumina2¶
Example: lumina2/default/default/peft-lora. Resolution: 512x512.
注記: Lumina2 は segmented whole-block path を使うようになりました。interval2 は 2-block segment ごとに checkpoint し、seg2-stride4 は 2 blocks を checkpoint、次の 2 blocks は activations を保持して実行し、それを繰り返します。Attention activation offload はこの Lumina2 run には含めていません。
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | 0.235 / 15.99 | 0.332 / 15.94 |
| bf16 | layer | 0.384 / 6.60 | 0.457 / 6.56 |
| bf16 | interval2 | 0.356 / 6.87 | 0.424 / 6.82 |
| bf16 | seg2-stride4 | 0.295 / 11.43 | 0.377 / 11.38 |
| int8-sdnq-hadamard | none | 0.584 / 13.59 | 0.541 / 13.55 |
| int8-sdnq-hadamard | layer | 0.899 / 4.21 | 0.827 / 4.16 |
| int8-sdnq-hadamard | interval2 | 0.865 / 4.48 | 0.835 / 4.43 |
| int8-sdnq-hadamard | seg2-stride4 | 0.719 / 9.03 | 0.707 / 8.99 |
| fp8-torchao | none | 0.598 / 28.03 | 0.763 / 27.98 |
| fp8-torchao | layer | 0.950 / 5.93 | 0.967 / 5.88 |
| fp8-torchao | interval2 | 0.938 / 6.70 | 0.974 / 6.66 |
| fp8-torchao | seg2-stride4 | 0.765 / 17.36 | 0.901 / 17.32 |
| fp8wo-torchao | none | 0.273 / 17.97 | 0.389 / 17.93 |
| fp8wo-torchao | layer | 0.452 / 4.99 | 0.525 / 4.94 |
| fp8wo-torchao | interval2 | 0.427 / 5.40 | 0.522 / 5.35 |
| fp8wo-torchao | seg2-stride4 | 0.360 / 11.68 | 0.466 / 11.64 |
MageFlow¶
Example: mageflow/turbo/24g/image.peft-lora. Resolution: 1024x1024.
Note: MageFlow の 1024px variable-shape image path では、主に attention activation offload と weight-only FP8 が効きました。Block checkpointing mode は有効ですが、この sweep では measured peak residency は下がりませんでした。
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | 7.735 / 36.74 | 7.658 / 36.69 |
| bf16 | activation-offload | 8.902 / 23.05 | 9.477 / 23.00 |
| bf16 | layer | 7.805 / 36.74 | 7.504 / 36.69 |
| bf16 | interval2 | 8.036 / 36.74 | 7.762 / 36.69 |
| bf16 | seg2-stride4 | 7.882 / 36.74 | 7.531 / 36.69 |
| bf16 | seg2-stride4-offload | 8.833 / 23.05 | 9.288 / 23.01 |
| int8-sdnq-hadamard | none | 81.016 / 37.38 | 94.991 / 37.34 |
| fp8wo-torchao | none | 5.454 / 36.86 | 5.772 / 36.82 |
| fp8wo-torchao | activation-offload | 6.295 / 23.18 | 6.738 / 23.14 |
| fp8wo-torchao | seg2-stride4 | 5.542 / 36.86 | 5.595 / 36.82 |
OmniGen¶
Example: omnigen/default/default/lycoris-lokr. Resolution: 1024x1024.
Note: OmniGen は cached text embeddings ではなく token-ID prompt を使います。この行は、対応済みの no-checkpointing と full-block torch checkpointing path を測定したものです。interval、segmented-stride、attention-offload controls は、この family ではこの sweep 時点で未実装です。
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | 0.425 / 14.20 | 0.293 / 14.24 |
| bf16 | layer | 0.597 / 10.13 | 0.389 / 10.09 |
| int8-sdnq-hadamard | none | 1.523 / 11.00 | 1.388 / 11.06 |
| int8-sdnq-hadamard | layer | 1.312 / 6.75 | 1.064 / 6.70 |
| fp8-torchao | none | 0.690 / 19.25 | 0.608 / 19.30 |
| fp8-torchao | layer | 1.069 / 7.09 | 0.824 / 7.04 |
| fp8wo-torchao | none | 0.454 / 17.71 | 0.377 / 17.73 |
| fp8wo-torchao | layer | 0.646 / 6.98 | 0.534 / 6.94 |
PixArt¶
Example: pixart/default/default/lycoris-lokr. Resolution: 1024x1024.
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | 1.700 / 41.73 | 1.734 / 41.67 |
| bf16 | activation-offload | unsupported | unsupported |
| bf16 | layer | 2.433 / 5.63 | 2.346 / 5.58 |
| bf16 | interval2 | 2.440 / 6.01 | 2.348 / 5.96 |
| bf16 | seg2-stride4 | 2.092 / 23.90 | 2.072 / 23.86 |
| bf16 | seg2-stride4-offload | unsupported | unsupported |
| int8-sdnq-hadamard | none | 1.905 / 47.58 | OOM |
| int8-sdnq-hadamard | activation-offload | unsupported | unsupported |
| int8-sdnq-hadamard | layer | 2.738 / 6.07 | 2.937 / 6.03 |
| int8-sdnq-hadamard | interval2 | 2.734 / 6.03 | 2.943 / 5.99 |
| int8-sdnq-hadamard | seg2-stride4 | 2.336 / 26.85 | 2.596 / 26.81 |
| int8-sdnq-hadamard | seg2-stride4-offload | unsupported | unsupported |
| fp8-torchao | none | OOM | OOM |
| fp8-torchao | activation-offload | unsupported | unsupported |
| fp8-torchao | layer | 3.254 / 8.06 | 4.646 / 8.01 |
| fp8-torchao | interval2 | 3.260 / 9.66 | 4.649 / 9.61 |
| fp8-torchao | seg2-stride4 | 2.827 / 63.27 | OOM |
| fp8-torchao | seg2-stride4-offload | unsupported | unsupported |
Qwen Image 2.1¶
GPU 型番を確認した H200 と L40S で測定しました。qwen_image/v2.1/default/peft-lora、Qwen-Image 2.1、512x512 の Domokun、BF16、rank-32 LoRA、Optimi Lion、regional Inductor compilation(default モード)を使用しています。各実行は20ステップで、最初の5ステップを計時から除外します。各セルは 秒/ステップ / ピーク VRAM GiB で、ピークにはコンポーネントの初期化も含まれます。
実行環境: torch==2.11.0+cu128、diffusers==0.40.0。テキスト10 token、画像1024 token です。batch 1 の一部のメモリピークはコンポーネント初期化で決まります。
BF16 checkpoint スケジュール¶
none は checkpoint を無効化し、layer は各 block を個別に checkpoint します。interval2 は連続する 0–1, 2–3, … をグループ化します。seg2-stride4 は 0–1 を checkpoint し、2–3 の activation を保持して繰り返します。グループ実行では block swapping、隠れ状態の取得、KV cache を使用しません。これらの経路では block ごとの interval/stride 制御を維持します。attention activation offload(activation-offload、seg2-stride4-offload)は非対応です。BF16 で収まるため、この 2.1 測定には量子化を含めていません。
| モード | H200, batch 1 | H200, batch 20 | L40S, batch 1 |
|---|---|---|---|
none |
0.081 / 20.99 | 1.223 / 128.42 | 0.238 / 20.64 |
layer |
0.206 / 17.69 | 1.773 / 24.19 | 0.368 / 17.60 |
interval2 |
0.190 / 17.69 | 1.761 / 25.14 | 0.371 / 17.60 |
seg2-stride4 |
0.116 / 17.77 | 1.490 / 73.26 | 0.290 / 17.60 |
attention backend¶
attention の比較では checkpoint を無効化します。native SDPA は H200 で cuDNN、L40S で PyTorch Flash SDPA を選択しました。Qwen 2.1 はテキストに因果 attention、対象画像に全有効 key への非因果 attention を使用します。同じ長さで padding のないプロンプトに varlen は不要です。現在の FlashAttention 経路は padding のない text-to-image プロンプトが必要です。padding や交互に配置する条件には native SDPA または FlexAttention を使ってください。padding だけを表す varlen mask では、その因果構造を保持できません。
attention_mechanism |
H200, batch 1 | H200, batch 20 | L40S, batch 1 |
|---|---|---|---|
native |
0.081 / 20.99 | 1.223 / 128.42 | 0.238 / 20.64 |
native-flash |
0.080 / 20.98 | 1.278 / 128.40 | 0.238 / 20.63 |
native-efficient |
未測定 | 未測定 | 0.259 / 20.75 |
flash-attn-hub |
未測定 | 未測定 | 0.238 / 20.75 |
flash-attn-3-hub |
0.094 / 20.98 | 1.215 / 128.40 | 未測定 |
flash-attn-3-varlen-hub |
0.096 / 20.97 | 1.216 / 128.44 | 未測定 |
flex |
0.100 / 20.92 | 1.314 / 134.45 | 0.271 / 20.70 |
flash-attn-4-hub |
失敗 | 失敗 | 未測定 |
cudnn |
失敗 | 未測定 | 未測定 |
等長 varlen のメタデータ補助関数を上流 Diffusers から導入しました。長さは形状から取得し、累積オフセットを arange で作ることで、リリース版の GPU .item() 同期と graph break を除去します。全要素が有効な冗長 mask は collate 時に除去します。前向き・勾配の同等性とグラフ取得は計時とは別に検証します。
attention_mechanism: "cudnn" の強制指定は PyTorch 2.11 Inductor で CantSplit エラーになりましたが、native SDPA の自動選択では cuDNN が動作しました。FA4 Hub は nvidia-cutlass-dsl==4.7.1 で cutlass.cute.core.ThrMma が見つからず、読み込みに失敗したため計時結果はありません。Hub backend は trust_remote_code: true を使用します。FA3 は Hopper 向けで、L40S では使えません(上流の対応環境)。
H200 の batch 拡大¶
同じ H200 で native SDPA は batch 10 で 0.612 秒、batch 20 で 1.223 秒となり、どちらも約 16.35 画像/秒です。スループットが頭打ちになった後は、batch を倍にすると計算量もほぼ倍になります。144 GB プリセットは checkpoint を無効にしたままです。大きい batch は追加容量を利用しますが、画像/秒の増加を保証しません。
| Batch | 秒/ステップ | 画像/秒 | ピーク GiB |
|---|---|---|---|
| 1 | 0.081 | 12.38 | 20.99 |
| 10 | 0.612 | 16.35 | 71.85 |
| 20 | 1.223 | 16.35 | 128.42 |
| 同じ更新後の native attention 経路を使った H100 は、batch 10、checkpoint 無効で 0.639 秒/step、ピーク VRAM 71.83 GiB でした。 |
キャッシュ済み Domokun 入力による全 transformer の検証では、冗長 mask の有無で FP32 出力が完全に一致し、勾配の相対 L2 誤差は 1.97e-6 でした。BF16 backend は数値的に同一ではありません。この1 batch では、FP32 に対する LoRA 勾配全体のコサイン類似度は native SDPA で約 0.92–0.93、FA3 で約 0.80 でした。これは数値診断であり、収束性の比較ではありません。
H200 batch 20 の trace では、記録区間の 93.1% で kernel が実行されていました。kernel 時間の 70.5% が GEMM、9.7% が attention です。Inductor は normalization/RoPE と要素単位の epilogue を融合済みです。最大の空き時間は batch 準備付近にありました。kernel の実行時間比率は SM occupancy ではなく、profiler の時間はスループット表に使用していません。
この27画像のデータセットでは batch 20 の prefetch は遅くなりました。queue length 2 で host prefetch は平均 2.030 秒/ステップ、device prefetch(閾値 1 MiB)は 2.036 秒で、無効時は 1.223 秒でした。中央値は約 1.17 秒でも周期的に約3秒のステップがあり、プリセットでは無効のままです。
250 step の Domokun 設定はスループット測定用であり、安定した収束を保証するレシピではありません。以前の checkpoint は再ロード後に認識可能な Domokun を生成しましたが、新規の 250 step 学習では再現できませんでした。padding mask の保持、コンパイルの無効化、以前の RoPE 式への復元でも改善しませんでした。キャッシュ latent のデコードでは正しい被写体を確認しています。学習品質低下の原因は未解決で、時間の表は attention backend 間の画質の同等性を示すものではありません。
Qwen Image¶
以下は旧版の qwen_image/v2.1/default/peft-lora サンプルを使った Qwen-Image 1.0(model_flavour: "v1.0")の過去の測定値です。解像度は 1024x1024 です。現在のサンプルは 2.1 を選択します。ほぼ同じ interval/stride の値だけでは異なるスケジュールが有効だったとは確認できず、2.1 の設定の根拠にはできません。
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | OOM | OOM |
| bf16 | activation-offload | unsupported | unsupported |
| bf16 | layer | 1.202 / 41.04 | 3.377 / 40.99 |
| bf16 | interval2 | 1.201 / 41.04 | 3.382 / 40.99 |
| bf16 | seg2-stride4 | 1.205 / 41.03 | 3.385 / 40.99 |
| bf16 | seg2-stride4-offload | unsupported | unsupported |
| int8-sdnq-hadamard | none | 1.675 / 63.48 | OOM |
| int8-sdnq-hadamard | activation-offload | unsupported | unsupported |
| int8-sdnq-hadamard | layer | 2.640 / 24.09 | 3.928 / 24.05 |
| int8-sdnq-hadamard | interval2 | 2.722 / 24.09 | 3.918 / 24.05 |
| int8-sdnq-hadamard | seg2-stride4 | 2.663 / 24.09 | 3.919 / 24.05 |
| int8-sdnq-hadamard | seg2-stride4-offload | unsupported | unsupported |
| fp8-torchao | none | OOM | OOM |
| fp8-torchao | activation-offload | unsupported | unsupported |
| fp8-torchao | layer | 3.088 / 25.34 | 6.172 / 25.29 |
| fp8-torchao | interval2 | 3.095 / 25.34 | 6.173 / 25.29 |
| fp8-torchao | seg2-stride4 | 3.125 / 25.34 | 6.141 / 25.29 |
| fp8-torchao | seg2-stride4-offload | unsupported | unsupported |
Sana¶
Example: sana/default/default/lycoris-lokr. Resolution: 1024x1024.
Note: Sana has interval checkpointing; stride is not a separate segmented schedule for this family in the measured rows.
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | 0.529 / 23.71 | 0.597 / 23.67 |
| bf16 | activation-offload | unsupported | unsupported |
| bf16 | layer | 0.529 / 23.72 | 0.596 / 23.66 |
| bf16 | interval2 | 0.530 / 23.72 | 0.598 / 23.66 |
| bf16 | seg2-stride4 | unsupported | unsupported |
| bf16 | seg2-stride4-offload | unsupported | unsupported |
| int8-sdnq-hadamard | none | 0.554 / 22.92 | 0.590 / 22.88 |
| int8-sdnq-hadamard | activation-offload | unsupported | unsupported |
| int8-sdnq-hadamard | layer | 0.554 / 22.92 | 0.589 / 22.88 |
| int8-sdnq-hadamard | interval2 | 0.556 / 22.92 | 0.591 / 22.88 |
| int8-sdnq-hadamard | seg2-stride4 | unsupported | unsupported |
| int8-sdnq-hadamard | seg2-stride4-offload | unsupported | unsupported |
| fp8-torchao | none | 0.633 / 33.67 | 0.753 / 33.62 |
| fp8-torchao | activation-offload | unsupported | unsupported |
| fp8-torchao | layer | 0.633 / 33.67 | 0.755 / 33.62 |
| fp8-torchao | interval2 | 0.631 / 33.67 | 0.759 / 33.62 |
| fp8-torchao | seg2-stride4 | unsupported | unsupported |
| fp8-torchao | seg2-stride4-offload | unsupported | unsupported |
SanaVideo¶
Example: sanavideo/2b-480p/default/peft-lora. Resolution: 832x480, 49f.
Note: SanaVideo は linear attention を使うため、attention activation offload は未対応です。標準 path では segmented whole-block checkpointing に対応しています。
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | 0.599 / 59.15 | OOM |
| bf16 | activation-offload | unsupported | unsupported |
| bf16 | layer | 0.597 / 59.15 | OOM |
| bf16 | interval2 | not run | OOM |
| bf16 | seg2-stride4 | not run | OOM |
| bf16 | seg2-stride4-offload | unsupported | unsupported |
| int8-sdnq-hadamard | none | 0.641 / 58.36 | OOM |
| int8-sdnq-hadamard | activation-offload | unsupported | unsupported |
| int8-sdnq-hadamard | layer | 0.641 / 58.36 | OOM |
| int8-sdnq-hadamard | interval2 | not run | OOM |
| int8-sdnq-hadamard | seg2-stride4 | not run | OOM |
| int8-sdnq-hadamard | seg2-stride4-offload | unsupported | unsupported |
| fp8-torchao | none | OOM | OOM |
| fp8-torchao | activation-offload | unsupported | unsupported |
| fp8-torchao | layer | OOM | OOM |
| fp8-torchao | interval2 | OOM | OOM |
| fp8-torchao | seg2-stride4 | OOM | OOM |
| fp8-torchao | seg2-stride4-offload | unsupported | unsupported |
SD 1.x¶
Example: sd1x/dreamshaper/default/peft-lora. Resolution: 512x512.
Note: SD1x は diffusers UNet path を使います。通常の layer checkpointing は supported ですが、interval と segmented stride controls はこの family では未接続です。
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | 0.181 / 2.87 | 0.176 / 2.83 |
| bf16 | activation-offload | unsupported | unsupported |
| bf16 | layer | 0.305 / 1.98 | 0.292 / 1.93 |
| bf16 | interval2 | unsupported | unsupported |
| bf16 | seg2-stride4 | unsupported | unsupported |
| bf16 | seg2-stride4-offload | unsupported | unsupported |
| int8-sdnq-hadamard | none | 0.446 / 3.07 | 0.431 / 3.04 |
| int8-sdnq-hadamard | activation-offload | unsupported | unsupported |
| int8-sdnq-hadamard | layer | 0.701 / 1.79 | 0.666 / 1.74 |
| int8-sdnq-hadamard | interval2 | unsupported | unsupported |
| int8-sdnq-hadamard | seg2-stride4 | unsupported | unsupported |
| int8-sdnq-hadamard | seg2-stride4-offload | unsupported | unsupported |
| fp8-torchao | none | 0.410 / 4.23 | 0.401 / 4.18 |
| fp8-torchao | activation-offload | unsupported | unsupported |
| fp8-torchao | layer | 0.785 / 1.96 | 0.756 / 1.91 |
| fp8-torchao | interval2 | unsupported | unsupported |
| fp8-torchao | seg2-stride4 | unsupported | unsupported |
| fp8-torchao | seg2-stride4-offload | unsupported | unsupported |
SD3¶
Example: sd3/default/default/peft-lora. Resolution: 1024x1024.
Note: SD3 は plain transformer path で real contiguous segmented checkpointing を使います。Attention activation offload も supported です。VRAM は大きく下がりますが、throughput は落ちます。
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | 0.529 / 34.59 | 1.189 / 34.53 |
| bf16 | activation-offload | 1.335 / 9.68 | 2.850 / 9.63 |
| bf16 | layer | 0.721 / 7.67 | 1.607 / 7.62 |
| bf16 | interval2 | 0.723 / 8.93 | 1.606 / 8.88 |
| bf16 | seg2-stride4 | 0.620 / 20.14 | 1.398 / 20.09 |
| bf16 | seg2-stride4-offload | 1.229 / 12.21 | 2.639 / 12.16 |
| int8-sdnq-hadamard | none | 0.858 / 33.66 | 1.381 / 33.61 |
| int8-sdnq-hadamard | activation-offload | 1.845 / 8.90 | 3.297 / 8.85 |
| int8-sdnq-hadamard | layer | 1.265 / 6.58 | 1.857 / 6.53 |
| int8-sdnq-hadamard | interval2 | 1.264 / 7.30 | 1.858 / 7.26 |
| int8-sdnq-hadamard | seg2-stride4 | 1.049 / 19.02 | 1.625 / 18.98 |
| int8-sdnq-hadamard | seg2-stride4-offload | 1.527 / 12.42 | 3.023 / 12.37 |
| fp8-torchao | none | OOM | OOM |
| fp8-torchao | activation-offload | 4.707 / 10.27 | 9.814 / 10.23 |
| fp8-torchao | layer | 1.575 / 9.13 | 3.279 / 9.09 |
| fp8-torchao | interval2 | 1.576 / 12.62 | 3.282 / 12.58 |
| fp8-torchao | seg2-stride4 | 1.376 / 45.70 | OOM |
| fp8-torchao | seg2-stride4-offload | 4.184 / 26.17 | 8.714 / 26.12 |
| fp8wo-torchao | none | 0.567 / 35.21 | 1.252 / 35.17 |
| fp8wo-torchao | activation-offload | 1.392 / 8.71 | 2.921 / 8.67 |
| fp8wo-torchao | layer | 0.795 / 5.69 | 1.736 / 5.65 |
| fp8wo-torchao | interval2 | 0.797 / 7.08 | 1.734 / 7.03 |
| fp8wo-torchao | seg2-stride4 | 0.679 / 19.43 | 1.490 / 19.38 |
| fp8wo-torchao | seg2-stride4-offload | 1.257 / 12.00 | 2.676 / 11.96 |
SDXL¶
Example: sdxl/default/default/lycoris-lokr. Resolution: 1024x1024.
Note: SDXL has real layer checkpointing. Interval and stride rows are included as coverage data, not as segmented-support recommendations.
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | 0.606 / 13.03 | 0.585 / 12.98 |
| bf16 | activation-offload | unsupported | unsupported |
| bf16 | layer | 1.080 / 6.53 | 1.029 / 6.48 |
| bf16 | interval2 | unsupported | unsupported |
| bf16 | seg2-stride4 | unsupported | unsupported |
| bf16 | seg2-stride4-offload | unsupported | unsupported |
| int8-sdnq-hadamard | none | 1.741 / 13.72 | 1.643 / 13.68 |
| int8-sdnq-hadamard | activation-offload | unsupported | unsupported |
| int8-sdnq-hadamard | layer | 2.820 / 4.64 | 2.647 / 4.59 |
| int8-sdnq-hadamard | interval2 | unsupported | unsupported |
| int8-sdnq-hadamard | seg2-stride4 | unsupported | unsupported |
| int8-sdnq-hadamard | seg2-stride4-offload | unsupported | unsupported |
| fp8-torchao | none | 1.608 / 26.22 | 1.582 / 26.16 |
| fp8-torchao | activation-offload | unsupported | unsupported |
| fp8-torchao | layer | 2.939 / 5.10 | 2.890 / 5.04 |
| fp8-torchao | interval2 | unsupported | unsupported |
| fp8-torchao | seg2-stride4 | unsupported | unsupported |
| fp8-torchao | seg2-stride4-offload | unsupported | unsupported |
Stable Cascade¶
Example: stable_cascade/default/default/stage-c.lycoris-lokr. Resolution: 1024x1024.
注記: stage C は full precision の prior path です。これらの行は mixed_precision=no と base_model_precision=no_change で実行しました。量子化 base precision 行はこのモデルでは有用な測定ではありません。interval と stride は UNet の Res/Timestep/Attention micro-block sequence に適用されます。
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | 0.884 / 51.52 | OOM |
| bf16 | activation-offload | unsupported | unsupported |
| bf16 | layer | 1.179 / 22.68 | 2.135 / 22.61 |
| bf16 | interval2 | 1.032 / 36.99 | 1.871 / 36.92 |
| bf16 | seg2-stride4 | 1.032 / 37.20 | 1.870 / 37.13 |
| bf16 | seg2-stride4-offload | unsupported | unsupported |
| int8-sdnq-hadamard | none | unsupported | unsupported |
| int8-sdnq-hadamard | activation-offload | unsupported | unsupported |
| int8-sdnq-hadamard | layer | unsupported | unsupported |
| int8-sdnq-hadamard | interval2 | unsupported | unsupported |
| int8-sdnq-hadamard | seg2-stride4 | unsupported | unsupported |
| int8-sdnq-hadamard | seg2-stride4-offload | unsupported | unsupported |
| fp8-torchao | none | unsupported | unsupported |
| fp8-torchao | activation-offload | unsupported | unsupported |
| fp8-torchao | layer | unsupported | unsupported |
| fp8-torchao | interval2 | unsupported | unsupported |
| fp8-torchao | seg2-stride4 | unsupported | unsupported |
| fp8-torchao | seg2-stride4-offload | unsupported | unsupported |
Wan 2.1 T2V 1.3B¶
Example: wan/t2v-480p-1.3b-2.1/default/t2v-1.3b-480p-single-gpu.peft-lora+ramtorch. Resolution: 832x480, 81f.
Note: Wan 1.3B should be read from the no-regional-compile/RamTorch rows; regional compile was not a useful throughput setting in this sweep.
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | 1.407 / 71.90 | OOM |
| bf16 | activation-offload | 3.472 / 8.78 | 7.179 / 8.66 |
| bf16 | layer | 2.099 / 4.73 | 4.459 / 4.68 |
| bf16 | interval2 | 2.139 / 6.32 | 4.514 / 6.27 |
| bf16 | seg2-stride4 | 1.806 / 39.25 | 3.921 / 39.21 |
| bf16 | seg2-stride4-offload | 2.993 / 22.66 | 6.493 / 22.61 |
| int8-sdnq-hadamard | none | 1.850 / 71.91 | OOM |
| int8-sdnq-hadamard | activation-offload | 4.204 / 8.72 | 7.387 / 8.68 |
| int8-sdnq-hadamard | layer | 2.790 / 4.70 | 4.989 / 4.65 |
| int8-sdnq-hadamard | interval2 | 2.874 / 6.29 | 5.093 / 6.24 |
| int8-sdnq-hadamard | seg2-stride4 | 2.558 / 39.27 | 4.393 / 39.22 |
| int8-sdnq-hadamard | seg2-stride4-offload | 3.711 / 22.67 | 6.695 / 22.63 |
| fp8-torchao | none | 1.727 / 73.57 | OOM |
| fp8-torchao | activation-offload | 4.061 / 10.08 | 7.404 / 9.96 |
| fp8-torchao | layer | 2.607 / 5.98 | 4.888 / 5.93 |
| fp8-torchao | interval2 | 2.744 / 7.57 | 4.916 / 7.52 |
| fp8-torchao | seg2-stride4 | 2.246 / 40.55 | 4.245 / 40.50 |
| fp8-torchao | seg2-stride4-offload | 3.602 / 24.02 | 6.683 / 23.91 |
Wan 2.1 T2V 14B¶
Example: wan/t2v-480p-14b-2.1/default/t2v-14b-480p-single-gpu.peft-lora+ramtorch. Resolution: 832x480, 81f.
Note: Wan 14B is mainly a fit test for activation savings. Status-only cells are still useful because they show which combinations reached the memory limit.
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | OOM | OOM |
| bf16 | activation-offload | 13.144 / 36.80 | OOM |
| bf16 | layer | 7.162 / 16.28 | 21.770 / 16.23 |
| bf16 | interval2 | 7.172 / 19.62 | 21.777 / 19.58 |
| bf16 | seg2-stride4 | OOM | OOM |
| bf16 | seg2-stride4-offload | OOM | OOM |
| int8-sdnq-hadamard | none | unsupported | unsupported |
| int8-sdnq-hadamard | activation-offload | unsupported | unsupported |
| int8-sdnq-hadamard | layer | unsupported | unsupported |
| int8-sdnq-hadamard | interval2 | unsupported | unsupported |
| int8-sdnq-hadamard | seg2-stride4 | unsupported | unsupported |
| int8-sdnq-hadamard | seg2-stride4-offload | unsupported | unsupported |
| fp8-torchao | none | failed | failed |
| fp8-torchao | activation-offload | failed | failed |
| fp8-torchao | layer | failed | failed |
| fp8-torchao | interval2 | failed | failed |
| fp8-torchao | seg2-stride4 | failed | failed |
| fp8-torchao | seg2-stride4-offload | failed | failed |
Wan S2V¶
Example: wan_s2v/s2v-14b-2.2/default/14b-480p.peft-lora+ramtorch. Resolution: 832x480, 81f.
Note: Wan S2V is included as coverage data for the video/audio path. Treat failed cells as implementation coverage gaps.
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | failed | failed |
| bf16 | activation-offload | unsupported | unsupported |
| bf16 | layer | failed | failed |
| bf16 | interval2 | unsupported | unsupported |
| bf16 | seg2-stride4 | unsupported | unsupported |
| bf16 | seg2-stride4-offload | unsupported | unsupported |
| int8-sdnq-hadamard | none | failed | failed |
| int8-sdnq-hadamard | activation-offload | unsupported | unsupported |
| int8-sdnq-hadamard | layer | failed | failed |
| int8-sdnq-hadamard | interval2 | unsupported | unsupported |
| int8-sdnq-hadamard | seg2-stride4 | unsupported | unsupported |
| int8-sdnq-hadamard | seg2-stride4-offload | unsupported | unsupported |
| fp8-torchao | none | failed | failed |
| fp8-torchao | activation-offload | unsupported | unsupported |
| fp8-torchao | layer | failed | failed |
| fp8-torchao | interval2 | unsupported | unsupported |
| fp8-torchao | seg2-stride4 | unsupported | unsupported |
| fp8-torchao | seg2-stride4-offload | unsupported | unsupported |
Z-Image Turbo¶
Example: z_image/turbo/default/peft-lora. Resolution: 1024x1024.
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | 0.243 / 21.25 | 0.316 / 21.21 |
| bf16 | activation-offload | 0.837 / 13.24 | 0.805 / 13.19 |
| bf16 | layer | 0.479 / 12.87 | 0.493 / 12.83 |
| bf16 | interval2 | 0.452 / 13.04 | 0.477 / 12.99 |
| bf16 | seg2-stride4 | 0.349 / 16.88 | 0.400 / 16.83 |
| bf16 | seg2-stride4-offload | 0.681 / 15.03 | 0.736 / 14.99 |
| int8-sdnq-hadamard | none | 0.645 / 15.60 | 0.615 / 15.55 |
| int8-sdnq-hadamard | activation-offload | 1.439 / 7.61 | 1.382 / 7.56 |
| int8-sdnq-hadamard | layer | 1.046 / 7.25 | 1.021 / 7.20 |
| int8-sdnq-hadamard | interval2 | 1.074 / 7.41 | 0.996 / 7.36 |
| int8-sdnq-hadamard | seg2-stride4 | 0.867 / 11.25 | 0.841 / 11.20 |
| int8-sdnq-hadamard | seg2-stride4-offload | 1.202 / 9.39 | 1.162 / 9.35 |
| fp8-torchao | none | 1.232 / 37.50 | 1.476 / 37.46 |
| fp8-torchao | activation-offload | 3.623 / 7.97 | 3.564 / 7.93 |
| fp8-torchao | layer | 2.319 / 7.93 | 2.344 / 7.88 |
| fp8-torchao | interval2 | 2.336 / 8.80 | 2.309 / 8.75 |
| fp8-torchao | seg2-stride4 | 1.843 / 22.55 | 1.930 / 22.50 |
| fp8-torchao | seg2-stride4-offload | 2.947 / 15.57 | 3.243 / 15.52 |
ZLab I1¶
Example: zlab_i1/3b/default/peft-lora. Resolution: 1024x1024.
注記: ZLab I1 は U-Net 風の skip tensors を segmented checkpoint state に入れて運びます。この family では attention activation offload は未接続です。
| Precision | Mode | H100 | L40S |
|---|---|---|---|
| bf16 | none | 0.462 / 22.21 | 0.865 / 22.16 |
| bf16 | activation-offload | unsupported | unsupported |
| bf16 | layer | 0.693 / 7.79 | 1.148 / 7.75 |
| bf16 | interval2 | 0.676 / 8.30 | 1.152 / 8.25 |
| bf16 | seg2-stride4 | 0.567 / 14.97 | 1.014 / 14.92 |
| bf16 | seg2-stride4-offload | unsupported | unsupported |
| int8-sdnq-hadamard | none | 0.861 / 19.21 | 0.926 / 19.16 |
| int8-sdnq-hadamard | activation-offload | unsupported | unsupported |
| int8-sdnq-hadamard | layer | 1.385 / 4.78 | 1.265 / 4.74 |
| int8-sdnq-hadamard | interval2 | 1.298 / 5.30 | 1.277 / 5.26 |
| int8-sdnq-hadamard | seg2-stride4 | 1.073 / 11.98 | 1.098 / 11.93 |
| int8-sdnq-hadamard | seg2-stride4-offload | unsupported | unsupported |
| fp8wo-torchao | none | 0.504 / 25.08 | 0.930 / 25.02 |
| fp8wo-torchao | activation-offload | unsupported | unsupported |
| fp8wo-torchao | layer | 0.772 / 5.12 | 1.280 / 5.07 |
| fp8wo-torchao | interval2 | 0.759 / 5.84 | 1.290 / 5.79 |
| fp8wo-torchao | seg2-stride4 | 0.633 / 15.12 | 1.115 / 15.08 |
| fp8wo-torchao | seg2-stride4-offload | unsupported | unsupported |