可插拔 diffusion 加速

对照 Sol-Engine 与 FlashDreams,说明原生插件、正确性边界和 H100 实测。

本页内容

原生精度 Wan MHA 融合在 H100 的两个种子测试中保持最终 latent/RGB 逐位一致:17 帧加速 1.19%–1.42%,41 帧加速 0.60%–0.66%。插件按模型配置,支持卸载恢复;默认关闭。

上游对照

对照固定版本:FlashDreams 91c906b 与 Sana Sol-Engine 670482d。已有能力按真实消费入口区分;可选依赖或同名开关不能证明执行和性能。

技术上游路径WorldFoundry 既有集成与本轮变化
Attention kernelFlashDreams 的 Triton FA2/TMA、cuDNN、原生 FP8;Sol 的 Flash/cuDNN 与 Sol-Attn已有 SDPA、FA2/3/4、Sage/Sage3、xFormers、TMA、原生 cuDNN FP8。新增共享 Sol-Attn dispatcher 和 Wan self/cross 独立选择。
块内融合AdaLN、residual gate、QK norm/RoPE、投影与 FFN glue已有公共 kernel、Wan QKV/RoPE 和部分 FFN 融合。新增 SANA 可撤销适配器,默认仅逐点融合,保持 norm 和 token strides。
不变量与历史缓存文本 cross-KV、streaming KV、稳定缓存布局已有 Wan 文本 cross-KV 和多种自回归缓存。新增可撤销 cross-KV 投影融合,使用派生 packed 权重并支持 static-cache miss。各模型的 raw KV、旋转后 KV、递推状态仍有不同语义。
Feature cacheSol 使用 EasyCache、TeaCache 和模型专属控制器已有 Tea/Ada/Mag/Taylor/block cache,主要用于 Wan。新增原生 EasyCache,支持 stateless SanaMS/SanaMSVideo、WanModel,并补了 resident Wan2.2 双 expert 的全局到局部 schedule;目前后者是本地测试范围。
量化FlashDreams 可分别量化投影与 attention;Sol 文档覆盖 FP8、SVDQuant/Nunchaku 等已有 FP8、INT8、INT4、NVFP4 等路径;部分低位模式仍反量化后做 dense GEMM。新增可撤销 selective FP8、校准的原生 packed SVDQuant,以及 Wan self/cross 独立 MHA 调度。SVDQuant 使用独立权重格式,不兼容 Nunchaku 二进制 checkpoint。
轻量 codecFlashDreams 使用匹配的 pruned Wan2.1 LightVAE encoder 和经过校准的原生 FP8 实现新增匹配的 base24/16-latent 原生架构、严格 student checkpoint 校验和校准 FP8 encoder 卷积插件。采用独立 Triton implicit GEMM;norm、cache 和 decoder 保持 FP32。
Compile、Graph、并行regional compile、稳定形状 capture、模型专属并行与流水已有 compile/cache、CUDA Graph、SP/CFG/VAE 并行和 offload。新增插件不解除已有 cache/Graph/SP 禁用条件。
组合搜索Sol 的模型、硬件与质量预算搜索已有算子 autotune。本轮新增真实原生 SANA/Wan 的固定候选搜索;它只选择当前 prompt、seed、几何和设备上的合格配置。

HyperFlow 先前已向上游转发 --sol-attn,WorldGen 也已有可选 Flux/Nunchaku 路径;这些不等于共享原生 Wan/SANA 已完成集成。本轮补齐了原生 packed SVDQuant、独立 MHA 精度/kernel 调度与校准 FP8 encoder 的入口和执行验证。它们是受限的原生实现;Nunchaku checkpoint 兼容、FP8 TMA、streaming KV 与 steady-state Graph 组合尚不支持。

上游依据:FlashDreams accelerated、Sol kernel、cache、quant、Sol-Attn。EasyCache 控制器依据上游算法独立实现。

代码与生命周期

