| #!/usr/bin/env bash |
| |
| |
| |
| |
| set -euo pipefail |
|
|
| VARIANT="${1:-1m}" |
| HF_BASE="jarrelscy/GLM-5.2-NVFP4-AQLM-hybrid" |
| VLLM_FORK="https://github.com/jarrelscy/vllm-glm52-sm120" |
| VLLM_BRANCH="glm52-sm120" |
| WORK="${WORK:-$HOME/glm52}" |
|
|
| case "$VARIANT" in |
| 1m) HF_REPO="$HF_BASE"; MAXLEN=1048576 ;; |
| 500k) HF_REPO="$HF_BASE-500k"; MAXLEN=524288 ;; |
| 250k) HF_REPO="$HF_BASE-250k"; MAXLEN=262144 ;; |
| *) echo "usage: $0 [1m|500k|250k]"; exit 1 ;; |
| esac |
| MODEL_DIR="$WORK/models/$VARIANT" |
|
|
| |
| if [ ! -d "$WORK/vllm/.venv" ]; then |
| mkdir -p "$WORK" && cd "$WORK" |
| command -v uv >/dev/null || curl -LsSf https://astral.sh/uv/install.sh | sh |
| export PATH="$HOME/.local/bin:$PATH" |
|
|
| |
| git clone --depth 1 -b "$VLLM_BRANCH" "$VLLM_FORK" vllm && cd vllm |
| uv venv --python 3.12 .venv && source .venv/bin/activate |
| uv pip install vllm --torch-backend=auto |
| VLLM_USE_PRECOMPILED=1 uv pip install -e . --torch-backend=auto |
| uv pip install ninja "huggingface_hub[cli]" |
|
|
| |
| uv pip install "flashinfer-python @ git+https://github.com/flashinfer-ai/flashinfer.git" |
|
|
| |
| TORCH_CU=$(python -c "import torch;print(torch.version.cuda.split('.')[0]+'.'+torch.version.cuda.split('.')[1])") |
| uv pip install "nvidia-cuda-nvcc==${TORCH_CU}.*" "nvidia-cuda-crt==${TORCH_CU}.*" \ |
| "nvidia-nvvm==${TORCH_CU}.*" "nvidia-cuda-cccl==${TORCH_CU}.*" || true |
| CU13="$WORK/vllm/.venv/lib/python3.12/site-packages/nvidia/cu13" |
| ln -sfn lib "$CU13/lib64" 2>/dev/null || true |
| for f in "$CU13"/lib/lib*.so.*; do b=$(basename "$f"); s=${b%%.so.*}; |
| [ -e "$CU13/lib/$s.so" ] || ln -s "$b" "$CU13/lib/$s.so"; done |
| fi |
|
|
| |
| if [ ! -f "$MODEL_DIR/config.json" ]; then |
| source "$WORK/vllm/.venv/bin/activate" |
| hf download "$HF_REPO" --exclude "code/*" --local-dir "$MODEL_DIR" |
| fi |
|
|
| |
| cd "$WORK/vllm" && source .venv/bin/activate |
| export CUDA_HOME="$WORK/vllm/.venv/lib/python3.12/site-packages/nvidia/cu13" |
| export VLLM_PP_LAYER_PARTITION="21,19,19,19" |
| export NCCL_MAX_NCHANNELS=4 NCCL_BUFFSIZE=1048576 |
| export VLLM_SPARSE_INDEXER_MAX_LOGITS_MB=256 |
|
|
| exec vllm serve "$MODEL_DIR" \ |
| --pipeline-parallel-size 4 \ |
| --gpu-memory-utilization 0.95 \ |
| --kv-cache-dtype fp8_ds_mla \ |
| --max-model-len "$MAXLEN" \ |
| --max-num-seqs 2 \ |
| --max-num-batched-tokens 2048 \ |
| --enforce-eager \ |
| --port 8000 |
|
|