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 CHANGED
@@ -1,3 +1,3 @@
1
1
  """Build metadata for flashinfer package."""
2
- __version__ = "0.7.0"
3
- __git_commit__ = "4d75a33f19aaf48b44d5b1c5dbca33bc1eca5c58"
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 and not has_sm100 and not has_sm120 and not has_sm121:
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
- jit_specs.append(gen_gemm_sm100_module_cutlass_nvfp4_svdquant())
740
- jit_specs.append(gen_gemm_sm100_module_cutlass_fp8())
741
- jit_specs.append(gen_gemm_sm100_module_cutlass_mxfp8())
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
- jit_specs.append(gen_mxfp8_quantization_sm100_module())
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 implies CUDA >= 12.8, which avoids the bug.
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
  )
@@ -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
- + (sm107a_nvcc_flags if enable_rubin else sm100a_nvcc_flags),
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
- + (sm107a_nvcc_flags if enable_rubin else sm100a_nvcc_flags),
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,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flashinfer-python
3
- Version: 0.7.0
3
+ Version: 0.7.0.post1
4
4
  Summary: FlashInfer: Kernel Library for LLM Serving
5
5
  Author: FlashInfer team
6
6
  License-Expression: Apache-2.0
@@ -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=2AokBmOL_ioBE_Dh0xIPN_dHgNyQ0Ht0C7KMd8HzI-g,127
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=-eZH2Sv1pkcxUHz9gNRa985rLWOf7n7Q8ftZdhULtpE,50146
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=Q5-1MB9YH1mUvgZQSUDV33pSmBveO0wxRd5B5x_4AYI,34120
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=IgYcgkhgo9VHaJN_DIbbWGeG8FhaXUn7Kw-am8u-Eok,11859
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,,