层文件职责
通用安装器core/acceleration/plugins.pyregistry、计划、冲突检测、整组安装、失败回滚、撤销
请求状态core/acceleration/easycache.py在线误差估计、条件快照、dense/hit 决策、执行回执
模型适配器base_models/diffusion_model/optimizations/plugins.pycheckpoint graph、能力和组合校验;只安装模型局部属性
SANA 运算入口base_models/diffusion_model/models/networks/sana/block_ops.pynorm/modulation/residual;保留训练、DropPath 和自定义 norm 语义
Sol providercore/attention/backends/sol.py可选依赖的执行边界、dtype/shape/参数检查
选择性精度base_models/diffusion_model/optimizations/precision.py显式投影选择、保留原模块、固定 placement、scaled FP8 执行
Cross-KV 融合base_models/diffusion_model/optimizations/kv_fusion.py非持久化 packed 权重、源参数版本刷新、执行回执
Expert schedulebase_models/diffusion_model/optimizations/wan/expert_schedule.py每个 expert phase 的不可变全局到局部索引
匹配 student codecbase_models/diffusion_model/models/autoencoders/wan/variants/light_21.py原生 student 架构与全量 key/shape 校验;codec adapter 位于 component.py
验证与测量tests/core/acceleration/、模型测试、benchmarks/inference/默认输出、请求隔离、撤销、CUDA 执行与配对测量

源码路径以 worldfoundry/ 为根。

安装器先准备全部计划,再修改模型;冲突或任一安装失败会撤销已完成的修改。融合和 cache adapter 保留原 checkpoint 参数和 state-dict key。Selective FP8 保留原模块用于撤销,但启用时的 wrapper 是推理视图:保存或加载 canonical state dict、修改 placement/dtype、训练或编辑权重之前先卸载。

模型持有的生命周期 guard 在插件尚未安装时就跟踪活跃 forward 和显式 request ID。安装与撤销都拒绝活跃请求;双 expert schedule 在任一 expert 执行前就保护两个模型。原生 runner 在成功和异常结束时释放 ownership。切换插件要求模型空闲;已编译模型或持有 CUDA Graph runner 的模型需要重建。这些保护覆盖框架 denoiser;直接调用 module 时,调用方仍需避免并发修改。

EasyCache 按显式 request_id 和 CFG 分支隔离,正常结束和异常退出均释放张量,只留下有界 JSON 回执。条件快照能够检测 inference tensor 的原地修改,并使旧 residual 失效。阈值 0.0 执行全部原始块并直接返回 dense 输出。

模型加载器只在声明 supports_acceleration_plugins 的 DiT 上应用共享配置。assembler 检查 denoiser 的安装回执,拒绝接收了插件选项却没有安装的路径。安装回执始终标为 execution_verified=False;实际 kernel 和跳过块数另行验证。

使用方式

import torch
from worldfoundry.base_models.diffusion_model.pipeline import NativeDiffusionPipeline
from worldfoundry.core.model_loading.policy import RuntimePolicy

policy = RuntimePolicy(
    device="cuda",
    dtype=torch.bfloat16,
    options={"accelerations": {"sana_block_fusion": True}},
)
pipeline = NativeDiffusionPipeline.from_pretrained("sana-video-2b-480p", policy=policy)
# 按常规 DiffusionRequest 运行;之后读取该请求的运行回执。
report = pipeline.components.denoiser.runtime_optimization_report()

也可在已加载的空闲模型上安装并撤销,不修改环境变量:

from worldfoundry.base_models.diffusion_model.optimizations.plugins import (
    diffusion_acceleration_registry,
    install_diffusion_accelerations,
)

model = pipeline.components.denoiser.model
existing = getattr(model, "_worldfoundry_accelerations", None)
if existing is not None:
    existing.uninstall()
