Skip to content

Checkpointing Segmentado

Checkpointing segmentado e o meio-termo entre checkpoint em todo block e nenhum checkpoint.

Usa o activation checkpointing do PyTorch. O SimpleTuner executa um grupo contíguo de blocos Transformer em uma chamada de checkpoint e passa o estado oculto retornado ao próximo grupo. Grupos maiores salvam menos estados nas fronteiras, mas ainda recalculam os blocos durante o backward; meça o efeito sobre velocidade e pico de memória.

Para CPU offload e FFN-only checkpointing, veja Unsloth-style checkpointing. A regra curta continua em Decision Rule.

Controles

{
  "gradient_checkpointing": true,
  "gradient_checkpointing_backend": "torch",
  "gradient_checkpointing_interval": 2
}

Nos caminhos whole-block suportados, gradient_checkpointing_interval e a largura do segment. 2 significa checkpoint dos blocks 0-1, 2-3, 4-5 e assim por diante.

Para controle mais fino de VRAM, adicione stride:

{
  "gradient_checkpointing": true,
  "gradient_checkpointing_backend": "torch",
  "gradient_checkpointing_interval": 2,
  "gradient_checkpointing_segment_stride": 4
}

Isso faz checkpoint dos blocks 0-1, executa 2-3 normalmente, faz checkpoint de 4-5, executa 6-7 normalmente e repete. O stride deve ser pelo menos o interval; schedules sobrepostos nao sao validos.

Caminhos segmented whole-block suportados: 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 e Wan.

Stable Cascade stage C tambem suporta interval e stride, mas aplica o schedule a sequencia de micro-blocos Res/Timestep/Attention do UNet em vez de grupos transformer whole-block.

Algumas familias usam semantica de interval especifica do modelo:

Family gradient_checkpointing_interval gradient_checkpointing_segment_stride
Sana Checkpoint a cada N-th block Ignorado
Stable Cascade stage C Checkpoint de micro-blocos UNet por interval Stride alterna janelas UNet checkpointed e non-checkpointed
SD1x, SDXL Sem suporte segmented whole-block Ignorado

Nao compare linhas stride quando stride e ignorado. Se os numeros forem identicos, normalmente a option nao foi aplicada.

Quando Usar

Use depois que o checkpointing normal por block couber, mas custar tempo demais por step. Comece com 2. Se houver VRAM, tente 2 com stride 4 em modelos muito profundos.

Nao espere ajuda quando o peak vem principalmente de pesos treinaveis, optimizer state, validation, cache de VAE, block swapping ou routing. O SimpleTuner volta para o caminho per-block mais seguro quando uma feature do modelo precisa desse controle.

dynamo_use_regional_compilation nao e ganho universal. Ele ajudou ou foi neutro em alguns image models, mas foi ruim nos perfis Wan/RamTorch e LTXVideo2 abaixo.

Benchmarks

Medido com exemplos reais do SimpleTuner em pods single-GPU H100, H200 e L40S. Validation e checkpoint saves ficaram desativados, cache preparation foi excluida, e o compile/setup do primeiro step dentro do train loop e excluido quando ha timing post-warmup.

Cada celula medida e post-warmup sec/step / peak VRAM GiB. Celulas somente com status significam: OOM ficou sem memoria de GPU, failed nao chegou aos training steps medidos, unsupported significa que a opcao nao estava conectada para essa familia, e not run significa que o sweep nao incluiu essa combinacao.

Compare modos dentro da mesma familia primeiro. Comparacoes entre familias sao aproximadas porque resolution, frame count, attention backend, model depth, trainable adapter type e dataset shape mudam.

A matriz abaixo e a fonte de verdade para este sweep. Notas especificas por modelo marcam caveats quando uma linha e coverage data em vez de recomendacao.

Resultados Por Familia

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

Destilacao AnyFlow no Anima

Exemplo: anima/base-v1.0/default/anyflow-stage1.peft-lora. Resolucao: 1024x1024. Esta linha mede destilacao AnyFlow usando Anima, nao o exemplo LoRA de Anima puro. Use anima/base-v1.0/default/peft-lora para treinamento de imagem Anima puro em 1024x1024.

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.

