- fastvideo-kernel/wan22_vae_decode: the Wan2.2 (TI2V-5B) VAE decoder on sm_100a / sm_103a at 704x1248, built on first use against fastvideo-kernel's CUTLASS submodule. It frees intermediates early and carries 4 latent frames per pass: a 5 s video peaks at 20.3 GiB, down from 94.6 GiB in the kernel's first version, with the same output. - WanVAEConfig.decode_kernel routes AutoencoderKLWan.decode through it where it applies (bf16 with fp32 accumulation, about 7x faster than the fp32 decode on a B300, PSNR 61-63 dB, SSIM 0.998 against it); decode_kernel_parallel splits the decode over the sequence-parallel group (2, 4 or 8 GPUs) and broadcasts the video, with the ranks agreeing on whether every one of them could build the kernel. - PAN2's DiT runs fused Triton kernels for Q/K RMSNorm + RoPE and LayerNorm + modulation (pan2_fusions, set_fused_kernels). - PAN2PipelineConfig turns all three on (vae_decode_kernel, vae_decode_kernel_parallel, dit_fused_kernels). - VideoGenerator copies a decoded RGB video's frames to the host once instead of once per frame. - The PAN2 presets sample at guidance 2.5, the reference launcher's default since 2026-10-23.
8 lines
391 B
C
8 lines
391 B
C
#pragma once
|
|
#include <ATen/ATen.h>
|
|
#include <torch/csrc/distributed/c10d/ProcessGroup.hpp>
|
|
// Exchange chronological full-frame prefix slices for chronological row bands.
|
|
// Source rank r owns [floor(T*r/world), floor(T*(r+1)/world)).
|
|
at::Tensor prefix_temporal_to_rows(const at::Tensor& local,int64_t total_frames,
|
|
int rank,int world,const c10::intrusive_ptr<c10d::ProcessGroup>& pg);
|