revert flashinfer 0.6.11 bumps (#25310)
This commit is contained in:
+1
-1
@@ -19,7 +19,7 @@ ARG PIP_DEFAULT_INDEX
|
|||||||
ARG UBUNTU_MIRROR
|
ARG UBUNTU_MIRROR
|
||||||
ARG GITHUB_ARTIFACTORY=github.com
|
ARG GITHUB_ARTIFACTORY=github.com
|
||||||
ARG INSTALL_FLASHINFER_JIT_CACHE=0
|
ARG INSTALL_FLASHINFER_JIT_CACHE=0
|
||||||
ARG FLASHINFER_VERSION=0.6.11.post1
|
ARG FLASHINFER_VERSION=0.6.8.post1
|
||||||
ARG MOONCAKE_VERSION=0.3.10.post2
|
ARG MOONCAKE_VERSION=0.3.10.post2
|
||||||
#if need other arg please add in MOONCAKE_COMPILE_ARG
|
#if need other arg please add in MOONCAKE_COMPILE_ARG
|
||||||
ARG MOONCAKE_COMPILE_ARG="-DUSE_HTTP=ON -DUSE_MNNVL=ON -DUSE_CUDA=ON -DWITH_EP=ON"
|
ARG MOONCAKE_COMPILE_ARG="-DUSE_HTTP=ON -DUSE_MNNVL=ON -DUSE_CUDA=ON -DWITH_EP=ON"
|
||||||
|
|||||||
@@ -27,8 +27,8 @@ dependencies = [
|
|||||||
"datasets",
|
"datasets",
|
||||||
"einops",
|
"einops",
|
||||||
"fastapi",
|
"fastapi",
|
||||||
"flashinfer_python==0.6.11.post1", # keep it aligned with jit-cache version in Dockerfile
|
"flashinfer_python==0.6.8.post1", # keep it aligned with jit-cache version in Dockerfile
|
||||||
"flashinfer_cubin==0.6.11.post1",
|
"flashinfer_cubin==0.6.8.post1",
|
||||||
"gguf",
|
"gguf",
|
||||||
"interegular",
|
"interegular",
|
||||||
"llguidance>=0.7.11,<0.8.0",
|
"llguidance>=0.7.11,<0.8.0",
|
||||||
@@ -37,7 +37,7 @@ dependencies = [
|
|||||||
"ninja",
|
"ninja",
|
||||||
"easydict", # Required by remote model code (e.g. DeepSeek-OCR) loaded via trust_remote_code; validated by transformers 5.4+ check_imports
|
"easydict", # Required by remote model code (e.g. DeepSeek-OCR) loaded via trust_remote_code; validated by transformers 5.4+ check_imports
|
||||||
"numpy",
|
"numpy",
|
||||||
"nvidia-cutlass-dsl==4.5.0",
|
"nvidia-cutlass-dsl==4.4.2",
|
||||||
"nvidia-ml-py",
|
"nvidia-ml-py",
|
||||||
"openai-harmony==0.0.4",
|
"openai-harmony==0.0.4",
|
||||||
"openai==2.6.1",
|
"openai==2.6.1",
|
||||||
@@ -53,7 +53,7 @@ dependencies = [
|
|||||||
"pydantic",
|
"pydantic",
|
||||||
"python-multipart",
|
"python-multipart",
|
||||||
"pyzmq>=25.1.2",
|
"pyzmq>=25.1.2",
|
||||||
"quack-kernels>=0.4.1",
|
"quack-kernels>=0.3.0",
|
||||||
"requests",
|
"requests",
|
||||||
"scipy",
|
"scipy",
|
||||||
"sentencepiece",
|
"sentencepiece",
|
||||||
|
|||||||
@@ -1201,7 +1201,7 @@ def _set_envs_and_config(server_args: ServerArgs):
|
|||||||
if server_args.attention_backend == "flashinfer":
|
if server_args.attention_backend == "flashinfer":
|
||||||
assert_pkg_version(
|
assert_pkg_version(
|
||||||
"flashinfer_python",
|
"flashinfer_python",
|
||||||
"0.6.11.post1",
|
"0.6.8.post1",
|
||||||
"Please uninstall the old version and "
|
"Please uninstall the old version and "
|
||||||
"reinstall the latest version by following the instructions "
|
"reinstall the latest version by following the instructions "
|
||||||
"at https://docs.flashinfer.ai/installation.html.",
|
"at https://docs.flashinfer.ai/installation.html.",
|
||||||
|
|||||||
@@ -383,11 +383,6 @@ class FlashInferWorkspaceManager:
|
|||||||
hidden_dim=hidden_dim,
|
hidden_dim=hidden_dim,
|
||||||
dtype=dtype,
|
dtype=dtype,
|
||||||
force_oneshot_support=bool(use_oneshot),
|
force_oneshot_support=bool(use_oneshot),
|
||||||
# Pin the symmetric-memory rendezvous to the actual
|
|
||||||
# subgroup. Without this, flashinfer >=0.6.10 falls back
|
|
||||||
# to WORLD and TP/EP/CP subgroup peers get addressed
|
|
||||||
# incorrectly (kernel hangs in cuda-graph warmup).
|
|
||||||
group=device_group,
|
|
||||||
)
|
)
|
||||||
if (
|
if (
|
||||||
_TorchDistBackend is not None
|
_TorchDistBackend is not None
|
||||||
@@ -520,6 +515,8 @@ def ensure_workspace_initialized(
|
|||||||
if not is_flashinfer_available() or _flashinfer_comm is None:
|
if not is_flashinfer_available() or _flashinfer_comm is None:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
tp_coordinator = get_tp_group()
|
||||||
|
|
||||||
if use_attn_tp_group:
|
if use_attn_tp_group:
|
||||||
world_size = get_attn_tensor_model_parallel_world_size()
|
world_size = get_attn_tensor_model_parallel_world_size()
|
||||||
rank = get_attn_tensor_model_parallel_rank()
|
rank = get_attn_tensor_model_parallel_rank()
|
||||||
@@ -534,10 +531,15 @@ def ensure_workspace_initialized(
|
|||||||
rank = get_moe_tensor_parallel_rank()
|
rank = get_moe_tensor_parallel_rank()
|
||||||
coordinator = get_moe_tp_group()
|
coordinator = get_moe_tp_group()
|
||||||
|
|
||||||
# Always pass the coordinator's groups: flashinfer >=0.6.10 reads the
|
# When the sub-group IS the full TP group, pass None so the workspace
|
||||||
# rendezvous group from `group=...` (falling back to WORLD when None),
|
# uses the default process group directly (no TorchDistBackend needed).
|
||||||
# so leaving it None silently rendezvouses on WORLD and the kernel ends
|
# For true sub-groups, use NCCL device_group for GPU/device mapping and
|
||||||
# up addressing the wrong peers in TP/EP/CP subgroup setups.
|
# GLOO cpu_group for metadata broadcasts (avoids NCCL collectives that
|
||||||
|
# interfere with CUDA graph capture).
|
||||||
|
if coordinator.device_group is tp_coordinator.device_group:
|
||||||
|
device_group = None
|
||||||
|
cpu_group = None
|
||||||
|
else:
|
||||||
device_group = coordinator.device_group
|
device_group = coordinator.device_group
|
||||||
cpu_group = coordinator.cpu_group
|
cpu_group = coordinator.cpu_group
|
||||||
|
|
||||||
|
|||||||
@@ -34,13 +34,13 @@ try:
|
|||||||
enable_pdl: Optional[bool] = None,
|
enable_pdl: Optional[bool] = None,
|
||||||
) -> tuple[torch.Tensor, torch.Tensor]:
|
) -> tuple[torch.Tensor, torch.Tensor]:
|
||||||
return _flashinfer_fp4_quantize(
|
return _flashinfer_fp4_quantize(
|
||||||
input=input,
|
input,
|
||||||
global_scale=global_scale,
|
global_scale,
|
||||||
sf_vec_size=sf_vec_size,
|
sf_vec_size,
|
||||||
sf_use_ue8m0=sf_use_ue8m0,
|
sf_use_ue8m0,
|
||||||
is_sf_swizzled_layout=is_sf_swizzled_layout,
|
is_sf_swizzled_layout,
|
||||||
is_sf_8x4_layout=is_sf_8x4_layout,
|
is_sf_8x4_layout,
|
||||||
enable_pdl=enable_pdl,
|
enable_pdl,
|
||||||
backend=_flashinfer_fp4_quantize_backend,
|
backend=_flashinfer_fp4_quantize_backend,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -1105,7 +1105,7 @@ def check_pkg_version_at_least(pkg: str, min_version: str) -> bool:
|
|||||||
|
|
||||||
Args:
|
Args:
|
||||||
pkg: Package name (distribution name, e.g., "flashinfer-python")
|
pkg: Package name (distribution name, e.g., "flashinfer-python")
|
||||||
min_version: Minimum version required (e.g., "0.6.11.post1")
|
min_version: Minimum version required (e.g., "0.6.8.post1")
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
True if package is installed and version >= min_version, False otherwise
|
True if package is installed and version >= min_version, False otherwise
|
||||||
|
|||||||
@@ -899,14 +899,13 @@ class TestCuteDslV1(unittest.TestCase):
|
|||||||
masked_m.to(hidden_states.device),
|
masked_m.to(hidden_states.device),
|
||||||
)
|
)
|
||||||
|
|
||||||
a_global_scale = input_global_scale[:1]
|
|
||||||
a_fp4, a_scale_interleaved = fp4_quantize(
|
a_fp4, a_scale_interleaved = fp4_quantize(
|
||||||
hidden_states, a_global_scale
|
hidden_states, input_global_scale
|
||||||
)
|
)
|
||||||
a_in_dtype = dequantize_nvfp4_to_dtype(
|
a_in_dtype = dequantize_nvfp4_to_dtype(
|
||||||
a_fp4,
|
a_fp4,
|
||||||
a_scale_interleaved,
|
a_scale_interleaved,
|
||||||
a_global_scale,
|
input_global_scale,
|
||||||
dtype=hidden_states.dtype,
|
dtype=hidden_states.dtype,
|
||||||
device=hidden_states.device,
|
device=hidden_states.device,
|
||||||
block_size=16,
|
block_size=16,
|
||||||
@@ -1078,12 +1077,11 @@ class TestCuteDslV1(unittest.TestCase):
|
|||||||
masked_m.to(device),
|
masked_m.to(device),
|
||||||
)
|
)
|
||||||
|
|
||||||
a_global_scale = input_global_scale[:1]
|
a_fp4, a_scale_interleaved = fp4_quantize(hidden_states, input_global_scale)
|
||||||
a_fp4, a_scale_interleaved = fp4_quantize(hidden_states, a_global_scale)
|
|
||||||
a_in_dtype = dequantize_nvfp4_to_dtype(
|
a_in_dtype = dequantize_nvfp4_to_dtype(
|
||||||
a_fp4,
|
a_fp4,
|
||||||
a_scale_interleaved,
|
a_scale_interleaved,
|
||||||
a_global_scale,
|
input_global_scale,
|
||||||
dtype=hidden_states.dtype,
|
dtype=hidden_states.dtype,
|
||||||
device=device,
|
device=device,
|
||||||
block_size=16,
|
block_size=16,
|
||||||
@@ -1253,12 +1251,11 @@ class TestCuteDslV1(unittest.TestCase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
# PyTorch reference (same as the bf16 input test)
|
# PyTorch reference (same as the bf16 input test)
|
||||||
a_gs = input_gs[:1]
|
a_fp4, a_scale = fp4_quantize(hidden_states, input_gs)
|
||||||
a_fp4, a_scale = fp4_quantize(hidden_states, a_gs)
|
|
||||||
a_deq = dequantize_nvfp4_to_dtype(
|
a_deq = dequantize_nvfp4_to_dtype(
|
||||||
a_fp4,
|
a_fp4,
|
||||||
a_scale,
|
a_scale,
|
||||||
a_gs,
|
input_gs,
|
||||||
dtype=torch.bfloat16,
|
dtype=torch.bfloat16,
|
||||||
device=device,
|
device=device,
|
||||||
block_size=16,
|
block_size=16,
|
||||||
|
|||||||
Reference in New Issue
Block a user