[Fix] Keep Kimi image dependency baseline for Phase 5
This commit is contained in:
parent
c14f8aa43a
commit
b50de8fe99
@ -18,15 +18,20 @@ RUN python3 -m pip install --no-deps --force-reinstall \
|
||||
# SM120 AOT artifacts that passed the Phase 3/4 correctness gate.
|
||||
COPY aot/ /usr/local/lib/python3.12/dist-packages/flashinfer/data/aot/
|
||||
|
||||
# Use the complete tested SGLang Python package, not a pair of loose runtime
|
||||
# mounts. This preserves API compatibility between the two changed modules and
|
||||
# their surrounding Kimi/MoE integration.
|
||||
COPY sglang/ /sgl-workspace/sglang/python/sglang/
|
||||
# Apply only the two production source changes from SGLang commit fb929bb. The
|
||||
# Kimi base image intentionally pins sglang-kernel 0.4.5, so replacing the
|
||||
# entire newer Python tree would create a false package-version dependency.
|
||||
COPY sglang.patch /tmp/sglang.patch
|
||||
RUN patch --dry-run --batch --forward -p1 -d /sgl-workspace/sglang \
|
||||
< /tmp/sglang.patch && \
|
||||
patch --batch --forward -p1 -d /sgl-workspace/sglang \
|
||||
< /tmp/sglang.patch && \
|
||||
rm -f /tmp/sglang.patch
|
||||
|
||||
# Existing Kimi image compatibility fix: tcgen05 attention-residual is valid on
|
||||
# SM100/SM103, not consumer Blackwell SM120. Bake the fallback into the image.
|
||||
RUN python3 -c "from pathlib import Path; p=Path('/sgl-workspace/sglang/python/sglang/srt/layers/attn_residual.py'); s=p.read_text(); old=' _FAST_SUPPORTED = major >= 10'; new=' _FAST_SUPPORTED = major in (10, 11)'; assert old in s; p.write_text(s.replace(old,new))" && \
|
||||
python3 -m compileall -q /sgl-workspace/sglang/python/sglang && \
|
||||
python3 -m compileall -q /sgl-workspace/sglang/python/sglang/srt/layers && \
|
||||
python3 -c "from flashinfer.fused_moe import core; assert core.CUTLASS_FUSED_MOE_SUPPORTS_SITU is True"
|
||||
|
||||
LABEL ai.meta-stone.purpose="Kimi-K3 SM120 FlashInfer MXFP4 Phase 5 acceptance" \
|
||||
|
||||
@ -70,3 +70,8 @@ results/<RUN_ID>/
|
||||
|
||||
The run aborts on a failed service start, any failed request, a missing result,
|
||||
or an image capability smoke failure. Containers are removed on exit.
|
||||
|
||||
The candidate image preserves the Kimi base image's dependency set. It installs
|
||||
the patched FlashInfer wheel/AOT libraries and applies only the two production
|
||||
source files from SGLang commit `fb929bb`; it does not replace the complete
|
||||
SGLang Python tree or require a newer `sglang-kernel` package.
|
||||
|
||||
@ -15,7 +15,8 @@ BASE_IMAGE="${BASE_IMAGE:-lmsysorg/sglang:kimi-k3-fiv617situ-warm}"
|
||||
CANDIDATE_IMAGE="${CANDIDATE_IMAGE:-local/sglang:kimi-k3-sm120-flashinfer-mxfp4-phase5}"
|
||||
FLASHINFER_TARGET="${FLASHINFER_TARGET:-/tmp/hzy-fi-situ-phase3-v3}"
|
||||
FLASHINFER_WHEEL="${FLASHINFER_WHEEL:-/data/hzy/artifacts/flashinfer-kimi-sm120-situ-phase3-v3/flashinfer_python-0.6.18-py3-none-any.whl}"
|
||||
SGLANG_SOURCE="${SGLANG_SOURCE:-/data/hzy/src/sglang-kimi-sm120/python/sglang}"
|
||||
SGLANG_REPO="${SGLANG_REPO:-/data/hzy/src/sglang-kimi-sm120}"
|
||||
SGLANG_PATCH_COMMIT="${SGLANG_PATCH_COMMIT:-fb929bb}"
|
||||
|
||||
BENCH_DATASET_NAME="${BENCH_DATASET_NAME:-random-ids}"
|
||||
BENCH_MODULE="${BENCH_MODULE:-sglang.benchmark.serving}"
|
||||
|
||||
@ -79,7 +79,7 @@ sudo_host() {
|
||||
check_inputs() {
|
||||
local path
|
||||
for path in "$MODEL_PATH" "$FLASHINFER_TARGET/flashinfer" \
|
||||
"$FLASHINFER_WHEEL" "$SGLANG_SOURCE"; do
|
||||
"$FLASHINFER_WHEEL" "$SGLANG_REPO/.git"; do
|
||||
[[ -e "$path" ]] || { echo "ERROR: required path missing: $path" >&2; exit 2; }
|
||||
done
|
||||
[[ -d "$FLASHINFER_TARGET/flashinfer/data/aot/fused_moe_120" ]] || {
|
||||
@ -91,11 +91,18 @@ check_inputs() {
|
||||
prepare_build_context() {
|
||||
log "preparing candidate image context at ${BUILD_CONTEXT}"
|
||||
rm -rf "$BUILD_CONTEXT"
|
||||
mkdir -p "$BUILD_CONTEXT/aot" "$BUILD_CONTEXT/sglang"
|
||||
mkdir -p "$BUILD_CONTEXT/aot"
|
||||
cp "$SCRIPT_DIR/Dockerfile" "$BUILD_CONTEXT/Dockerfile"
|
||||
cp "$FLASHINFER_WHEEL" "$BUILD_CONTEXT/flashinfer_python-0.6.18-py3-none-any.whl"
|
||||
cp -a "$FLASHINFER_TARGET/flashinfer/data/aot/." "$BUILD_CONTEXT/aot/"
|
||||
cp -a "$SGLANG_SOURCE/." "$BUILD_CONTEXT/sglang/"
|
||||
git -C "$SGLANG_REPO" show --format= --binary "$SGLANG_PATCH_COMMIT" -- \
|
||||
python/sglang/srt/layers/moe/moe_runner/flashinfer_cutlass.py \
|
||||
python/sglang/srt/layers/quantization/mxfp4.py \
|
||||
>"$BUILD_CONTEXT/sglang.patch"
|
||||
[[ -s "$BUILD_CONTEXT/sglang.patch" ]] || {
|
||||
echo "ERROR: empty SGLang patch from ${SGLANG_PATCH_COMMIT}" >&2
|
||||
exit 2
|
||||
}
|
||||
find "$BUILD_CONTEXT" -type d -name __pycache__ -prune -exec rm -rf {} +
|
||||
find "$BUILD_CONTEXT" -type f -name '*.pyc' -delete
|
||||
du -sh "$BUILD_CONTEXT" | tee "$RESULT_ROOT/build/context_size.txt"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user