Nota: AuraFlow suporta quantizacao com SDNQ e TorchAO. As linhas quantizadas sem checkpointing estao abaixo; as linhas quantizadas com checkpointing precisam de uma nova medicao completa antes de receber numeros aqui.

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

Exemplo: flux3_image/klein-base/default/peft-lora, Klein Base. Treinamento: recortes centrais de 512x512, batch 1, LoRA de atenção com rank/alpha 32, AdamW BF16, SDPA nativo e compilação regional Inductor (default, wrapper C++). CREPA e o adaptador assistente estão desativados. Cada linha medida executa 30 atualizações; o tempo por passo exclui as primeiras cinco e a preparação dos caches. VRAM indica o pico de memória alocada pelo PyTorch durante as atualizações de treinamento.

Dataset: RareConcepts/Domokun, 27 imagens. Caption fixo: a photograph of a toy character (80 tokens de texto em cache).

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.

As sequências de blocos de imagem, texto, imagem de referência e fluxo conjunto são segmentadas separadamente. interval2 faz checkpoint de pares consecutivos; seg2-stride4 faz checkpoint de dois blocos e mantém as ativações dos dois seguintes. A captura de estados ocultos usa o caminho por bloco. Attention activation offload não é suportado.

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. Treinamento com tokens de áudio.

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

Exemplo: hunyuanvideo/t2v-480p/default/1.5-t2v.peft-lora. Forma de training: video buckets de 480 pixel-area, 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 usa muitas activations nessa forma de training. Per-block e interval-2 cabem bem; sem checkpointing nao cabe em um H100 de 80 GB. seg2-stride4 so coube neste sweep com attention activation offload, e essa linha e uma saida para memoria, nao uma recomendacao de velocidade. SDNQ Hadamard funciona, mas formas variaveis de conditioning ainda disparam compilacao de kernels dinamicos durante a medicao.

Ideogram 4.0

Exemplo: ideogram/fp8/default/peft-lora. Resolucao: 1024x1024. O flavour fp8 usa o checkpoint fp8 nativo weight-only do Ideogram 4 (base_model_precision=no_change); bf16-upcast define ideogram_fp8_base_upcast=true para dequantizar os pesos base para bf16 no load. Pedir qualquer outro base_model_precision (por exemplo int8-sdnq) tambem dequantiza primeiro para que o quantizer opere sobre pesos reais.

Revisoes anteriores desta tabela foram medidas antes de o Ideogram respeitar gradient_checkpointing_interval, gradient_checkpointing_segment_stride ou gradient_checkpointing_backend (seu loader custom pulava a conexao compartilhada), e antes de o int8-sdnq realmente quantizar o checkpoint fp8 — todas as linhas de checkpointing eram, silenciosamente, checkpointing torch full-layer sobre pesos fp8-native. Os numeros de H100 abaixo sao pos-fix; as linhas de L40S aguardam re-medicao.

Os backends torch-ffn/unsloth-ffn nao sao suportados: o Ideogram 4 nao expoe uma fronteira de checkpointing attention/FFN.

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

Conclusoes: seg2-stride4 e ~14% mais rapido que full-layer ao custo de ~24 GiB a mais de activations retidas; o offload do unsloth economiza ~1.2 GiB com um custo de 1-3% no tempo de step (e e mais rapido que o torch com int8 full-layer, onde o offload sobrepoe o matmul quantizado); bf16-upcast e o vencedor em throughput quando a VRAM permite.

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

Exemplo: krea2/raw/default/peft-lora. Resolucao de treino: crop quadrado de 512 px. Configuracao de validacao do exemplo: 1024x1024; a validacao ficou desativada no benchmark.

A tabela principal usa regional compilation. Isso ajuda o step speed do Krea2, mas nao e uma comparacao limpa de VRAM: o compiled graph/workspace mantem o pico perto do pico sem checkpointing em varios modos. Uma execucao de controle bf16 com regional compilation desativado mostrou que o checkpointing esta conectado e tem o formato esperado de memoria/velocidade:

A linha activation-offload aqui significa full-block checkpointing mais attention activation offload. Contra full-block layer checkpointing sozinho, attention offload nao reduziu o peak VRAM do Krea2 neste shape; principalmente adicionou 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

