Files
ULT7RAandCopilot 82bdde669f FLUXNATION: Fused spike attention + step cache CUDA kernel for FLUX.1
Fused FP8 CUDA kernel for FLUX.1 SingleStreamBlock with spike attention
and step caching. Replaces ComfyUI's entire SingleStreamBlock forward pass
with a single torch.ops call — modulation, dual GEMMs, QKV, RoPE, attention,
gating and residual all fused. 30%+ faster than stock ComfyUI on RTX 4090.

Spike attention: block-sparse Triton kernel that scores attention blocks
by dot-product similarity and keeps only the top 45% after image structure
forms. Step caching replays cached attention output on alternating spike
steps for zero attention compute every other step.

Works with all 38 ComfyUI samplers at any step count.
FP16 ports included for 10-series, 20-series, and 30-series GPUs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-05 17:56:53 -06:00

56 lines
1.7 KiB
Python

"""
Build script for flux_ext PyTorch C++/CUDA extension.
Usage:
py -3.10 setup_ext.py install
This compiles the CUTLASS FP8 kernels (from flux_opt.cu) into a proper
PyTorch extension, eliminating all ctypes overhead.
"""
import os
# Use CUDA 12.8 (compatible with PyTorch 2.5.1 which was built with CUDA 12.1)
os.environ["CUDA_HOME"] = r"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8"
os.environ["CUDA_PATH"] = os.environ["CUDA_HOME"]
from setuptools import setup
from torch.utils.cpp_extension import CUDAExtension, BuildExtension
ROOT = os.path.dirname(os.path.abspath(__file__))
setup(
name="flux_ext",
ext_modules=[
CUDAExtension(
name="flux_ext",
sources=[
os.path.join(ROOT, "csrc", "FLUXPATCH.cpp"),
os.path.join(ROOT, "csrc", "FLUXNATION.cu"),
os.path.join(ROOT, "flux_opt.cu"),
],
include_dirs=[
ROOT, # SINGLE_STREAM_BLOCK.H
os.path.join(ROOT, "cutlass", "include"), # CUTLASS headers
],
extra_compile_args={
"cxx": ["/O2", "/std:c++17", "/EHsc", "/MD"],
"nvcc": [
"-O3",
"-std=c++17",
"-arch=sm_89",
"-DFLUX_TORCH_EXT=1",
"--allow-unsupported-compiler",
"-diag-suppress=20013",
"-diag-suppress=20015",
"-Xcompiler", "/MD",
"-Xcompiler", "/EHsc",
"-Xcompiler", "/Zc:preprocessor",
],
},
libraries=["cublas"],
)
],
cmdclass={"build_ext": BuildExtension},
)