session = install_diffusion_accelerations(model, {"easycache": {"threshold": 0.0}}, policy)
# 请求由 native runner 的 finally 清理;直接调用 denoiser 时须调用 end_request。
session.uninstall()

registry = diffusion_acceleration_registry()
# registry.register("custom_kernel", prepare_factory)
# prepare_factory 只校验,返回 PreparedAcceleration;activate 返回可撤销 handle。

加载配置与手动安装任选一种;手动替换前应撤销已有 session。组件选项覆盖同名 runtime 选项。公共 native pipeline 的 load 参数也接受 accelerations={...}。

插件默认与边界
sana_block_fusionbackend=auto,min_elements=12582912;小输入、autograd 或不合格布局保留 eager。默认 fuse_layer_norm=False、repack_tokens=False。当前 LayerNorm 路径保留 vendor reduction,融合后续 AdaLN 运算。原生 token strides 触发布局保护,保留 eager;开启 repack 可执行组合路径,但当前完整视频质量门槛未通过。
easycache必须显式提供非负 threshold。在线学习 dense input/output 变化比例,累计预测 drift 后决定复用 current_input + last_dense_transform。本实现是 embedded-token-block-stack 变体,不是所有上游 raw-latent 变体的逐行移植。
attention_policy原生 Wan self/cross 分开绑定。Sol 仅 self;必须 BF16、head dim 128、无 mask、无 backward,kv_splits=1。参数非法或依赖不满足时失败,不偷偷切成 dense。
selective_fp8必须显式指定 include module-path glob,可选 exclude。默认 min_features=1024、scaling=rowwise、use_fast_accum=False;仅符合条件的原生 Wan/SANA block Linear。执行回执区分实际 scaled FP8 GEMM 与 dense fallback。
wan_cross_kv_fusion原生 Wan 文本 K/V packing。默认 min_tokens=256、include_image=False;小 context 使用原始独立投影。保留 canonical 参数,数值契约允许原生 GEMM reduction 的舍入差异。

EasyCache 拒绝 streaming、camera/control 子图、offload、compile、CUDA Graph、SP、其他 feature cache、近似 processor 和 inplace residual。Resident 原生 Wan2.2 双 expert 现在有下文的受限 schedule 契约。条件必须由 tensor、mapping、list/tuple 和标量组成。cache 的 block callback 必须不修改输入。Scoped attention 同样拒绝未经验证的 Graph/SP/近似 processor 组合,Wan Sol 路径还拒绝 compile。

Wan Sol 配置示例,先在隔离环境安装上游 provider:

policy = RuntimePolicy(
    device="cuda", dtype=torch.bfloat16,
    options={
        "dit_weight_dtype": "bf16",
        "accelerations": {"attention_policy": {
            "self": {"backend": "sol_attn", "tau": 1.0}, "cross": "torch",
        }},
    },
)

验证环境为 sol-attn 0.5.0、PyTorch 2.10.0+cu128、Triton 3.6.0、CUTLASS DSL 4.8.0、cuda-python 13.4.1 和 apache-tvm-ffi 0.1.14.post1。源码来自上述固定 Sol 分支的 techniques/sparse_backends。不要为了这个可选插件升级已有推理环境;当前通用探测至少要求 PyTorch 2.10、CUDA 12.8、Triton 3.6 与 sol-attn 0.5。

此 Sol provider 使用 BF16 Q/K/V,与选择性 FP8 投影插件分别配置。默认 compress_kv=True 时,tau=0 仍按均值阈值路由,可能压缩 K/V,不能当作 dense attention。compress_kv=False 显式关闭压缩,但保留 Sol kernel 及其数值舍入;仍是需要完整生成验证的近似候选。

选择性投影精度与 Cross-KV packing

只选择 Wan FFN 投影,不改变 attention 或 normalization 的精度:

