Dockerfile 1.8 KB

1234567891011121314151617181920212223242526272829303132333435
  1. # syntax=docker/dockerfile:1.7
  2. # GLM-5.2 NF3-Hybrid — minimal overlay atop community DGX Spark image
  3. ARG BASE_IMAGE=ghcr.io/timothystewart6/vllm-gb10:v0.24.0-gb10.5
  4. FROM ${BASE_IMAGE}
  5. ARG TORCH_CUDA_ARCH_LIST=12.1a
  6. ENV PIP_BREAK_SYSTEM_PACKAGES=1 \
  7. TORCH_CUDA_ARCH_LIST=${TORCH_CUDA_ARCH_LIST} \
  8. CUTE_DSL_ARCH=sm_121a
  9. # Build tools + b12x deps only (everything else comes from base)
  10. RUN apt-get update && apt-get install -y --no-install-recommends \
  11. build-essential ninja-build cmake git python3-dev \
  12. && rm -rf /var/lib/apt/lists/*
  13. # Build b12x from source
  14. RUN git clone --recursive https://github.com/voipmonitor/b12x.git /opt/b12x \
  15. && cd /opt/b12x \
  16. && git checkout f3686b555d639823b276c2080f173145eed7f007
  17. WORKDIR /opt/b12x
  18. RUN pip install --no-cache-dir --no-deps -e . --no-build-isolation \
  19. -C setup.args="--cuda-arch=${TORCH_CUDA_ARCH_LIST}"
  20. # NF3 hybrid overlay (Triton kernels + .pth hook)
  21. COPY overlay/hybrid_loader.py /usr/local/lib/python3.12/dist-packages/hybrid_loader.py
  22. COPY overlay/nf3_kernel.py /usr/local/lib/python3.12/dist-packages/nf3_kernel.py
  23. COPY overlay/nvfp4_kernel.py /usr/local/lib/python3.12/dist-packages/nvfp4_kernel.py
  24. COPY overlay/nf3_replan.py /usr/local/lib/python3.12/dist-packages/nf3_replan.py
  25. COPY overlay/mxfp8_tier.json /usr/local/lib/python3.12/dist-packages/mxfp8_tier.json
  26. RUN python3 -c "open('/usr/local/lib/python3.12/dist-packages/hybrid_loader.pth','w').write('import hybrid_loader\n')"
  27. # Verify imports (b12x + overlay only; torch/vllm/flashinfer from base)
  28. RUN python3 -c "import hybrid_loader; print('OK hybrid_loader'); import nf3_kernel; print('OK nf3_kernel'); import nvfp4_kernel; print('OK nvfp4_kernel'); import nf3_replan; print('OK nf3_replan'); import b12x; print('OK b12x')"
  29. ENTRYPOINT ["vllm", "serve"]