XRT
XRT copied to clipboard
VITIS-11100 Display all AIE columns
Problem solved by the commit
The AIE report does not currently display any information for inactive columns which is very confusing. Additionally, the output JSON is very confusing.
Bug / issue (if any) fixed, which PR introduced the bug, how it was discovered
Not a bug, this change improves the functionality of existing code.
How problem was solved, alternative solutions (if any) and why they were rejected
- Refactor how the AIE2 data is parsed in user space.
- Separate AIE and AIE2 reports. (This includes aie, aiemem, and aieshim)
- Change AIE2 json to output result of AIE2 parser instead AIE json.
- Refactor current AIE report to serve as a dispatcher to the AIE2 report.
- Inactive columns are now displayed, albeit with a inactive status.
- Hide very large items behind
--verbose
(locks and channels for AIE core, locks for AIE mem and for AIE shim)
Risks (if any) associated the changes in the commit
None.
What has been tested and how, request additional testing if necessary
Linux NPU
dbenusov@xlix-birman-29:/proj/rdi/staff/dbenusov/amd-aie-new$ xbutil examine -d -r aiemem -o test.json --force
1187: Created KMQ pcidev
334817: Device opened, fd=3
355001: Allocated KMQ BO for: userptr=0x7f11e0000000, size=50331648, flags=0x0
359750: Created KMQ device (0000:c3:00.1) ...
------------------------------------------------------------
EARLY ACCESS
This release of xbutil contains early access
experimental features which may have bugs.
------------------------------------------------------------
------------------------------
[0000:c3:00.1] : RyzenAI-npu1
------------------------------
AIE Mem Tiles
Column 0
Status: inactive
Column 1
Status: active
Tiles
Row 1
DMA MM2S Channels:
Status Queue Size Queue Status Current BD
----------------------------------------------
Idle 0 okay 0
Idle 0 okay 0
Idle 0 okay 0
Idle 0 okay 0
Idle 0 okay 0
Idle 0 okay 0
DMA S2MM Channels:
Status Queue Size Queue Status Current BD
----------------------------------------------
Idle 0 okay 0
Idle 0 okay 0
Idle 0 okay 0
Idle 0 okay 0
Idle 0 okay 0
Idle 0 okay 0
Column 2
Status: active
Tiles
Row 1
DMA MM2S Channels:
Status Queue Size Queue Status Current BD
----------------------------------------------
Idle 0 okay 0
Idle 0 okay 0
Idle 0 okay 0
Idle 0 okay 0
Idle 0 okay 0
Idle 0 okay 0
DMA S2MM Channels:
Status Queue Size Queue Status Current BD
----------------------------------------------
Idle 0 okay 0
Idle 0 okay 0
Idle 0 okay 0
Idle 0 okay 0
Idle 0 okay 0
Idle 0 okay 0
Column 3
Status: active
Tiles
Row 1
DMA MM2S Channels:
Status Queue Size Queue Status Current BD
----------------------------------------------
Idle 0 okay 0
Idle 0 okay 0
Idle 0 okay 0
Idle 0 okay 0
Idle 0 okay 0
Idle 0 okay 0
DMA S2MM Channels:
Status Queue Size Queue Status Current BD
----------------------------------------------
Idle 0 okay 0
Idle 0 okay 0
Idle 0 okay 0
Idle 0 okay 0
Idle 0 okay 0
Idle 0 okay 0
Column 4
Status: inactive
Snippet of JSON
{
"schema_version": {
"schema": "JSON",
"creation_date": "Fri Mar 15 18:40:59 2024 GMT"
},
"devices": [
{
"interface_type": "pcie",
"device_id": "0000:c3:00.1",
"device_status": "UNKNOWN",
"aie_mem": {
"columns": [
{
"col": "0",
"status": "inactive"
},
...
{
"col": "3",
"status": "active",
"tiles": [
{
"dma": {
"mm2s_channels": [
{
"status": "Idle",
"queue_size": "0",
"queue_status": "okay",
"current_bd": "0"
},
{
"status": "Idle",
"queue_size": "0",
"queue_status": "okay",
"current_bd": "0"
},
{
"status": "Idle",
"queue_size": "0",
"queue_status": "okay",
"current_bd": "0"
},
{
"status": "Idle",
"queue_size": "0",
"queue_status": "okay",
"current_bd": "0"
},
{
"status": "Idle",
"queue_size": "0",
"queue_status": "okay",
"current_bd": "0"
},
{
"status": "Idle",
"queue_size": "0",
"queue_status": "okay",
"current_bd": "0"
}
],
"s2mm_channels": [
{
"status": "Idle",
"queue_size": "0",
"queue_status": "okay",
"current_bd": "0"
},
{
"status": "Idle",
"queue_size": "0",
"queue_status": "okay",
"current_bd": "0"
},
{
"status": "Idle",
"queue_size": "0",
"queue_status": "okay",
"current_bd": "0"
},
{
"status": "Idle",
"queue_size": "0",
"queue_status": "okay",
"current_bd": "0"
},
{
"status": "Idle",
"queue_size": "0",
"queue_status": "okay",
"current_bd": "0"
},
{
"status": "Idle",
"queue_size": "0",
"queue_status": "okay",
"current_bd": "0"
}
]
},
"locks": [
{
"id": "0",
"events": "0"
},
...
{
"id": "63",
"events": "0"
}
],
"row": "1"
}
]
},
{
"col": "4",
"status": "inactive"
}
]
}
}
]
}
Documentation impact (if any)
None