policy = RuntimePolicy(
    device="cuda", dtype=torch.bfloat16,
    options={
        "dit_weight_dtype": "bf16",
        "accelerations": {"selective_fp8": {
            "include": ["blocks.*.ffn.0", "blocks.*.ffn.2"],
            "scaling": "rowwise", "use_fast_accum": False,
        }},
    },
)

支持原生 WanModel、stateless Sana/SanaMS/SanaMSVideo 及其默认 block。选择必须匹配可用的普通 Linear;空匹配、共享参数存储、目标 Linear 自身的 hook、自定义 forward 和未支持的 checkpoint graph 在修改前报错。父模块的 pre/post hook 保持执行。CPU 或小 CUDA workload 可能执行保留的原始 dense 算子,回执会明确记录 fallback,不能据此报告 FP8 加速。实际 CUDA 低精度 GEMM 使用 torch._scaled_mm;它不是原生 packed SVDQuant kernel。

保留原 dense 权重用于准确恢复,并额外存储 FP8 执行权重与 scale;该插件优化计算,不承诺权重显存减少。它拒绝通用量化、feature/static-KV cache、近似 attention、offload、compile、Graph 和 SP。默认 SANA 逐点融合可以作为组合候选,但完整生成的组合质量仍须验证。

Wan K/V packing 可单独配置:

policy = RuntimePolicy(
    device="cuda", dtype=torch.bfloat16,
    options={"accelerations": {"wan_cross_kv_fusion": {
        "min_tokens": 256, "include_image": False,
    }}},
)

Adapter 保留原 K/V Parameter 和 checkpoint key,只新增派生 packed tensor。Wan2.2 5B 的 width=3072、30 blocks,仅文本 K/V packing 就额外增加约 1.1 GiB BF16 权重。默认 cross-attention 和 static-KV cache miss 共用同一投影入口;cache hit 保持已有复用。安装前必须使旧 static-KV 条目失效;撤销会释放 packed tensor 并清空可能包含融合舍入结果的 cache,保证下一次调用恢复原投影调度。

普通参数修改、checkpoint assignment 和 dtype/device 转换通过源对象及版本刷新 packed 权重。原始 .data 修改需重新安装;权重或条件变化还需遵守已有 static-cache invalidation 契约。自定义 processor、带 hook 或覆盖 forward 的投影、训练、compile、capture、offload 和 SP 均拒绝。同一 cross K/V 被 selective_fp8 选择时,不论配置顺序,都在 activation 前判定冲突。回执分开记录 text/image packed calls 与 dense bypass。

匹配的 Wan2.1 LightVAE

显式 lightvae-wan21 codec variant 使用 LightX2V student checkpoint:32,208,043 bytes,SHA256 d5d6b094d4829fb03b6179be2cf4589baab21c9fea1ca70dcaa8c85ba8183ec9。全部 194 个 key/shape 与原生 base24 架构匹配:24/48/96 特征通道、16 latent 通道、encoder 11 个 downsample block。沿用 Wan16 mean/std、BCTHW 布局、空间 8×/时间 4× 压缩。Teacher base96 或 Wan2.2 48-channel 权重会被严格拒绝。

它使用不同的学习权重,是 codec 架构选择。即便实现与独立 student reference 一致,报告仍始终标为 algorithmically approximate。恢复 teacher 需要以 teacher 权重重建 codec。首版支持 FP32 resident CPU/CUDA inference;其他 build purpose、低精度/autocast、tiling、额外 temporal chunking、parallel decode、offload、通用量化、compile、Graph 和 SP 都拒绝。

SANA-Video 480p recipe 默认使用 tiled codec,因此必须显式关闭 tiling:

pipeline = NativeDiffusionPipeline.from_pretrained(
    "sana-video-2b-480p",
    policy=RuntimePolicy(device="cuda", dtype=torch.bfloat16),
    checkpoint_overrides={"codec": "/path/to/lightvaew2_1.pth"},
    component_options={"latent_encoder:codec": {
        "variant": "lightvae-wan21", "tiled": False, "dtype": torch.float32,
    }},
)

