You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Found while measuring #1123, which needed a device memory budget and could not get one from this seam.
The false comment
include/vt/backend.h:78-83:
// Optional device free/total VRAM probe (bytes). Default false = unknown.// ROCm/CUDA override with hipMemGetInfo/cudaMemGetInfo so model code can// size LRU caches without including vendor headers (device-leakage).virtualboolDeviceMemoryInfo(size_t* /*free_bytes*/, size_t* /*total_bytes*/) const {
returnfalse;
}
Only ROCm overrides it (src/vt/rocm/rocm_backend.hip:338-345). CudaBackend does not, so on every CUDA device — not only a GB10 — DeviceMemoryInfo returns false. cudaMemGetInfo is called nowhere in the repository. The comment is corrected in prose by the #1123 change; the capability is this issue.
The consequence, which is not just a comment
Gemma4MoE is the seams only consumer. FreeBytes returns false when the probe is unavailable (src/vllm/model_executor/models/gemma4_moe.cpp:439-447), and MakeRoom refuses on unknown by design (:494-506, // Refuse device upload if free VRAM unknown). So on CUDA MakeRoomalways returns false and the whole device-expert LRU —kMaxSlots = 24, kHeadroom = 1.5 GiB` — never admits an expert. It falls back to host H2D on every expert, permanently, and nothing reports it.
That refusal-on-unknown is the RIGHT polarity for that call site (a hung hipMalloc is worse than a host fallback), so this is not a bug in gemma4_moe.cpp. It is a missing probe whose absence silently disables a landed capability.
Adding it would wake that LRU on CUDA, which is a behaviour change to another models residency policy with a measurement of its own to make. #1123 instead probes cudaMemGetInfoinCudaPlatform(which already includes<cuda_runtime.h>and already probes device attributes at registration) and carries the total onResidencyPolicy`, touching nothing Gemma4 reads.
What closing this looks like
CudaBackend::DeviceMemoryInfo via cudaMemGetInfo, mirroring rocm_backend.hip:338-345.
A measurement of Gemma4 MoE on CUDA with the LRU live: correctness first, then whether the device path is faster than the host H2D it replaces.
Measured for reference, on dgx:gpu0 (GB10) through libcudart.so.13, where nvidia-smi --query-gpu=memory.total,memory.free,memory.used answers [N/A], [N/A], [N/A]:
total equals /proc/meminfo MemTotal rounded to the physical 128 GB. So the probe is usable on a unified pool, which is the case the comment`s "size LRU caches" sentence was written for.
Found while measuring #1123, which needed a device memory budget and could not get one from this seam.
The false comment
include/vt/backend.h:78-83:Only ROCm overrides it (
src/vt/rocm/rocm_backend.hip:338-345).CudaBackenddoes not, so on every CUDA device — not only a GB10 —DeviceMemoryInforeturnsfalse.cudaMemGetInfois called nowhere in the repository. The comment is corrected in prose by the #1123 change; the capability is this issue.The consequence, which is not just a comment
Gemma4MoEis the seams only consumer.FreeBytesreturns false when the probe is unavailable (src/vllm/model_executor/models/gemma4_moe.cpp:439-447), andMakeRoomrefuses on unknown by design (:494-506,// Refuse device upload if free VRAM unknown). So on CUDAMakeRoomalways returns false and the whole device-expert LRU —kMaxSlots = 24,kHeadroom = 1.5 GiB` — never admits an expert. It falls back to host H2D on every expert, permanently, and nothing reports it.That refusal-on-unknown is the RIGHT polarity for that call site (a hung
hipMallocis worse than a host fallback), so this is not a bug ingemma4_moe.cpp. It is a missing probe whose absence silently disables a landed capability.Why #1123 did not add the override
Adding it would wake that LRU on CUDA, which is a behaviour change to another model
s residency policy with a measurement of its own to make. #1123 instead probescudaMemGetInfoinCudaPlatform(which already includes<cuda_runtime.h>and already probes device attributes at registration) and carries the total onResidencyPolicy`, touching nothing Gemma4 reads.What closing this looks like
CudaBackend::DeviceMemoryInfoviacudaMemGetInfo, mirroringrocm_backend.hip:338-345.## Owedinexpert-streaming.md.Measured for reference, on
dgx:gpu0(GB10) throughlibcudart.so.13, wherenvidia-smi --query-gpu=memory.total,memory.free,memory.usedanswers[N/A], [N/A], [N/A]:totalequals/proc/meminfo MemTotalrounded to the physical 128 GB. So the probe is usable on a unified pool, which is the case the comment`s "size LRU caches" sentence was written for.Owning row:
ENG-EXPERT-STREAM(## Owed).