XRT icon indicating copy to clipboard operation
XRT copied to clipboard

VITIS-11100 Display all AIE columns

Open dbenusov opened this issue 11 months ago • 1 comments

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

dbenusov avatar Mar 15 '24 20:03 dbenusov