Skip to content
View hyunnnchoi's full-sized avatar
  • Korea University
  • Seoul, South Korea

Highlights

  • Pro

Block or report hyunnnchoi

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
hyunnnchoi/README.md

Hi there πŸ‘‹

vllm-project/vllm-metal

Found and fixed silent KV-cache under-reporting for MLA and YOCO layouts β€” up to ~half the allocated GPU pool was unreachable, merged into v0.3.0.dev.
`get_kv_cache_spec` advertised a KV layout vllm-metal never allocated. For MLA it emitted a plain `FullAttentionSpec` with a hardcoded 2Γ— K/V page size, even though MLA caches a single latent tensor per layer β€” so vLLM planned against exactly half the pool. For YOCO it emitted a spec for every layer, even though only the leading layers own a cache. The remaining Metal buffers sat allocated and unreachable β€” the exact mirror of the over-subscription guard I added in #527.
Fixed by describing the layout that was actually allocated (`MLAAttentionSpec` for MLA; specs only for owning layers for YOCO), leaving the physically-correct byte budget untouched. Validated on real weights : capacity round-tripped 0.500 β†’ 1.000 (MLA) and 0.4286 β†’ 1.000 (YOCO), with max concurrency at 4,096 tokens roughly doubling β€” 75Γ— β†’ 150Γ— and 123Γ— β†’ 287Γ— β€” outputs bit-identical before and after.
Found and fixed a silent out-of-bounds GPU write in vLLM's Apple Silicon backend β€” merged into v0.3.0.dev.

--num-gpu-blocks-override was honored by the vLLM scheduler but never reached vllm-metal's paged KV allocator, so an override above the profiled capacity let the engine address blocks that were never allocated on the Metal side.

The result was a silent out-of-bounds GPU write β€” the server started and reported healthy while the scheduler oversubscribed the pool. Added fail-fast validation that rejects any engine KV config larger than the allocated pool.

My first contribution to the project.

vllm-project/vllm-omni

Found and fixed an AR-Diffusion KV pool leak that permanently bricks the DreamZero OpenPI server after a few sessions β€” fix under review.
Every new `session_id` took AR-Diffusion KV pool blocks that were never released, so four runs of the shipped OpenPI example were enough to exhaust the pool β€” after which every request failed to allocate, permanently. The process stayed up and `/health` kept returning 200, so a liveness probe never noticed.
A session's blocks are freed only by eviction, and the sole eviction trigger was the `MAX_DREAMZERO_SESSIONS = 64` count cap β€” chosen independently of pool capacity. The pool floor is one session's window (24 blocks at ~721 MB each on this config), so hitting 64 sessions would need roughly 277 GB of KV pool: the cap is unreachable, and raising `gpu_memory_fraction` only delays the failure.
Fixed by evicting LRU sessions on pool capacity as well as count, so the bound the cap was meant to provide actually holds. Validated on `GEAR-Dreams/DreamZero-DROID`, 1Γ—GB10 (DGX Spark) : 8 consecutive runs of the shipped example clean where run 4 previously died β€” pool exhaustions 14 β†’ 0, free blocks returning to full every session, action outputs identical to a pre-fix run. Added a regression test that drives session-id churn with the shipped cap unchanged.

lmcache/lmcache

Found and reported a race-condition crash in LMCache's local disk backend.

Under heavy cache eviction, read_file removed a missing key from the index on FileNotFoundError, but the caller then accessed that same key without checking β€” a KeyError that took down the whole engine.

Diagnosed the root cause, reported it with the failing code path, and verified the maintainer's fix on A100Γ—4 over a multi-hour repro.

Issue #5295 PR #5296 PR #529 PR #527 Issue #2420

Pinned Loading

  1. vllm-project/vllm vllm-project/vllm Public

    A high-throughput and memory-efficient inference and serving engine for LLMs

    Python 87k 19.8k

  2. LMCache/LMCache LMCache/LMCache Public

    LMCache: Supercharge Your LLM with the Fastest KV Cache Layer

    Python 10.9k 1.6k

  3. ml-explore/mlx-lm ml-explore/mlx-lm Public

    Run LLMs with MLX

    Python 6.4k 886

  4. vllm-project/vllm-metal vllm-project/vllm-metal Public

    Community maintained hardware plugin for vLLM on Apple Silicon

    Python 1.5k 195

  5. solarized solarized Public

    Forked from altercation/solarized

    precision color scheme for multiple applications (terminal, vim, etc.) with both dark/light modes

    Vim Script

  6. vllm-project/vllm-omni vllm-project/vllm-omni Public

    A framework for efficient model inference with omni-modality models

    Python 5.7k 1.3k