[general] name = "fp4-gemm" license = "Apache-2.0" version = 1 backends = ["cuda"] [general.cuda] minver = "12.8" [general.hub] repo-id = "flashrt/fp4-gemm" [torch] include = ["csrc"] src = [ "torch-ext/torch_binding.cpp", "torch-ext/torch_binding.h", ] [kernel.fp4_gemm_sm110] backend = "cuda" depends = ["torch", "cutlass_4_4"] include = ["csrc"] cuda-minver = "13" cuda-capabilities = ["11.0a"] cuda-flags = [ "--expt-relaxed-constexpr", "-O3", "--use_fast_math", "-DCUTLASS_ARCH_MMA_SM100_SUPPORTED=1", ] src = [ "csrc/gemm/fp4/cutlass_nvfp4_w4a16_gemm_sm100.cu", "csrc/gemm/fp4/cutlass_nvfp4_w4a16_gemm_sm100.cuh", "csrc/gemm/fp4/cutlass_fp4_gemm_bias_bf16_sm100.cu", "csrc/gemm/fp4/cutlass_fp4_gemm_bias_bf16_sm100.cuh", "csrc/quantize/quantize_fp4_sfa_bf16.cu", "csrc/quantize/quantize_fp4_sfa_bf16.cuh", "csrc/gemm/fp4/sm110_dispatch.cu", "csrc/gemm/fp4/sm110_dispatch.cuh", ] [kernel.fp4_gemm_common] backend = "cuda" depends = ["torch"] include = ["csrc"] cuda-minver = "12.8" cuda-capabilities = ["11.0a", "12.0a"] cuda-flags = ["--expt-relaxed-constexpr", "-O3", "--use_fast_math"] src = [ "csrc/quantize/quantize_fp4_sfa.cu", "csrc/quantize/quantize_fp4_sfa.cuh", "csrc/dequantize_fp4_sfa.cu", "csrc/dequantize_fp4_sfa.cuh", ] [kernel.fp4_gemm_sm120] backend = "cuda" depends = ["torch", "cutlass_4_0"] include = ["csrc"] cuda-minver = "12.8" cuda-capabilities = ["12.0a"] src = [ "csrc/gemm/fp4/cutlass_nvfp4_w4a16_gemm_sm120.cu", "csrc/gemm/fp4/fp4_w4a4_mma_warpsplit_sm120.cu", "csrc/gemm/fp4/fp4_w4a4_mma_warpsplit_sm120.cuh", "csrc/gemm/fp4/cutlass_nvfp4_w4a16_gemm_sm120.cuh", "csrc/gemm/fp4/cutlass_nvfp4_gemm_bias_gelu_bf16out_sm120.cu", "csrc/gemm/fp4/cutlass_nvfp4_gemm_bias_gelu_bf16out_sm120.cuh", "csrc/gemm/fp4/cutlass_nvfp4_gemm_bias_gelu_fp4out_sm120.cu", "csrc/gemm/fp4/cutlass_nvfp4_gemm_bias_gelu_fp4out_sm120.cuh", "csrc/gemm/fp4/cutlass_nvfp4_gemm_dn_streamk_bias_sm120.cu", "csrc/gemm/fp4/cutlass_nvfp4_gemm_dn_streamk_bias_sm120.cuh", ]