flashinfer-python 0.7.0__py3-none-any.whl → 0.7.0.post1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- flashinfer/_build_meta.py +2 -2
- flashinfer/aot.py +26 -13
- flashinfer/jit/gemm/core.py +12 -2
- {flashinfer_python-0.7.0.dist-info → flashinfer_python-0.7.0.post1.dist-info}/METADATA +1 -1
- {flashinfer_python-0.7.0.dist-info → flashinfer_python-0.7.0.post1.dist-info}/RECORD +9 -9
- {flashinfer_python-0.7.0.dist-info → flashinfer_python-0.7.0.post1.dist-info}/WHEEL +0 -0
- {flashinfer_python-0.7.0.dist-info → flashinfer_python-0.7.0.post1.dist-info}/entry_points.txt +0 -0
- {flashinfer_python-0.7.0.dist-info → flashinfer_python-0.7.0.post1.dist-info}/licenses/LICENSE +0 -0
- {flashinfer_python-0.7.0.dist-info → flashinfer_python-0.7.0.post1.dist-info}/top_level.txt +0 -0
flashinfer/_build_meta.py
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"""Build metadata for flashinfer package."""
|
|
2
|
-
__version__ = "0.7.0"
|
|
3
|
-
__git_commit__ = "
|
|
2
|
+
__version__ = "0.7.0.post1"
|
|
3
|
+
__git_commit__ = "946200de1ae94fc93fdd0926f0a13afd1fa7f0f1"
|
flashinfer/aot.py
CHANGED
|
@@ -128,6 +128,7 @@ from .jit.gemm import (
|
|
|
128
128
|
gen_gemm_sm100_module_cutlass_nvfp4_svdquant,
|
|
129
129
|
gen_gemm_sm100_module_cutlass_fp8,
|
|
130
130
|
gen_gemm_sm100_module_cutlass_mxfp8,
|
|
131
|
+
gen_gemm_sm103_module_cutlass_fp4,
|
|
131
132
|
gen_gemm_sm120_module,
|
|
132
133
|
gen_gemm_sm120_module_cutlass_fp4,
|
|
133
134
|
gen_mm_bf16_cublaslt_module,
|
|
@@ -257,6 +258,7 @@ def gen_attention(
|
|
|
257
258
|
use_logits_soft_cap_: List[bool],
|
|
258
259
|
has_sm90: bool,
|
|
259
260
|
has_sm100: bool,
|
|
261
|
+
has_sm103: bool,
|
|
260
262
|
add_gemma: bool,
|
|
261
263
|
add_oai_oss: bool,
|
|
262
264
|
) -> Iterator[JitSpec]:
|
|
@@ -407,7 +409,7 @@ def gen_attention(
|
|
|
407
409
|
|
|
408
410
|
# fmha_cutlass_sm100a
|
|
409
411
|
# NOTE: currently there's only one uri.
|
|
410
|
-
if has_sm100:
|
|
412
|
+
if has_sm100 or has_sm103:
|
|
411
413
|
yield gen_fmha_cutlass_sm100a_module(
|
|
412
414
|
dtype_q=torch.bfloat16,
|
|
413
415
|
dtype_kv=torch.bfloat16,
|
|
@@ -440,7 +442,7 @@ def gen_attention(
|
|
|
440
442
|
)
|
|
441
443
|
|
|
442
444
|
# MLA SM100
|
|
443
|
-
if has_sm100:
|
|
445
|
+
if has_sm100 or has_sm103:
|
|
444
446
|
yield gen_mla_module()
|
|
445
447
|
|
|
446
448
|
|
|
@@ -453,11 +455,12 @@ def gen_xqa(
|
|
|
453
455
|
use_sliding_window_: List[bool],
|
|
454
456
|
has_sm90: bool,
|
|
455
457
|
has_sm100: bool,
|
|
458
|
+
has_sm103: bool,
|
|
456
459
|
has_sm120: bool,
|
|
457
460
|
has_sm121: bool,
|
|
458
461
|
) -> Iterator[JitSpec]:
|
|
459
462
|
"""Generate XQA modules for various configurations."""
|
|
460
|
-
if not has_sm90
|
|
463
|
+
if not any((has_sm90, has_sm100, has_sm103, has_sm120, has_sm121)):
|
|
461
464
|
return # XQA requires SM90+
|
|
462
465
|
|
|
463
466
|
for (
|
|
@@ -578,6 +581,7 @@ def gen_all_modules(
|
|
|
578
581
|
use_logits_soft_cap_,
|
|
579
582
|
has_sm90,
|
|
580
583
|
has_sm100,
|
|
584
|
+
has_sm103,
|
|
581
585
|
add_gemma,
|
|
582
586
|
add_oai_oss,
|
|
583
587
|
)
|
|
@@ -732,13 +736,14 @@ def gen_all_modules(
|
|
|
732
736
|
# the fixed E=256/N=512/K=2048 shape (BS8).
|
|
733
737
|
jit_specs.append(gen_monomoe_module())
|
|
734
738
|
if has_sm100:
|
|
739
|
+
# SM103 registers its own FP4 quantization, CUTLASS fused MoE and FP4 GEMM
|
|
740
|
+
# below, and takes the SM100f TGV GEMMs instead of these sm_100a ones.
|
|
735
741
|
jit_specs.append(gen_fp4_quantization_sm100_module())
|
|
736
742
|
jit_specs.append(gen_cutlass_fused_moe_sm100_module())
|
|
737
|
-
jit_specs.append(gen_gemm_sm100_module())
|
|
738
743
|
jit_specs.append(gen_gemm_sm100_module_cutlass_fp4())
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
744
|
+
# Both TGV variants share a module name, so a build that also targets SM103
|
|
745
|
+
# must keep only the SM100f one, which runs on both.
|
|
746
|
+
if has_sm100 and not has_sm103:
|
|
742
747
|
# Add TGV GEMM modules for both bf16 and fp16
|
|
743
748
|
jit_specs.append(
|
|
744
749
|
gen_tgv_gemm_sm10x_module(torch.bfloat16, use_sm_100f=False)
|
|
@@ -746,12 +751,18 @@ def gen_all_modules(
|
|
|
746
751
|
jit_specs.append(
|
|
747
752
|
gen_tgv_gemm_sm10x_module(torch.float16, use_sm_100f=False)
|
|
748
753
|
)
|
|
749
|
-
|
|
754
|
+
if has_sm100 or has_sm103:
|
|
755
|
+
# SM103 loads these SM100-named modules too; they build for the targeted SM10x arch.
|
|
750
756
|
jit_specs.append(gen_trtllm_gen_gemm_module())
|
|
751
757
|
jit_specs.append(gen_trtllm_low_latency_gemm_module())
|
|
758
|
+
jit_specs.append(gen_gemm_sm100_module())
|
|
759
|
+
jit_specs.append(gen_gemm_sm100_module_cutlass_nvfp4_svdquant())
|
|
760
|
+
jit_specs.append(gen_gemm_sm100_module_cutlass_fp8())
|
|
761
|
+
jit_specs.append(gen_gemm_sm100_module_cutlass_mxfp8())
|
|
762
|
+
jit_specs.append(gen_mxfp8_quantization_sm100_module())
|
|
752
763
|
jit_specs.append(gen_trtllm_gen_fused_moe_sm100_module())
|
|
753
764
|
jit_specs.append(gen_trtllm_gen_routing_module())
|
|
754
|
-
if has_sm100f:
|
|
765
|
+
if has_sm100f or has_sm103:
|
|
755
766
|
# Add TGV GEMM modules compiled with SM100f flags for both bf16 and fp16
|
|
756
767
|
jit_specs.append(
|
|
757
768
|
gen_tgv_gemm_sm10x_module(torch.bfloat16, use_sm_100f=True)
|
|
@@ -764,6 +775,7 @@ def gen_all_modules(
|
|
|
764
775
|
jit_specs.append(gen_fp4_quantization_sm103_module())
|
|
765
776
|
jit_specs.append(gen_cutlass_fused_moe_sm103_module())
|
|
766
777
|
jit_specs.append(gen_cake_fused_moe_warp_decode_module())
|
|
778
|
+
jit_specs.append(gen_gemm_sm103_module_cutlass_fp4())
|
|
767
779
|
if has_sm107:
|
|
768
780
|
jit_specs.append(gen_fp4_quantization_sm107_module())
|
|
769
781
|
jit_specs.append(gen_trtllm_gen_gemm_module(enable_rubin=True))
|
|
@@ -810,12 +822,12 @@ def gen_all_modules(
|
|
|
810
822
|
or has_sm121
|
|
811
823
|
):
|
|
812
824
|
jit_specs.append(gen_trtllm_comm_module())
|
|
813
|
-
if has_sm100:
|
|
825
|
+
if has_sm100 or has_sm103:
|
|
814
826
|
jit_specs.append(gen_trtllm_mnnvl_comm_module())
|
|
815
827
|
jit_specs.append(gen_moe_alltoall_module())
|
|
816
828
|
# dcp_alltoall: kernel itself supports SM90+, but ptxas 12.6.0 has
|
|
817
829
|
# a known state-space inference bug on cp.async.bulk that aborts
|
|
818
|
-
# compilation. has_sm100
|
|
830
|
+
# compilation. has_sm100/has_sm103 imply CUDA >= 12.8, which avoids the bug.
|
|
819
831
|
# SM90/SM12x users still get this via JIT.
|
|
820
832
|
jit_specs.append(gen_dcp_alltoall_module())
|
|
821
833
|
jit_specs.append(gen_vllm_comm_module())
|
|
@@ -837,7 +849,7 @@ def gen_all_modules(
|
|
|
837
849
|
gen_topk_module(),
|
|
838
850
|
]
|
|
839
851
|
# Fused RMSNorm+SiLU: pre-compile all LUT configs (SM100+ only)
|
|
840
|
-
if has_sm100:
|
|
852
|
+
if has_sm100 or has_sm103:
|
|
841
853
|
for C in _SUPPORTED_C:
|
|
842
854
|
for tokens in _SUPPORTED_TOKENS:
|
|
843
855
|
for dtype in ["bf16", "fp8", "nvfp4"]:
|
|
@@ -939,7 +951,7 @@ def gen_all_modules(
|
|
|
939
951
|
*dtype_combo, dim, dstate, ntokens, cs_dtype, na_dtype
|
|
940
952
|
)
|
|
941
953
|
)
|
|
942
|
-
if has_sm90 or has_sm100:
|
|
954
|
+
if has_sm90 or has_sm100 or has_sm103:
|
|
943
955
|
jit_specs.append(gen_trtllm_utils_module())
|
|
944
956
|
# FP4 KV cache quantization/dequantization
|
|
945
957
|
jit_specs.append(gen_fp4_kv_dequantization_module())
|
|
@@ -966,6 +978,7 @@ def gen_all_modules(
|
|
|
966
978
|
use_sliding_window_,
|
|
967
979
|
has_sm90,
|
|
968
980
|
has_sm100,
|
|
981
|
+
has_sm103,
|
|
969
982
|
has_sm120,
|
|
970
983
|
has_sm121,
|
|
971
984
|
)
|
flashinfer/jit/gemm/core.py
CHANGED
|
@@ -716,6 +716,16 @@ def gen_gemm_sm120_module() -> JitSpec:
|
|
|
716
716
|
)
|
|
717
717
|
|
|
718
718
|
|
|
719
|
+
def _trtllm_gen_gemm_nvcc_flags(enable_rubin: bool) -> list[str]:
|
|
720
|
+
if enable_rubin:
|
|
721
|
+
return sm107a_nvcc_flags
|
|
722
|
+
# The runner has no device code of its own (kernels ship as cubins), so target
|
|
723
|
+
# the SM10x arch being built; an SM103 build must not embed an sm_100a image.
|
|
724
|
+
return current_compilation_context.get_nvcc_flags_list(
|
|
725
|
+
supported_major_versions=[10], map_sm107_to_100f=True
|
|
726
|
+
)
|
|
727
|
+
|
|
728
|
+
|
|
719
729
|
def gen_trtllm_gen_gemm_module(enable_rubin: bool = False) -> JitSpec:
|
|
720
730
|
# Fetch "flashinferMetaInfo.h" from the online kernel cache. This file
|
|
721
731
|
# contains the `tllmGenGemmList` as the list of available kernels online.
|
|
@@ -770,7 +780,7 @@ def gen_trtllm_gen_gemm_module(enable_rubin: bool = False) -> JitSpec:
|
|
|
770
780
|
"-DTLLM_ENABLE_CUDA",
|
|
771
781
|
f'-DTLLM_GEN_GEMM_CUBIN_PATH=\\"{gemm_path}\\"',
|
|
772
782
|
]
|
|
773
|
-
+ (
|
|
783
|
+
+ _trtllm_gen_gemm_nvcc_flags(enable_rubin),
|
|
774
784
|
extra_include_paths=[
|
|
775
785
|
gen_root,
|
|
776
786
|
jit_env.FLASHINFER_GEN_SRC_DIR,
|
|
@@ -953,7 +963,7 @@ def gen_trtllm_low_latency_gemm_module(enable_rubin: bool = False) -> JitSpec:
|
|
|
953
963
|
"-DTLLM_ENABLE_CUDA",
|
|
954
964
|
f'-DTLLM_GEN_GEMM_CUBIN_PATH=\\"{gemm_path}\\"',
|
|
955
965
|
]
|
|
956
|
-
+ (
|
|
966
|
+
+ _trtllm_gen_gemm_nvcc_flags(enable_rubin),
|
|
957
967
|
extra_include_paths=[
|
|
958
968
|
gen_root,
|
|
959
969
|
jit_env.FLASHINFER_GEN_SRC_DIR,
|
|
@@ -2,9 +2,9 @@ build_backend.py,sha256=4CRGt9gnaCXVdhsgn0bTnqCcSl6dt-l9xkFlTzyuYxc,47474
|
|
|
2
2
|
build_utils.py,sha256=oFHo3_xPsS-drjyMNJBPfsP8crP8LosqJJqQrWxBs7E,3576
|
|
3
3
|
flashinfer/__init__.py,sha256=O1VwXJUYhwvXBXjB-tIGjRINTxL9LRwHNCPIEqOtK4w,16516
|
|
4
4
|
flashinfer/__main__.py,sha256=NRaJY2e95yJXZ9gl5Q-w1Xa8dvrC-Dmbkszz7IgoVJY,38407
|
|
5
|
-
flashinfer/_build_meta.py,sha256=
|
|
5
|
+
flashinfer/_build_meta.py,sha256=PsNph7w4FQAxKc_p6Zpp2fp2sLc_xAcX_fDNezjfklI,133
|
|
6
6
|
flashinfer/activation.py,sha256=3zvIaz7oq1Dx5_ProkbSawdPxylBrRM5phJ57rV-uho,8164
|
|
7
|
-
flashinfer/aot.py,sha256
|
|
7
|
+
flashinfer/aot.py,sha256=gvMi06zmBVU6edX0rjroafwnCw2vpL438VexvUoKIak,50913
|
|
8
8
|
flashinfer/api_logging.py,sha256=5NX5OcGneTEKWw5VDNPUOqDPaE4nIC0KwD5NtlT32w8,109502
|
|
9
9
|
flashinfer/artifacts.py,sha256=UeeUn7bZjVVI52FD5CLb4wkvARKDXEc24oslDMqoT6s,13978
|
|
10
10
|
flashinfer/autotune_cache.py,sha256=ydOH4eXSK_xcTmAdqO4jWGscPLcMxFdbLpIodKUR3WI,31425
|
|
@@ -6788,7 +6788,7 @@ flashinfer/jit/attention/fmha_v2/generate_kernels.py,sha256=2_erMYw_s89A6v5MvHQI
|
|
|
6788
6788
|
flashinfer/jit/attention/fmha_v2/generator_utils.py,sha256=mSIILmzSkcWDh-0J5PuVbedscgIJWV39pnYb9g_LSDo,235441
|
|
6789
6789
|
flashinfer/jit/attention/fmha_v2/utils.py,sha256=7YCKF2_P14H9TH57kTK6r1_xi-8V279C5Eopcoqur14,35766
|
|
6790
6790
|
flashinfer/jit/gemm/__init__.py,sha256=82s4SwTJREnO6fkjFYHCoWNP6tuL0ESNKPNnHO5ROxc,1958
|
|
6791
|
-
flashinfer/jit/gemm/core.py,sha256=
|
|
6791
|
+
flashinfer/jit/gemm/core.py,sha256=6OZoW_9xogXHWi3O_WZVAkTzw0JJWoJBRkijAKFO6l8,34501
|
|
6792
6792
|
flashinfer/jit/gemm/deepgemm.py,sha256=2NWIiV1MJF7DeStouleTg5Lzx-WwN7MRw1SRuosyXVc,1023
|
|
6793
6793
|
flashinfer/jit/gemm/fp8_blockscale.py,sha256=ThULUDOn-VJ3FT5QgoiIpqAx3j2KxNz51Yc74ij0qdw,2207
|
|
6794
6794
|
flashinfer/jit/gemm/cutlass/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -7292,9 +7292,9 @@ flashinfer/triton/kernels/sm_constraint_gemm.py,sha256=_sMXOFtbFve3VGYUj2De5HnVq
|
|
|
7292
7292
|
flashinfer/triton/kernels/ssd_chunk_state.py,sha256=SLS-MU-5wDnEx_EqQe8qPZFjxYU8vHtF_BWWomIS3BE,7351
|
|
7293
7293
|
flashinfer/tuning_configs/v0_1_trtllm_fused_moe_NVIDIA_B200.py,sha256=UxR6bSyyacbdP03-gHampKfA4bnYbVeu2u6nrDv8YQc,8173
|
|
7294
7294
|
flashinfer/tuning_configs/v0_1_trtllm_fused_moe_NVIDIA_GB200.py,sha256=JFBj1XfiLhghAGpl8aY4KSYFXxWZguuiPX-xf-vnBFg,4879
|
|
7295
|
-
flashinfer_python-0.7.0.dist-info/licenses/LICENSE,sha256=y2fCJPUD4KBjkIlQsS-JpygMblJ9z_rJcqoRTkvzxd4,12332
|
|
7296
|
-
flashinfer_python-0.7.0.dist-info/METADATA,sha256=
|
|
7297
|
-
flashinfer_python-0.7.0.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
|
|
7298
|
-
flashinfer_python-0.7.0.dist-info/entry_points.txt,sha256=XEl-3MAg0fpIpkyEXNS01Mej9-xTQZJ-HZK8a15Eenw,55
|
|
7299
|
-
flashinfer_python-0.7.0.dist-info/top_level.txt,sha256=HX9X5yOVTUf4kO3Z_gb2iQGomGD8RJpDsJ-74laGZ-E,37
|
|
7300
|
-
flashinfer_python-0.7.0.dist-info/RECORD,,
|
|
7295
|
+
flashinfer_python-0.7.0.post1.dist-info/licenses/LICENSE,sha256=y2fCJPUD4KBjkIlQsS-JpygMblJ9z_rJcqoRTkvzxd4,12332
|
|
7296
|
+
flashinfer_python-0.7.0.post1.dist-info/METADATA,sha256=khk4kuKTfG8rt0Bkr1IhDYD0ooag8aXHtq0P-hUyzIo,11865
|
|
7297
|
+
flashinfer_python-0.7.0.post1.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
|
|
7298
|
+
flashinfer_python-0.7.0.post1.dist-info/entry_points.txt,sha256=XEl-3MAg0fpIpkyEXNS01Mej9-xTQZJ-HZK8a15Eenw,55
|
|
7299
|
+
flashinfer_python-0.7.0.post1.dist-info/top_level.txt,sha256=HX9X5yOVTUf4kO3Z_gb2iQGomGD8RJpDsJ-74laGZ-E,37
|
|
7300
|
+
flashinfer_python-0.7.0.post1.dist-info/RECORD,,
|
|
File without changes
|
{flashinfer_python-0.7.0.dist-info → flashinfer_python-0.7.0.post1.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{flashinfer_python-0.7.0.dist-info → flashinfer_python-0.7.0.post1.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|