Wan recipe 使用已有的 vae checkpoint override,SANA 使用 codec。独立 codec 调用可用 load_wan_video_codec(path, variant="lightvae-wan21", device="cuda", dtype=torch.float32);没有全局 decoder 替换。CPU/H100 测试将官方 student 与独立 reference_21.WanVAE_(dim=24) 对照,覆盖 first/body cache、重复调用重置、encode/decode 和实际计数。架构与实现匹配不能代替 student-vs-teacher 视频质量门禁。

校准插件与独立 MHA 调度

新增能力默认关闭,安装与执行回执分别记录。通用数值实现放在 core/acceleration/quantization/ 和 core/attention/;Wan/SANA 图选择、checkpoint 与生命周期校验放在 base_models/diffusion_model/optimizations/。共享的 projection_selection.py 避免不同精度插件重复维护筛选规则,guards.py 统一固定权重生命周期保护。

入口执行契约保留的限制
svdquant: {artifact: path}显式离线 channel 校准、smoothing、确定性低秩分解、group-64 packed W4A4 residual;整数寄存器解包后执行 INT8 tensor-core dot;低秩 down GEMM 独立、up 融入 epilogue原生 Wan/SANA 的显式 Linear;CUDA SM80+、FP16/BF16、eager no-grad。没有 dense residual weight 反量化,也没有静默 dense fallback。保留原模块用于撤销,因此不宣称整体权重显存下降。
optimized_mha原生 Wan self/cross 独立配置 fusion、投影精度、输出精度和 SDPA;沿用原 RMSNorm、RoPE、图像/文本划分与 canonical 参数fusion=none/kv/qkv;cross 的 qkv 表示独立 Q 加 fused KV。精度为 native/fp8_e4m3/fp8_e5m2/int8;FP8 E5M2 使用独立 Triton GEMM。
MHA SDPAtorch/cudnn/fa2;quantized_sdpa=True 显式启用未经缩放的 E4M3 Q/K/V;pointer FA2 同时量化 P@V 的 PFP8 SDPA 支持 pointer FA2 或可选 cuDNN Frontend。use_tma=True 仅支持原生精度 FA2,要求 Triton ≥3.5。旧版 Triton pointer FA2 使用已验证的固定 tile,避开 Hopper 编译器崩溃配置。
fp8_calibration=path codec 选项匹配 Wan21 LightVAE 的 encoder Conv2d/Conv3d 使用校准 E4M3 implicit GEMM;保留原 CausalConv3d.forward 与缓存实现SM90+、resident FP32、untiled。仅 encoder 卷积量化;decoder、norm、SDPA 运算、cache 保持 FP32;选中的 attention 卷积投影也会量化。不是 FlashDreams 完整 C++ codec 的移植。

MHA 投影的低精度调用和 dense fallback 分别统计;部分小 GEMM 可能由现有 provider 保留 dense。诊断要求每个请求配置的模块与投影都实际执行,量化投影不得有 dense/fallback 调用。不能仅凭配置名判断低精度 kernel 是否运行。

policy = RuntimePolicy(
    device="cuda", dtype=torch.bfloat16,
    options={"dit_weight_dtype": "bf16", "accelerations": {
        "optimized_mha": {
            "self": {"fusion": "qkv", "sdpa_backend": "torch"},
            "cross": {"fusion": "kv", "sdpa_backend": "torch"},
        },
    }},
)
# SVDQuant 单独评估,先生成绑定当前 checkpoint 的 artifact:
svd_options = {"svdquant": {"artifact": "/path/to/svdquant.pt"}}

校准 artifact 用 weights_only=True 加载,保存源参数 SHA256、张量结构、校准来源与实际调用计数;不匹配的权重或卷积 geometry 在修改前拒绝。SVDQuant 格式为 worldfoundry-svdquant-v1,不能直接载入 Nunchaku 的 packed checkpoint。INT4 权重只是 residual 分支;精度由低秩分支和量化分支共同决定。

