分段 Checkpointing¶
分段 checkpointing 介于每个 block 都 checkpoint 和完全不 checkpoint 之间。
它使用 PyTorch 的 activation checkpointing。SimpleTuner 在一次 checkpoint 调用中执行一组连续的 Transformer block,并将返回的隐藏状态传给下一组。更大的分组保存更少的边界状态,但反向传播仍需重新计算这些 block;速度和峰值显存的取舍需要实测。
CPU offload 和 FFN-only checkpointing 请看 Unsloth-style checkpointing。简短判断规则仍在 Decision Rule。
控制项¶
{
"gradient_checkpointing": true,
"gradient_checkpointing_backend": "torch",
"gradient_checkpointing_interval": 2
}
在支持 whole-block 的路径上,gradient_checkpointing_interval 是 segment 宽度。2 表示 checkpoint blocks 0-1、2-3、4-5,依此类推。
如果需要更细的 VRAM 控制,可以加 stride:
{
"gradient_checkpointing": true,
"gradient_checkpointing_backend": "torch",
"gradient_checkpointing_interval": 2,
"gradient_checkpointing_segment_stride": 4
}
这会 checkpoint blocks 0-1,正常运行 2-3,checkpoint 4-5,正常运行 6-7,然后重复。stride 必须大于等于 interval;不支持重叠 schedule。
支持 segmented whole-block 的路径: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 作用在 UNet 的 Res/Timestep/Attention micro-block 序列上,而不是 transformer whole-block group。
一些 model family 使用旧语义:
| Family | gradient_checkpointing_interval |
gradient_checkpointing_segment_stride |
|---|---|---|
| Sana | 每 N 个 block checkpoint 一次 | 忽略 |
| Stable Cascade stage C | 按 interval checkpoint UNet micro-block | stride 在 checkpointed 和非 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 主要来自可训练权重、optimizer state、validation、VAE cache、block swapping 或 routing 时,不要期待它有帮助。当模型特性需要 per-block 控制时,SimpleTuner 会回到更稳的 per-block 路径。
dynamo_use_regional_compilation 不是通用加速。它在一些 image model 上有帮助或基本中性,但在下面的 Wan/RamTorch 和 LTXVideo2 profile 里效果很差。compile 设置也要当作 benchmark 条件。
Benchmarks¶
使用真实 SimpleTuner examples,在单卡 H100、H200 和 L40S pods 上测量。validation 和 checkpoint saves 已关闭,cache preparation 不计入;存在 post-warmup timing 时,也会排除 train loop 内第一个 step 的 compile/setup 时间。
每个实测单元格都是 post-warmup sec/step / peak VRAM GiB。只有状态的单元格含义是:OOM 表示 GPU 显存不足,failed 表示没有到达可统计的训练 step,unsupported 表示该 family 没有接入这个选项,not run 表示 sweep 没有覆盖这个组合。
优先在同一个 family 内比较不同 mode。跨 family 比较只能作为粗略参考,因为 resolution、frame count、attention backend、model depth、trainable adapter type 和 dataset shape 都可能不同。
下面的矩阵是这个 sweep 的唯一数据源。model-specific notes 会说明某些行只是覆盖情况数据,而不是推荐配置。
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 图像训练请使用 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 行需要新的完整 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 的注意力 LoRA,BF16 AdamW,原生 SDPA,区域 Inductor 编译(default,C++ wrapper)。关闭 CREPA 和助手适配器。每个测量行运行 30 次更新;每步耗时不计前五次更新和缓存准备。 VRAM 为 PyTorch 在训练更新期间分配内存的峰值。
数据集: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.
图像、文本、参考图像以及联合流的块序列分别分段。interval2 对相邻的两个块一起 checkpoint;seg2-stride4 对两个块 checkpoint,随后两个块保留激活。隐藏状态捕获使用逐块路径。不支持 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. 音频 token 训练。
| 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 在本轮 sweep 中只有启用 attention activation offload 才能跑通,这一行更适合作为内存 fallback,而不是速度推荐。SDNQ Hadamard 可以工作,但可变 conditioning shape 仍会在测量窗口内触发 dynamic kernel compilation。
Ideogram 4.0¶
示例:ideogram/fp8/default/peft-lora。分辨率:1024x1024。fp8 flavour 使用 Ideogram 4 的原生 weight-only fp8 checkpoint(base_model_precision=no_change);bf16-upcast 会设置 ideogram_fp8_base_upcast=true,在加载时把 base weights dequantize 成 bf16。请求任何其他 base_model_precision(例如 int8-sdnq)也会先 dequantize,让 quantizer 作用在真实 weights 上。
此表早先的版本是在 Ideogram 尚未生效 gradient_checkpointing_interval、gradient_checkpointing_segment_stride 或 gradient_checkpointing_backend(它的自定义 loader 跳过了共享的接入),并且 int8-sdnq 尚未真正 quantize fp8 checkpoint 之前测得的 —— 所有 checkpointing 行实际上都在悄悄地对 fp8-native weights 做 full-layer torch checkpointing。下面的 H100 数字是修复后的;L40S 行等待重新测量。
torch-ffn/unsloth-ffn backend 不支持: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%,代价是多保留约 24 GiB 的 activations;unsloth offload 节省约 1.2 GiB,step 时间开销为 1-3%(在 int8 full-layer 下它比 torch 更快,因为 offload 与 quantized matmul 重叠执行);VRAM 允许时 bf16-upcast 是吞吐量赢家。
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 方形裁剪。示例验证设置:1024x1024;benchmark 中已禁用 validation。
主表使用 regional compilation;它对 Krea2 step speed 有帮助,但不是干净的 VRAM 对比。compiled graph/workspace 会让几个 checkpoint 模式的峰值接近未 checkpoint 的峰值。关闭 regional compilation 的 bf16 control run 显示 checkpointing 已接通,并呈现预期的 memory/speed 形态:
这里的 activation-offload 行表示 full-block checkpointing 加 attention activation offload。和单独的 full-block layer checkpointing 相比,attention offload 在这个 Krea2 shape 下没有降低 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。训练分辨率:512 px 正方形;验证分辨率:1024x1024。各行使用 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。分辨率: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。完整运行平均值包含 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 |
这个 sweep 中,LTXVideo 0.9 不支持 attention activation offload rows。
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 路径。interval2 会 checkpoint 每个 two-block segment;seg2-stride4 会 checkpoint 两个 blocks,让接下来的两个 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.
说明:MageFlow 的 1024px 可变形状图像路径主要受益于 attention activation offload 和 weight-only FP8。Block checkpointing 模式是可用的,但在本轮 sweep 中没有降低测得的峰值驻留显存。
| 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.
说明:OmniGen 使用 token-ID prompt,而不是缓存的文本 embedding。这里测的是已支持的无 checkpoint 和整 block torch checkpointing 路径;interval、segmented-stride 和 attention-offload 控制在本次 sweep 中尚未为这个 family 实现。
| 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¶
在确认型号的 H200 和 L40S 上测量:qwen_image/v2.1/default/peft-lora、Qwen-Image 2.1、512x512 Domokun、BF16、rank-32 LoRA、Optimi Lion,以及区域 Inductor 编译(default 模式)。每次运行 20 步,计时排除前 5 步。表格单元格为 秒/步 / 峰值显存 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, … 分组 checkpoint;seg2-stride4 checkpoint 0–1、保留 2–3 的激活,然后重复。分组执行要求不使用 block swapping、隐藏状态捕获或 KV cache;这些路径保留逐 block 的 interval/stride 调度。不支持注意力激活卸载(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 |
注意力后端¶
注意力比较关闭 checkpoint。默认 native SDPA 在 H200 上选择 cuDNN,在 L40S 上选择 PyTorch Flash SDPA。Qwen 2.1 对文本使用因果注意力,对目标图像使用可访问所有有效 key 的非因果注意力。长度相同且无 padding 的提示词不需要 varlen。当前 FlashAttention 路径要求无 padding 的文生图提示词;有 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。在 collate 阶段移除全有效的冗余 mask。前向、梯度等价性与图捕获测试独立于计时进行。
强制 attention_mechanism: "cudnn" 在 PyTorch 2.11 Inductor 中触发 CantSplit 错误;自动 native SDPA 仍能正常使用 cuDNN。FA4 Hub 在 nvidia-cutlass-dsl==4.7.1 下因缺少 cutlass.cute.core.ThrMma 而加载失败,因此没有计时结果。Hub 后端使用 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 秒/步,峰值显存 71.83 GiB。 |
使用缓存的 Domokun 输入检查完整 transformer:移除冗余 mask 前后,FP32 输出完全一致,梯度相对 L2 误差为 1.97e-6。BF16 后端在数值上不可互换:在这一批数据中,相对 FP32 的 LoRA 总梯度余弦相似度,native SDPA 约为 0.92–0.93,FA3 约为 0.80。这是数值诊断,不是收敛性比较。
H200 batch-20 trace 中,kernel 执行占采集区间的 93.1%。GEMM 占 kernel 时间的 70.5%,注意力占 9.7%;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 秒的步骤;预设保持 prefetch 关闭。
250 步 Domokun 配置用于吞吐量测试,并非可靠的收敛配方。较早的 checkpoint 在重新加载后生成了可辨认的 Domokun,但新启动的 250 步训练未能复现。保留 padding mask、关闭编译以及恢复较早 RoPE 表达式的对照实验也失败了。缓存 latent 解码后确实是正确主体。训练质量下降的原因尚未确定;计时表不能证明不同注意力后端的图像质量相当。
Qwen Image¶
以下是 Qwen-Image 1.0(model_flavour: "v1.0")的历史测量,使用旧版 qwen_image/v2.1/default/peft-lora 示例,分辨率为 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 仍不支持。标准路径支持 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.
说明:SD1x 使用 diffusers UNet path。普通 layer checkpointing 受支持,但 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.
说明:SD3 在普通 transformer path 上使用真正的连续 segmented checkpointing。Attention activation offload 已支持;它会大幅降低 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 使用全精度 prior 路径。这些行使用 mixed_precision=no 和 base_model_precision=no_change;量化 base precision 行对这个模型没有实际意义。interval 和 stride 模式作用在 UNet 的 Res/Timestep/Attention micro-block 序列上。
| 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 |