@@ -403,6 +403,59 @@ Research items:
4034034 . Revisit native FP4 MoE only when SM120/SM12x correctness and performance
404404 issues are resolved upstream.
405405
406+ ## Testing Methodology
407+
408+ The local validation is not just "the server started." It combines vLLM-style
409+ benchmarking ideas with end-to-end agent workload checks.
410+
411+ Relevant vLLM methodology:
412+
413+ - unit tests for sharding/math invariants where the behavior is deterministic;
414+ - ` vllm bench serve ` for online server throughput/latency, including custom
415+ datasets and OpenAI-compatible request paths;
416+ - ` vllm bench throughput ` for offline throughput isolation;
417+ - ` vllm bench latency ` for lower-level latency measurements;
418+ - benchmark sweeps to compare serve parameters while keeping server settings
419+ controlled and resetting caches between runs;
420+ - SPEED-Bench-style speculative decoding measurement for acceptance rate,
421+ acceptance length, and throughput across prompt-length buckets;
422+ - production-oriented benchmarking with realistic request rate and concurrency,
423+ not only a single synthetic prompt.
424+
425+ For this hardware research, the most important follow-up benchmark shape is:
426+
427+ - no-MTP vs MTP vs DFlash/external drafter;
428+ - 10-20 warmed sequential requests at fixed 256/512 generated tokens;
429+ - concurrency 4 and 8 for aggregate throughput;
430+ - long-prefill smoke at 128K-150K;
431+ - separate text, vision, and agent-tool workloads;
432+ - record TTFT, TPOT/decode throughput, output throughput, acceptance rate, and
433+ peak/free GPU memory.
434+
435+ The local agent harness adds an end-to-end workload layer that plain vLLM
436+ benchmarks do not cover. It runs real agent CLIs (` qwen ` , ` codex ` , ` claude ` ,
437+ ` hermes ` , and optionally ` opencode ` ) inside containers configured to use only
438+ the local vLLM endpoint (` host.docker.internal:8902 ` ) with dummy API keys. The
439+ summary files record:
440+
441+ - whether container internet was available;
442+ - whether the local model endpoint was available;
443+ - whether each agent passed its task;
444+ - whether internet was used;
445+ - whether the local model was used.
446+
447+ The agent task is intentionally closer to a real coding-agent loop than a raw
448+ completion benchmark: the agent must interact with a workspace and complete a
449+ small edit/test-style task. This catches failures that a one-shot chat request
450+ does not reveal, including server disconnects, request-path incompatibilities,
451+ tool-call/rendering issues, long prompt handling, and memory instability under
452+ multiple independent clients.
453+
454+ These agent tests are not a replacement for upstream unit tests or vLLM
455+ benchmarks. They are a hardware/workload acceptance gate: a serving profile is
456+ not considered stable for this project unless it can survive both synthetic
457+ long-context tests and agent-style traffic.
458+
406459## Intercommunication Research Direction
407460
408461Current stable communication mode is PyNCCL:
@@ -527,6 +580,10 @@ Dense 27B:
527580 - 10-20 warmed sequential requests;
528581 - 256 and 512 generated tokens;
529582 - then concurrency 4 and 8.
530- 6 . Build and pin FlashInfer autotune caches separately from production startup.
531- 7 . Keep PyNCCL as the stable interconnect baseline until a measured custom path
583+ 6 . Add vLLM benchmark artifacts for the promoted profiles:
584+ - ` vllm bench serve ` or GuideLLM for online throughput/latency;
585+ - SPEED-Bench-style speculative decoding metrics for MTP/DFlash;
586+ - agent harness summaries for real coding-agent traffic.
587+ 7 . Build and pin FlashInfer autotune caches separately from production startup.
588+ 8 . Keep PyNCCL as the stable interconnect baseline until a measured custom path
532589 beats it without long-context instability.
0 commit comments