PYTHONPATH=. python benchmarks/inference/calibrate_plugins.py svdquant \
  --assets "$ASSETS" --include 'blocks.*.ffn.0' 'blocks.*.ffn.2' \
  --rank 32 --frames 17 --out /tmp/calibration-new/svdquant.pt \
  --save-references /tmp/calibration-new/rgb
PYTHONPATH=. python benchmarks/inference/calibrate_plugins.py lightvae_fp8 \
  --checkpoint /path/to/lightvaew2_1.pth \
  --reference /tmp/calibration-new/rgb/calibration_11.pt /tmp/calibration-new/rgb/calibration_12.pt \
  --include 'model.encoder.*' 'model.conv1' --frames 17 \
  --out /tmp/calibration-new/lightvae-fp8.pt

校准使用 seed 11/12 的不同 prompt,测试使用独立 seed 42/43。LightVAE 的 fp8_calibration 可以传给 load_wan_video_codec,或放入 codec component options;共享 runtime 名称为 vae_fp8_calibration,且必须显式选择 variant="lightvae-wan21"。

benchmarks/inference/lightvae_fp8.py 比较相同 student checkpoint 的 FP32 与 FP8 encoder,公共 FP32 student decoder 解码两者。此实验只隔离量化误差,不替代前文的 student/teacher 质量对照。每个选中卷积必须实际执行。输入 clipping 数量作为量化诊断记录;有限值输出可以计时,同时单独记录质量是否达标。

PYTHONPATH=. python benchmarks/inference/lightvae_fp8.py \
  --checkpoint /path/to/lightvaew2_1.pth --artifact /path/to/lightvae-fp8.pt \
  --reference /path/to/reference_42.pt /path/to/reference_43.pt \
  --rounds 3 --out /tmp/lightvae-fp8-diagnostic-new

这三个插件均要求固定 placement、eval 和 eager inference;先卸载,再修改权重、加载 checkpoint 或迁移模型。MHA 与 FP8 codec 保留 canonical state dict;SVDQuant wrapper 启用期间禁止 canonical checkpoint 保存。现有 cache、compile、Graph 和 SP 的禁用规则继续生效。

Resident 双 expert EasyCache

原生 Wan2.2 routed denoiser 在首次 CFG 调用前准备不可变的完整 request schedule。单调 high-to-low schedule 将全局 step 映射到各 expert 的局部零起点 index 和 phase 长度,使 low-noise EasyCache 从零开始,warmup 与末尾 dense gate 按其自身 phase 计算。High/low 模型和 CFG branch 分别持有 residual 状态;非法 schedule、改变 timestep、重复或不连续调用、未完成 phase 都明确报错。

两个独立原生 WanDenoiser expert 必须都启用 EasyCache。支持 resident eager、dense 单 rank CFG(cfg_parallel_degree=1、cfg_gate_step=1.0),不组合其他 cache、Graph、compile、SP、近似 attention 或 inplace residual。原生 runner 自动 prepare/finalize schedule;直接调用 denoiser 时须先 prepare_request_schedule(request_id, schedule),最后 end_request。本地测试覆盖路由、phase warmup/末尾 gate、CFG/request 隔离和异常释放;它们不能证明真实 A14B 生成质量或速度。

验证与性能测量

native_plugins.py 对原生 SANA/Wan 评估 candidate JSON;lightvae.py 比较 teacher/student decoder;lightvae_encoder.py 用公共 teacher decoder 比较两个 encoder;lightvae_fp8.py 比较相同 student 的 FP32/FP8 encoder。

诊断分别记录质量、实际执行和配对耗时。默认比较预算为 latent relative L2 ≤0.03、PSNR ≥33 dB、最低帧 SSIM ≥0.98。有效且输出有限的候选即使未达到这个预算,也会测量速度并标记 measured_quality_tradeoff;自动推荐仍要求质量达标与稳定收益。--quality-only 只测质量。

