Skip to content

[Issue]: WSL ROCDXG: dashboard ignores working WSL amd-smi (requires /dev/kfd; uses wrong binary path /dev/dxg) #276

Description

@ravikirm

Problem Description

On WSL2 with ROCDXG, GPU inference and WSL amd-smi telemetry work, but the rocm-cli dashboard shows no GPU data. rocm serve uses the GPU successfully, and the dashboard daemon connects — but all GPU telemetry is empty. The dashboard collector requires amd-smi + readable /dev/kfd, which WSL ROCDXG does not provide.

Image

Operating System

Windows WSL (Ubuntu 24.04.4)

CPU

AMD RYZEN AI MAX+ 395 w/ Radeon 8060S

GPU

AMD Radeon(TM) 8060S Graphics [ StrixHalo ] [gfx1151]

ROCm Version

7.13.0

ROCm Component

No response

Steps to Reproduce

Environment

  • Host: blr-apu-b30-03
  • OS: WSL2 Ubuntu 24.04.4 LTS (kernel 6.18.x-microsoft-standard-WSL2)
  • Hardware: AMD Ryzen AI Max+ 395 w/ Radeon 8060S (gfx1151)
  • ROCDXG: rocdxg-roct 1.2.1 + rocdxg-amd-smi-lib 1.2.1
  • rocm-cli: 0.1.0 (nightly channel)
  • Managed runtime: release-wheel-gfx1151-7-13-0 (TheRock 7.13.0)
  • Inference: rocm serve qwen → Lemonade llamacpp:rocm, device ROCm0 : AMD Radeon(TM) 8060S Graphics

Steps to reproduce

  1. Install ROCDXG + rocdxg-amd-smi-lib + rocm-cli in WSL; run rocm install sdk.
  2. Confirm GPU inference works: rocm serve qwen --foreground --verbose (ROCm0 in logs).
  3. Open dashboard: rocm → "Open full dashboard".
  4. Observe Home / Observe / left GPU panel / CONTEXT peak util.

Expected

  • GPU count ≥ 1, model name (Radeon 8060S), utilization, VRAM, temp, power
  • Node throughput shows GPU model (not "Unknown GPU")
  • Health shows GPU/Driver/ROCm checks
  • Peak util updates during inference

Actual

  • GPUs: 0 / no GPU telemetry
  • Node throughput: Unknown GPU
  • Health: unchecked (· GPU, · Driver, ROCm —)
  • Peak util stuck at 0.0%
  • Header warning badge: ⚠ 1

Note

amd-smi metric --json - works fine

Evidence

Device nodes

$ ls -l /dev/kfd /dev/dxg 2>/dev/null
crw-rw-rw- 1 root root 10, 258 Aug 19 03:04 /dev/dxg
# /dev/kfd does not exist
### amd-smi fails

$ $RT/lib/python3.12/site-packages/_rocm_sdk_devel/bin/amd-smi metric --json
ERROR:root:Drivers not loaded (amdgpu, amd_hsmp, ionic, rdma drivers not found in modules)

### rocm examine (works)
- detected_gfx_target: gfx1151
- driver_status: wsl_rocdxg_ready
- wsl_dxg_device: true, wsl_dxcore: true, wsl_librocdxg: true
## Suspected root cause
Dashboard daemon uses AmdSmiCollector::detect() which requires readable /dev/kfd. WSL ROCDXG exposes /dev/dxg instead. When detection fails, daemon emits warning: "amd-smi unavailable (no /dev/kfd or binary missing)".
## Suggested fix direction
- Detect WSL + ROCDXG and use an alternate telemetry path (or honest platform-limited state)
- Do not show "Unknown GPU" / 0% util when inference is confirmed working via rocm examine / serve state
- Surface explicit message: "GPU telemetry unavailable on WSL ROCDXG (no /dev/kfd)"
##Impact
Dashboard appears broken on a supported WSL platform where GPU serving works.(Severity - S1)

### (Optional for Linux users) Output of /opt/rocm/bin/rocminfo --support

gha-runner@blr-apu-b30-03:/mnt/c/Users/gha-runner$ $RT/lib/python3.12/site-packages/_rocm_sdk_devel/bin/rocminfo --support
WSL environment detected.
pid:14435 tid:0x750a661c8e80 [hsakmt_hsa_loader_init] dlopen libhsa-runtime64.so failed - libhsa-runtime64.so: cannot open shared object file: No such file or directory

HSA System Attributes
Runtime Version: 1.21
Runtime Ext Version: 1.21
System Timestamp Freq.: 1000.000000MHz
Sig. Max Wait Duration: 18446744073709551615 (0xFFFFFFFFFFFFFFFF) (timestamp count)
Machine Model: LARGE
System Endianness: LITTLE
Mwaitx: DISABLED
XNACK enabled: NO
DMAbuf Support: YES
VMM Support: YES

HSA Agents


Agent 1