Exemplo: longcat_image/default/default/peft-lora. Resolucao de treino: 512 px quadrada; resolucao de validacao: 1024x1024. As linhas usam 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

Exemplo: longcat_video/final/default/peft-lora+ramtorch. Resolucao: 832x480, 81f. As linhas usam attention_mechanism=native-flash.

LongCat Video usa muitas activations neste shape. Full per-block checkpointing e a linha pratica. As linhas partial checkpoint (interval2, seg2-stride4) nao cabem aqui, mesmo com attention activation offload na linha strided. Attention activation offload simples cabe para bf16 e SDNQ, mas e muito mais lento que 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.

Os numeros sao segundos warm por step / GiB pico. A media da execucao completa inclui setup e compile, e fica nos artifacts do sweep.

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

As linhas de attention activation offload nao sao suportadas para LTXVideo 0.9 neste sweep.

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.

Nota: Lumina2 agora usa o caminho segmented whole-block. interval2 faz checkpoint de cada segmento de dois blocks; seg2-stride4 checkpointa dois blocks, deixa os dois seguintes manterem activations e repete. Attention activation offload nao fez parte desta rodada de Lumina2.

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.

Nota: o caminho de imagem com shapes variaveis do MageFlow em 1024px se beneficia principalmente de attention activation offload e FP8 weight-only. Os modos de block checkpointing sao validos, mas nao reduziram o pico de residencia medido neste 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.

Nota: OmniGen usa prompts como token IDs em vez de embeddings de texto em cache. Estas linhas medem os caminhos suportados sem checkpointing e com checkpointing torch de bloco completo; os controles interval, segmented-stride e attention-offload nao estao implementados para esta familia neste 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

Medições em GPUs H200 e L40S com modelo de hardware verificado: qwen_image/v2.1/default/peft-lora, Qwen-Image 2.1, Domokun em 512x512, BF16, LoRA rank 32, Optimi Lion e compilação regional Inductor (modo default). Cada execução tem 20 passos; os cinco primeiros são excluídos do tempo. As células mostram segundos/passo / pico de VRAM GiB, incluindo a preparação dos componentes no pico.

Ambiente: torch==2.11.0+cu128, diffusers==0.40.0; 10 tokens de texto e 1024 de imagem. A preparação dos componentes domina alguns picos de memória com batch 1.

Esquemas de checkpoint BF16

none desliga checkpointing; layer aplica checkpoint a cada bloco. interval2 agrupa blocos contíguos 0–1, 2–3, …; seg2-stride4 aplica checkpoint a 0–1, mantém as ativações de 2–3 e repete. A execução agrupada requer ausência de block swapping, captura de estados ocultos e KV cache; esses caminhos mantêm interval/stride por bloco. Attention activation offload (activation-offload, seg2-stride4-offload) não é suportado. Como BF16 cabe, esta medição de 2.1 não inclui quantização.

Modo 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

Backends de atenção

A comparação de atenção desliga checkpointing. O SDPA nativo selecionou cuDNN no H200 e PyTorch Flash SDPA no L40S. Qwen 2.1 usa atenção causal no texto e atenção não causal da imagem alvo a todas as chaves válidas. Prompts de comprimento igual, sem padding, não precisam de varlen. Os caminhos FlashAttention atuais exigem prompts text-to-image sem padding; use SDPA nativo ou FlexAttention para padding ou condicionamento intercalado. Uma máscara varlen apenas de padding não preserva essa estrutura causal.

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 não medido não medido 0.259 / 20.75
flash-attn-hub não medido não medido 0.238 / 20.75
flash-attn-3-hub 0.094 / 20.98 1.215 / 128.40 não medido
flash-attn-3-varlen-hub 0.096 / 20.97 1.216 / 128.44 não medido
flex 0.100 / 20.92 1.314 / 134.45 0.271 / 20.70
flash-attn-4-hub falhou falhou não medido
cudnn falhou não medido não medido

O helper de metadados varlen de comprimento uniforme veio do Diffusers upstream: usa as formas para os comprimentos e arange para os offsets acumulados, eliminando sincronizações GPU .item() e graph breaks do helper publicado. Máscaras redundantes totalmente válidas são removidas no collate. A equivalência de forward/gradientes e a captura do grafo são verificadas separadamente da medição de tempo.