非有限输出、未实际执行的优化和共享 GPU 不产生有效速度结论。计时采用至少三轮交错配对,排除加载、安装和 JIT,并检查计时路径及输出与 pilot 一致。FP8 clipping 单独记录,不作为“内核未执行”的判据。

从已提交的工作树运行可复现实验。运行记录包含 Git revision、环境、配置及输入文件的大小和修改时间。输入文件变化仍会使实验失效;校准插件仍校验参数摘要。诊断不扫描其他模型的源码,也不重复读取整个 checkpoint 计算哈希。

PYTHONPATH=. python benchmarks/inference/native_plugins.py \
  --model wan2.1-t2v-1.3b --assets "$ASSETS" \
  --candidates /path/to/candidates.json --out /tmp/native-plugin-results
PYTHONPATH=. python benchmarks/inference/lightvae_encoder.py \
  --teacher /path/to/Wan2.1_VAE.pth --student /path/to/lightvaew2_1.pth \
  --reference /path/to/reference_42.pt --reference /path/to/reference_43.pt \
  --rounds 3 --out /tmp/lightvae-encoder-results

H100 实测

以下记录使用实现版本 183147e3,Wan1.3B、320×576、20 steps、CFG 6、shift 7、seed 42/43。百分比是加速比相对 1 的增幅。原始 JSON 包含质量指标、执行记录和配对时间。

候选结果证据与限制
原生精度 MHA,self QKV + cross KV,17 帧两个 seed 的最终 latent/RGB 逐位一致1.014243×/1.011870×;CI95 [1.012128, 1.017954]/[1.010975, 1.015053]。所有计时输出与 pilot 一致,执行与 GPU 采样门禁通过。记录。
同一配置,41 帧两个 seed 逐位一致1.005988×/1.006554×;CI95 [1.003248, 1.033685]/[1.006424, 1.007259]。记录。
pointer FA2、FP8 SDPA、FP8/INT8 self 投影,17 帧八个测试样本均通过执行检查,质量均淘汰Relative L2 0.0966–0.3870;最小 frame SSIM 0.6442–0.9295,不计时。记录。
SVDQuant rank32:全部 FFN / 末层 FFN四个样本均实际执行 packed kernel,质量均淘汰全部 FFN relative L2 0.5033/0.4037;仅 block 29 0.0925/0.1455。无 dense/fallback,不计时。记录。
LightVAE 全 encoder FP8,32 个卷积两个样本均因 latent 误差淘汰Relative L2 0.2568/0.2511。PSNR、SSIM 虽通过,不能覆盖 latent 门槛;seed 42 还出现输入 clipping。记录。
LightVAE 仅 downsamples.0.residual.6两个样本质量/执行通过,但更慢Relative L2 0.01082/0.01106;encoder 加速比 0.95264×/0.92091×。记录。
LightVAE 仅 middle.1.proj两个样本质量/执行通过,无稳定速度认证Relative L2 0.000979/0.000983;encoder 加速比 1.00769×/1.00349×,seed 43 CI95 [0.98503, 1.01022] 跨过 1。记录。

SANA 原生 strides 的逐点融合保持两个种子输出逐位一致,测得 1.0051×/1.0015×;其中一个置信区间跨过 1,暂无稳定收益。SANA 记录。

当前限制

测量覆盖上述固定输入,尚未建立更广泛的生成质量结论。量化、缓存、稀疏注意力和轻量 encoder 的适用性需要结合实际用途检查;encoder-only 时间与完整生成时间分开比较。

原生插件的 cache/compile/Graph/SP 组合、Nunchaku checkpoint 格式和 FP8 TMA 仍需适配。现有不兼容检查保持生效;具体插件要求见配置表。保留的原模块用于卸载恢复,SVDQuant 当前不承诺整体权重显存下降。