@@ -23,53 +23,38 @@ check_env_vars \
2323 RANDOM_RANGE_RATIO \
2424 RESULT_FILENAME
2525
26- # # --- FlashInfer nightly + CuTeDSL split-K gemm patch -------------------------
27- # # Pinned to nightly release nightly-v0.6.14-20260708. The wheels are not yet on
28- # # the flashinfer.ai/whl/nightly flat index, so install by direct release URL.
29- # FLASHINFER_VERSION=0.6.14.dev20260708
30- # FLASHINFER_NIGHTLY_TAG=nightly-v0.6.14-20260708
31- # FLASHINFER_RELEASE_URL="https://github.com/flashinfer-ai/flashinfer/releases/download/${FLASHINFER_NIGHTLY_TAG}"
32-
33- # # The flashinfer-jit-cache wheel is CUDA-version-specific; derive cuXYZ from
34- # # the torch build inside the container (e.g. 13.0 -> cu130).
35- # CUDA_MAJOR_MINOR="cu$(python3 -c 'import torch; print(torch.version.cuda.replace(".", ""))')" \
36- # || { echo "Failed to determine CUDA version from torch" >&2; exit 1; }
37-
38- # python3 -m pip uninstall -y flashinfer-python flashinfer-cubin flashinfer-jit-cache
39-
40- # python3 -m pip install --pre \
41- # "${FLASHINFER_RELEASE_URL}/flashinfer_python-${FLASHINFER_VERSION}-py3-none-any.whl" \
42- # "${FLASHINFER_RELEASE_URL}/flashinfer_cubin-${FLASHINFER_VERSION}-py3-none-any.whl" \
43- # "${FLASHINFER_RELEASE_URL}/flashinfer_jit_cache-${FLASHINFER_VERSION}+${CUDA_MAJOR_MINOR}-cp39-abi3-manylinux_2_28_$(uname -m).whl" \
44- # || { echo "FlashInfer nightly install failed" >&2; exit 1; }
45-
46- # # Apply CuTeDSL split-K gemm patch (jiahanc/flashinfer branch cutedsl-splitK,
47- # # flashinfer/gemm changes only) on top of the pinned nightly. The reinstall
48- # # above guarantees pristine files, so the patch always applies cleanly.
49- # FLASHINFER_PATCH="$(dirname "$0")/patches/flashinfer-cutedsl-splitk-gemm.patch"
50- # if ! command -v patch >/dev/null 2>&1; then
51- # apt-get update -y && apt-get install -y --no-install-recommends patch \
52- # || { echo "Failed to install patch(1)" >&2; exit 1; }
53- # fi
54- # SITE_PACKAGES=$(dirname "$(python3 -c "import importlib.util; print(importlib.util.find_spec('flashinfer').submodule_search_locations[0])")") \
55- # || { echo "Could not locate the installed flashinfer package" >&2; exit 1; }
56- # patch -p1 -d "${SITE_PACKAGES}" < "$FLASHINFER_PATCH" \
57- # || { echo "FlashInfer CuTeDSL split-K gemm patch failed" >&2; exit 1; }
58- # # -----------------------------------------------------------------------------
59-
60- # --- vLLM MiniMax-M3 GateLinear bf16 patch (vllm-project/vllm#47393) ----------
61- VLLM_GATE_PATCH=" $( dirname " $0 " ) /patches/vllm-minimaxm3-gate-bf16.patch"
26+ # --- FlashInfer nightly + CuTeDSL split-K gemm patch -------------------------
27+ # Pinned to nightly release nightly-v0.6.14-20260708. The wheels are not yet on
28+ # the flashinfer.ai/whl/nightly flat index, so install by direct release URL.
29+ FLASHINFER_VERSION=0.6.14.dev20260708
30+ FLASHINFER_NIGHTLY_TAG=nightly-v0.6.14-20260708
31+ FLASHINFER_RELEASE_URL=" https://github.com/flashinfer-ai/flashinfer/releases/download/${FLASHINFER_NIGHTLY_TAG} "
32+
33+ # The flashinfer-jit-cache wheel is CUDA-version-specific; derive cuXYZ from
34+ # the torch build inside the container (e.g. 13.0 -> cu130).
35+ CUDA_MAJOR_MINOR=" cu$( python3 -c ' import torch; print(torch.version.cuda.replace(".", ""))' ) " \
36+ || { echo " Failed to determine CUDA version from torch" >&2 ; exit 1; }
37+
38+ python3 -m pip uninstall -y flashinfer-python flashinfer-cubin flashinfer-jit-cache
39+
40+ python3 -m pip install --pre \
41+ " ${FLASHINFER_RELEASE_URL} /flashinfer_python-${FLASHINFER_VERSION} -py3-none-any.whl" \
42+ " ${FLASHINFER_RELEASE_URL} /flashinfer_cubin-${FLASHINFER_VERSION} -py3-none-any.whl" \
43+ " ${FLASHINFER_RELEASE_URL} /flashinfer_jit_cache-${FLASHINFER_VERSION} +${CUDA_MAJOR_MINOR} -cp39-abi3-manylinux_2_28_$( uname -m) .whl" \
44+ || { echo " FlashInfer nightly install failed" >&2 ; exit 1; }
45+
46+ # Apply CuTeDSL split-K gemm patch (jiahanc/flashinfer branch cutedsl-splitK,
47+ # flashinfer/gemm changes only) on top of the pinned nightly. The reinstall
48+ # above guarantees pristine files, so the patch always applies cleanly.
49+ FLASHINFER_PATCH=" $( dirname " $0 " ) /patches/flashinfer-cutedsl-splitk-gemm.patch"
6250if ! command -v patch > /dev/null 2>&1 ; then
6351 apt-get update -y && apt-get install -y --no-install-recommends patch \
6452 || { echo " Failed to install patch(1)" >&2 ; exit 1; }
6553fi
66- VLLM_PACKAGE_DIR=$( python3 -c " import importlib.util; print(importlib.util.find_spec(\" vllm\" ).submodule_search_locations[0])" ) \
67- || { echo " Could not locate the installed vllm package" >&2 ; exit 1; }
68- VLLM_SITE_PACKAGES=$( dirname " $VLLM_PACKAGE_DIR " )
69- patch --dry-run -p1 -d " $VLLM_SITE_PACKAGES " < " $VLLM_GATE_PATCH " > /dev/null \
70- || { echo " vLLM MiniMax-M3 GateLinear bf16 patch does not apply" >&2 ; exit 1; }
71- patch -p1 -d " $VLLM_SITE_PACKAGES " < " $VLLM_GATE_PATCH " \
72- || { echo " vLLM MiniMax-M3 GateLinear bf16 patch failed" >&2 ; exit 1; }
54+ SITE_PACKAGES=$( dirname " $( python3 -c " import importlib.util; print(importlib.util.find_spec('flashinfer').submodule_search_locations[0])" ) " ) \
55+ || { echo " Could not locate the installed flashinfer package" >&2 ; exit 1; }
56+ patch -p1 -d " ${SITE_PACKAGES} " < " $FLASHINFER_PATCH " \
57+ || { echo " FlashInfer CuTeDSL split-K gemm patch failed" >&2 ; exit 1; }
7358# -----------------------------------------------------------------------------
7459
7560if [[ -n " ${MODEL_PATH:- } " ]]; then
0 commit comments