Sign inSign up

edwardfuchs/vllm

By edwardfuchs

•Updated 4 months ago

Image
0

267

edwardfuchs/vllm repository overview

Проверить:

  • Ядро Linux ≥ 5.16 — для поддержки AMX bash uname -r
  • Поддержку инструкций (должны увидеть avx512f, avx512_bf16, amx_bf16, amx_int8.)
 grep -o 'amx[a-z_]*\|avx512[a-z_]*' /proc/cpuinfo | sort -u

Для настройки docker-compsoe стоит проверить на каких ядрах мы можем запустить без разделения

lscpu | grep -E "NUMA|Thread"

⁠Пример

если сервер двухсокетный или включён SMT, нумерация ядер может идти вперемешку (например, 0–63 — физические ядра, 64–127 — их SMT-братья).

# Пример для сервера: 128 ядер, 1 ТБ RAM (ограничиваем до 500 ГБ)
services:
  vllm-9b:
    image: edwardfuchs/vllm:qwen3.5-9b-cpu
    container_name: vllm-qwen35-9b
    ports:
      - "8000:8000"
    environment:
      VLLM_CPU_KVCACHE_SPACE: "64"       # GiB под KV-кэш; при 500 ГБ можно и больше
      VLLM_CPU_OMP_THREADS_BIND: "auto"  # привязка OMP-потоков к ядрам
    command: ["--max-model-len", "32768"]
    # Топология сервера: 2 NUMA-ноды, SMT x2.
    #   node0: физ. ядра 0-31  (SMT-братья 64-95)
    #   node1: физ. ядра 32-63 (SMT-братья 96-127)
    # 9B прижат к физическим ядрам node0: без межсокетного трафика и без SMT
    # (SMT для инференса не помогает — упор в пропускную способность памяти).
    # Для роста throughput поднимите второй такой же сервис на "32-63" (node1).
    cpuset: "0-31"
    mem_limit: 500g
    shm_size: 16g
    restart: unless-stopped
    volumes:
      - vllm-cache-9b:/root/.cache/vllm  # кэш компиляции — быстрый рестарт

  vllm-08b:
    image: edwardfuchs/vllm:qwen3.5-0.8b-cpu
    container_name: vllm-qwen35-08b
    ports:
      - "8001:8000"
    environment:
      VLLM_CPU_KVCACHE_SPACE: "16"
      VLLM_CPU_OMP_THREADS_BIND: "auto"
    cpuset: "32-39"  # 8 физических ядер node1 — не пересекается с 9B на node0
    mem_limit: 40g
    shm_size: 4g
    restart: unless-stopped
    volumes:
      - vllm-cache-08b:/root/.cache/vllm

volumes:
  vllm-cache-9b:
  vllm-cache-08b:

⁠Пример 2

services:
  vllm-9b:
    image: edwardfuchs/vllm:qwen3.5-9b-cpu
    container_name: vllm-qwen35-9b
    ports:
      - "8000:8000"
    environment:
      VLLM_CPU_KVCACHE_SPACE: "64"            # на каждый TP-ранк
      VLLM_CPU_OMP_THREADS_BIND: "0-31|32-63" # ранк 0 → node0, ранк 1 → node1
    command: ["--max-model-len", "32768", "--tensor-parallel-size", "2"]
    cpuset: "0-63"     # все физические ядра, SMT по-прежнему не трогаем
    mem_limit: 500g
    shm_size: 32g      # TP общается через shared memory — даём запас
    restart: unless-stopped
    volumes:
      - vllm-cache-9b:/root/.cache/vllm

volumes:
  vllm-cache-9b:

Tag summary

Content type

Image

Digest

sha256:92efc8fac…

Size

15.7 GB

Last updated

4 months ago

docker pull edwardfuchs/vllm:qwen3.5-9b-cpu