Name: AMD RYZEN AI MAX+ 395 w/ Radeon 8060S
Uuid: CPU-XX
Marketing Name: AMD RYZEN AI MAX+ 395 w/ Radeon 8060S
Vendor Name: CPU
Feature: None specified
Profile: FULL_PROFILE
Float Round Mode: NEAR
Max Queue Number: 0(0x0)
Queue Min Size: 0(0x0)
Queue Max Size: 0(0x0)
Queue Type: MULTI
Node: 0
Device Type: CPU
Cache Info:
L1: 49152(0xc000) KB
Chip ID: 0(0x0)
Cacheline Size: 64(0x40)
BDFID: 0
Internal Node ID: 0
Compute Unit: 32
SIMDs per CU: 0
Shader Engines: 0
Shader Arrs. per Eng.: 0
Memory Properties:
Features: None
Pool Info:
Pool 1
Segment: GLOBAL; FLAGS: FINE GRAINED
Size: 63594148(0x3ca5ea4) KB
Allocatable: TRUE
Alloc Granule: 4KB
Alloc Recommended Granule:4KB
Alloc Alignment: 4KB
Accessible by all: TRUE
Pool 2
Segment: GLOBAL; FLAGS: EXTENDED FINE GRAINED
Size: 63594148(0x3ca5ea4) KB
Allocatable: TRUE
Alloc Granule: 4KB
Alloc Recommended Granule:4KB
Alloc Alignment: 4KB
Accessible by all: TRUE
Pool 3
Segment: GLOBAL; FLAGS: KERNARG, FINE GRAINED
Size: 63594148(0x3ca5ea4) KB
Allocatable: TRUE
Alloc Granule: 4KB
Alloc Recommended Granule:4KB
Alloc Alignment: 4KB
Accessible by all: TRUE
Pool 4
Segment: GLOBAL; FLAGS: COARSE GRAINED
Size: 63594148(0x3ca5ea4) KB
Allocatable: TRUE
Alloc Granule: 4KB
Alloc Recommended Granule:4KB
Alloc Alignment: 4KB
Accessible by all: TRUE
ISA Info:


Agent 2


Name: gfx1151
Uuid: GPU-ffffffffffffffff
Marketing Name: AMD Radeon(TM) 8060S Graphics
Vendor Name: AMD
Feature: KERNEL_DISPATCH
Profile: BASE_PROFILE
Float Round Mode: NEAR
Max Queue Number: 128(0x80)
Queue Min Size: 64(0x40)
Queue Max Size: 131072(0x20000)
Queue Type: MULTI
Node: 1
Device Type: GPU
Cache Info:
L1: 32(0x20) KB
L2: 2048(0x800) KB
L3: 32768(0x8000) KB
Chip ID: 5510(0x1586)
Cacheline Size: 64(0x40)
Max Clock Freq. (MHz): 2900
BDFID: 50176
Internal Node ID: 1
Compute Unit: 40
SIMDs per CU: 2
Shader Engines: 2
Shader Arrs. per Eng.: 2
Coherent Host Access: FALSE
Memory Properties:
Features: KERNEL_DISPATCH
Fast F16 Operation: TRUE
Wavefront Size: 32(0x20)
Workgroup Max Size: 1024(0x400)
Workgroup Max Size per Dimension:
x 1024(0x400)
y 1024(0x400)
z 1024(0x400)
Max Waves Per CU: 32(0x20)
Max Work-item Per CU: 1024(0x400)
Grid Max Size: 4294967295(0xffffffff)
Grid Max Size per Dimension:
x 4294967295(0xffffffff)
y 65535(0xffff)
z 65535(0xffff)
Max fbarriers/Workgrp: 32
Packet Processor uCode:: 34
SDMA engine uCode:: 18
IOMMU Support:: None
Pool Info:
Pool 1
Segment: GLOBAL; FLAGS: COARSE GRAINED
Size: 107736056(0x66bebf8) KB
Allocatable: TRUE
Alloc Granule: 4KB
Alloc Recommended Granule:2048KB
Alloc Alignment: 4KB
Accessible by all: FALSE
Pool 2
Segment: GLOBAL; FLAGS: EXTENDED FINE GRAINED
Size: 107736056(0x66bebf8) KB
Allocatable: TRUE
Alloc Granule: 4KB
Alloc Recommended Granule:2048KB
Alloc Alignment: 4KB
Accessible by all: FALSE
Pool 3
Segment: GROUP
Size: 64(0x40) KB
Allocatable: FALSE
Alloc Granule: 0KB
Alloc Recommended Granule:0KB
Alloc Alignment: 0KB
Accessible by all: FALSE
ISA Info:
ISA 1
Name: amdgcn-amd-amdhsa--gfx1151
Machine Models: HSA_MACHINE_MODEL_LARGE
Profiles: HSA_PROFILE_BASE
Default Rounding Mode: NEAR
Default Rounding Mode: NEAR
Fast f16: TRUE
Workgroup Max Size: 1024(0x400)
Workgroup Max Size per Dimension:
x 1024(0x400)
y 1024(0x400)
z 1024(0x400)
Grid Max Size: 4294967295(0xffffffff)
Grid Max Size per Dimension:
x 2147483647(0x7fffffff)
y 65535(0xffff)
z 65535(0xffff)
FBarrier Max Size: 32
ISA 2
Name: amdgcn-amd-amdhsa--gfx11-generic
Machine Models: HSA_MACHINE_MODEL_LARGE
Profiles: HSA_PROFILE_BASE
Default Rounding Mode: NEAR
Default Rounding Mode: NEAR
Fast f16: TRUE
Workgroup Max Size: 1024(0x400)
Workgroup Max Size per Dimension:
x 1024(0x400)
y 1024(0x400)
z 1024(0x400)
Grid Max Size: 4294967295(0xffffffff)
Grid Max Size per Dimension:
x 2147483647(0x7fffffff)
y 65535(0xffff)
z 65535(0xffff)
FBarrier Max Size: 32
*** Done ***
gha-runner@blr-apu-b30-03:/mnt/c/Users/gha-runner$


### Additional Information

_No response_

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions