|
Download README.md from flashrt/diffusion-step-ops: direct link, hf CLI and curl.
- Browser
- Download file 2.19 kB
-
https://huggingface.co/flashrt/diffusion-step-ops/resolve/main/README.md
- Command line
-
hf download hf://flashrt/diffusion-step-ops/README.md
-
curl -L -o README.md https://huggingface.co/flashrt/diffusion-step-ops/resolve/main/README.md
2.19 kB
| # Diffusion Step Ops | |
| FlashRT CUDA kernels for small but frequent diffusion/runtime step operations. | |
| These kernels target static-buffer and CUDA Graph friendly pipelines where | |
| PyTorch eager glue can become visible in the hot path. | |
| ## Available Functions | |
| - `add_bf16(a, b)`: BF16 elementwise add. | |
| - `euler_step_bf16(latent, velocity, dt)`: BF16 Euler update. | |
| - `cfg_combine_into_residual_bf16(residual, v_cond, v_uncond, beta)`: in-place classifier-free guidance residual combine. | |
| - `cfg_combine_into_residual_fp16(residual, v_cond, v_uncond, beta)`: FP16 variant. | |
| - `teacher_force_first_frame_bf16(video_latent, cond_latent)`: copy conditioning frame into `video_latent[:, :, 0]`. | |
| - `motus_decode_postprocess_bf16_to_fp32(decoded)`: drop first frame and map `[-1, 1]` to `[0, 1]`. | |
| - `cast_bf16_to_fp32(src)`: BF16 to FP32 cast. | |
| - `pack_tail_bf16(tail, flat_dim)`: zero-pad a BF16 tail into a flat vector. | |
| - `add_bias_zero_tail_bf16(input, bias, valid_cols)`: add bias and zero padded columns. | |
| - `extract_tail_f32_to_bf16(flat, tail_numel)`: extract and cast an action tail. | |
| - `add_bias_pair_bf16(input, bias_a, bias_b)`: preserve two BF16 add-rounding stages. | |
| - `unipc_step_f32_bf16(...)`: fused UniPC corrector/predictor update. | |
| ## Usage | |
| ```python | |
| from kernels import get_kernel | |
| ops = get_kernel("flashrt/diffusion-step-ops") | |
| latent = ops.euler_step_bf16(latent, velocity, dt=-0.125) | |
| ops.cfg_combine_into_residual_bf16(residual, v_cond, v_uncond, beta=4.5) | |
| ops.teacher_force_first_frame_bf16(video_latent, cond_latent) | |
| next_sample, current_m, current_last = ops.unipc_step_f32_bf16( | |
| sample, velocity, prev_m1, prev_m2, prev_last, | |
| sigma, corrector_order, predictor_order, | |
| corrector_coefficients, predictor_coefficients, | |
| ) | |
| ``` | |
| All APIs require CUDA contiguous tensors. Unsupported shapes fail at the | |
| wrapper boundary. | |
| The generic tail APIs cover the Cosmos3-Edge runtime contracts without | |
| model-specific aliases: `pack_tail_bf16` is equivalent to the native | |
| fill-flat-velocity kernel, and `extract_tail_f32_to_bf16` is equivalent to the | |
| native copy-action-tail kernel. Validation includes production | |
| `flat_dim=1,201,920`, `tail_numel=3,840`, and exact CUDA Graph replay. | |