Files
2026-07-13 12:24:33 +08:00

85 lines
3.0 KiB
Bash

#!/usr/bin/env bash
# SPDX-License-Identifier: Apache-2.0
#
# Generic CPU vLLM e2e wrapper for both macOS and Ubuntu.
# Assumes vLLM CPU build and facebook/opt-125m are already installed/
# downloaded by the CI workflow steps before this script is invoked.
#
# Delegates all logic to the shared run-cpu-e2e-validation.sh with:
# SKIP_INSTALL=1 (install done by CI workflow steps)
#
# Transport mode is selected via LMCACHE_TRANSPORT_MODE:
# engine_driven -> LMCACHE_MP_TRANSFER_MODE=engine_driven (server-side copy)
# lmcache_driven -> LMCACHE_DATA_MODE selects shm (default) or pickle
#
# Environment variables (all optional, defaults shown):
# LMCACHE_TRANSPORT_MODE Transport: engine_driven|lmcache_driven
# (default: engine_driven)
# LMCACHE_DATA_MODE Data transfer mode: shm|pickle (default: shm)
# LMCACHE_HTTP_PORT HTTP port for LMCache server (default: 8080)
# VLLM_PORT HTTP port for vLLM server (default: 8000)
# LMCACHE_L1_SIZE_GB LMCache L1 cache size in GB (default: 2)
# VLLM_READY_TIMEOUT Seconds to wait for vLLM (default: 300)
# LMCACHE_HEALTHCHECK_TIMEOUT Seconds to wait for LMCache (default: 60)
set -euo pipefail
OS="$(uname -s)"
echo "==> CPU vLLM e2e test (OS: ${OS})"
echo " Python: $(python3 --version 2>&1 || true)"
echo " uname: $(uname -a)"
if [ "${OS}" = "Darwin" ]; then
sw_vers 2>/dev/null || true
fi
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "${SCRIPT_DIR}/../.." && pwd)"
SHARED_SCRIPT="${REPO_ROOT}/.github/scripts/run-cpu-e2e-validation.sh"
if [ ! -f "${SHARED_SCRIPT}" ]; then
echo "!! Shared script not found: ${SHARED_SCRIPT}"
exit 1
fi
LMCACHE_TRANSPORT_MODE="${LMCACHE_TRANSPORT_MODE:-engine_driven}"
# When LMCACHE_TRANSPORT_MODE=engine_driven, LMCACHE_DATA_MODE selects the
# specific data transfer mechanism: shm (default) or pickle.
LMCACHE_DATA_MODE="${LMCACHE_DATA_MODE:-shm}"
# Map LMCACHE_TRANSPORT_MODE to the vars expected by the shared script.
case "${LMCACHE_TRANSPORT_MODE}" in
engine_driven)
case "${LMCACHE_DATA_MODE}" in
shm)
export LMCACHE_SHM_NAME="__default__"
;;
pickle)
export LMCACHE_SHM_NAME=""
;;
esac
export LMCACHE_MP_TRANSFER_MODE="engine_driven"
;;
lmcache_driven)
export LMCACHE_MP_TRANSFER_MODE="lmcache_driven"
;;
*)
echo "!! Unknown LMCACHE_TRANSPORT_MODE='${LMCACHE_TRANSPORT_MODE}'"
echo " Valid values: engine_driven, lmcache_driven"
exit 1
;;
esac
export SKIP_INSTALL="${SKIP_INSTALL:-1}"
export LMCACHE_HEALTHCHECK_TIMEOUT="${LMCACHE_HEALTHCHECK_TIMEOUT:-60}"
export VLLM_READY_TIMEOUT="${VLLM_READY_TIMEOUT:-300}"
export LMCACHE_LOG_FILE="${LMCACHE_LOG_FILE:-/tmp/cpu_e2e_lmcache.log}"
export VLLM_LOG_FILE="${VLLM_LOG_FILE:-/tmp/cpu_e2e_vllm.log}"
echo " LMCACHE_TRANSPORT_MODE=${LMCACHE_TRANSPORT_MODE}"
echo " LMCACHE_DATA_MODE=${LMCACHE_DATA_MODE}"
echo " SKIP_INSTALL=${SKIP_INSTALL}"
echo " Delegating to: ${SHARED_SCRIPT}"
exec bash "${SHARED_SCRIPT}"