* vllm_omni/edge/hardware_probe.py: HardwareProfile from /proc, /sys and torch (ISA flags incl. AVX-512/AMX and NEON/dotprod/i8mm/SVE, physical cores, big.LITTLE clusters, NUMA, RAM, CUDA discrete vs Tegra unified memory, NPU via override), hardware classes jetson / cuda_discrete / arm64_cpu / x86_cpu / npu_phone; VLLM_OMNI_HW_PROFILE=<json> overrides the probe (emulation, tests). * vllm_omni/edge/adapt.py: derive_overrides -> dtype, absolute KV budgets from available memory minus weights, max_num_seqs, per-stage disjoint CPU thread ranges on the big cluster, eager/graph switches for small or unified memory, adaptive-chunk parameters, timeouts from a load cost model. * vllm_omni/edge/calibrate.py: chunk-schedule calibration from measured chunk arrivals with a per-hardware-fingerprint cache under VLLM_CACHE_ROOT. * vllm_omni/edge/auto_profile.py + deploy_profile="auto": edge/<model>.yaml -> edge/hardware/<class>.yaml -> derived overrides -> cached calibration, materialized as a temp deploy YAML (platform overlays are superseded). * benchmarks/tts/hw_emulation.py: emulated classes (ATEN_CPU_CAPABILITY, taskset, profile overrides) driving stream_latency_bench with auto profiles. * CPU-only tests for probe snapshots, derivation rules, calibration and auto. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
23 lines
1.2 KiB
Markdown
23 lines
1.2 KiB
Markdown
# Hardware-class overlays for `deploy_profile="auto"`
|
|
|
|
When a deploy profile is `auto`, vLLM-Omni probes the host
|
|
(`vllm_omni/edge/hardware_probe.py`), maps it to one of the classes below, and
|
|
materializes a deploy YAML as: `edge/<model_type>.yaml` (or the model default)
|
|
→ overlay `edge/hardware/<class>.yaml` (this directory; same `stages:` /
|
|
`connectors:` shape as a deploy file, merged per stage id) → derived overrides
|
|
from `vllm_omni/edge/adapt.py` (dtype, KV budgets, thread binding, eager
|
|
switches, adaptive chunking, timeouts) → cached calibration
|
|
(`vllm_omni/edge/calibrate.py`) if one exists for this hardware fingerprint.
|
|
|
|
Class files are optional; add one to pin values that the derivation should not
|
|
touch for that class. Emulate a class on any host with
|
|
`VLLM_OMNI_HW_PROFILE=<json>` (see `benchmarks/tts/hw_emulation.py`).
|
|
|
|
| class | selected when |
|
|
|---|---|
|
|
| `jetson` | CUDA on unified memory (Tegra release file present) |
|
|
| `cuda_discrete` | CUDA device with its own memory |
|
|
| `arm64_cpu` | aarch64, no accelerator |
|
|
| `x86_cpu` | x86_64, no accelerator |
|
|
| `npu_phone` | `accelerator: npu:<vendor>` (only via profile override; vLLM-Omni does not run on the NPU itself) |
|