fix admission error if there was another device plugin installed - #18
fix admission error if there was another device plugin installed#18fishman wants to merge 5 commits into
Conversation
The fork scheduler writes hami.io/amd-devices-allocated keyed by
AMDGPU-<i> with Usedcores=0, but the plugin reads
hami.io/amd-devices-to-allocate, so Allocate failed before returning.
When the annotation is unavailable, fall back to kubelet's own device
ids, resolving split ids ("<bdf>#<slot>") through the topology BDF map.
Whole-GPU allocations (Usedcores=0) mask every CU (HSA_CU_MASK
0:0-255) and keep the LD_AUDIT hook; CU occupancy persistence and the
node lock check apply only to sliced (cores>0) allocations.
Verified: vllm-amd (Qwen2.5-0.5B) and example/vllm-serve (mistral-7b)
admit and serve inference on the MI355X node.
Signed-off-by: Reza Jelveh <fishmangit@dynamia.ai>
GetPreferredAllocation can receive device ids that are not in the policy's device map (another plugin's registration on the same node). The previous code appended nil entries and panicked in the sort comparator, killing the plugin process and leaving kubelet with no healthy devices. Skip unknown ids instead. Signed-off-by: Reza Jelveh <fishmangit@dynamia.ai>
Pairing it with privileged is rejected by apply. Signed-off-by: Reza Jelveh <fishmangit@dynamia.ai>
rocm6.2_mi300 (gfx942) has no gfx950 support: torch reports "No HIP GPUs are available" at startup. Use the rocm7.13 gfx950 build that serves on the MI355X. Signed-off-by: Reza Jelveh <fishmangit@dynamia.ai>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: fishman The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Skipping unknown ids prevents the panic, but a silent fix hides the cause: another device plugin running on the same node merged its devices into kubelet's list. Log a warning naming the likely cause and the remedy (disable the other plugin, restart this one). Signed-off-by: Reza Jelveh <fishmangit@dynamia.ai>
@fishman I wonder why this is a problem, usually the scheduler will pick the device by annotation and the device plugin will not rely on kubelet device ids. |
securityContext