Forçar attention_mechanism: "cudnn" falhou no Inductor do PyTorch 2.11 com CantSplit; o SDPA nativo automático continuou usando cuDNN com sucesso. FA4 Hub falhou ao carregar com nvidia-cutlass-dsl==4.7.1: falta cutlass.cute.core.ThrMma, portanto não há tempo medido. Backends Hub usam trust_remote_code: true. FA3 é para Hopper, não para L40S (suporte upstream).

Escala do batch no H200

No mesmo H200, SDPA nativo levou 0.612 s com batch 10 e 1.223 s com batch 20, ambos perto de 16.35 imagens/s. Após o platô de throughput, dobrar o batch dobrou o trabalho. O preset de 144 GB mantém checkpointing desligado; o batch maior utiliza a capacidade adicional sem prometer mais imagens/s.

Batch Segundos/passo Imagens/s Pico GiB
1 0.081 12.38 20.99
10 0.612 16.35 71.85
20 1.223 16.35 128.42
Com o mesmo caminho atualizado de atenção nativa, H100 levou 0.639 s/step com batch 10, pico de 71.83 GiB e checkpointing desativado.

Uma verificação do transformer completo com entradas Domokun em cache encontrou saídas FP32 idênticas com e sem a máscara redundante; o erro L2 relativo dos gradientes foi 1.97e-6. Os backends BF16 não são numericamente intercambiáveis: neste único batch, o cosseno do gradiente LoRA agregado em relação a FP32 foi aproximadamente 0.92–0.93 para SDPA nativo e 0.80 para FA3. São diagnósticos numéricos, não comparações de convergência.

No trace H200 com batch 20, havia kernels ativos em 93.1% do intervalo capturado. GEMMs representaram 70.5% do tempo de kernel e atenção 9.7%; Inductor já fundiu normalização/RoPE e epílogos ponto a ponto. As maiores lacunas ocorreram perto da preparação do batch. Tempo ativo de kernel não é ocupação de SM, e os tempos do profiler não entram nas tabelas de throughput.

Prefetch foi mais lento neste conjunto de 27 imagens com batch 20: com fila de 2, host prefetch teve média de 2.030 s/passo e device prefetch (limiar de 1 MiB) 2.036 s, contra 1.223 s sem prefetch. Ambos tiveram passos periódicos de aproximadamente 3 segundos apesar de medianas próximas de 1.17 s; os presets mantêm prefetch desligado.

A receita Domokun de 250 steps serve para medir throughput, não como receita de convergência confiável. Um checkpoint anterior gerou Domokun reconhecível após recarregar, mas novas execuções de 250 steps não reproduziram o resultado. Os controles mantendo máscaras de padding, desativando compilação e restaurando a expressão RoPE anterior também falharam. Os latentes em cache decodificam o personagem correto. A causa da deterioração continua sem resolução; as tabelas de tempo não demonstram qualidade equivalente entre backends de atenção.

Qwen Image

Medições históricas do Qwen-Image 1.0 (model_flavour: "v1.0"), usando o antigo exemplo qwen_image/v2.1/default/peft-lora em 1024x1024. O exemplo agora seleciona 2.1. Os resultados quase idênticos de interval/stride abaixo não comprovam que esquemas diferentes estavam ativos e não devem orientar a configuração de 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 usa linear attention, entao attention activation offload continua unsupported. Segmented whole-block checkpointing e suportado no caminho standard.

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.

Nota: SD1x usa o caminho UNet do diffusers. O checkpointing por camada funciona, mas os controles interval e segmented stride nao estao conectados para esta familia.

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.

Nota: SD3 usa checkpointing segmentado contiguo real no caminho transformer simples. Attention activation offload e suportado; reduz bastante a VRAM, mas custa 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.

Nota: stage C usa o prior em precision completa. Estas linhas foram executadas com mixed_precision=no e base_model_precision=no_change; linhas de precision base quantizada nao sao significativas para este modelo. Os modos interval e stride operam sobre a sequencia de micro-blocos Res/Timestep/Attention do UNet.

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.

Nota: ZLab I1 carrega seus skip tensors estilo U-Net pelo estado segmented checkpoint. Attention activation offload nao esta conectado para esta familia.

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