File size: 2,035 Bytes
6abc190
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
[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",
]