Skip to content
This repository has been archived by the owner on Dec 24, 2024. It is now read-only.

[NO MERGE] AIE #9

Closed
wants to merge 15 commits into from
Closed

[NO MERGE] AIE #9

wants to merge 15 commits into from

Conversation

makslevental
Copy link
Collaborator

No description provided.

atgutier and others added 15 commits August 28, 2024 11:38
This change adds the initial classes for the AIE agent and AIE AQL
queue.

An AIE agent list is added to the core runtime object.

Change-Id: I84b02f52171b80726dfb2c8431582a3ea2986eb3
Change-Id: I319b55d89dc644e7151228cb6c19d1a633171295
Adds the initial KFD driver interface and use it to open the
KFD from amd_topology.cpp.

This change is to show the direction of the Driver interface for
initially supporting the KFD and to get feedback on the approach.
For now we wrap relevant ROCt calls behind this generic driver
interface so that we can generalize core ROCr components like
MemoryRegion, Runtime, etc.

Now that ROCt is incorporated into ROCr, we can more fully integrate
ROCt into the Driver interface. Ideally, we get to a point where
the generic Driver interface can support KFD, XDNA, and potential
future drivers.

Change-Id: I4573fd6af1f8398233ee9d3814d9f3139dd0279c
Remove KFD-specific Allocate/Free calls from the AMD::MemoryRegion.
The KFD-driver-specific Allocate/Free calls are now implemented in
the KfdDriver. Future changes will migrate the remaining KFD-specific
calls out of AMD::MemoryRegion.

This allows the MemoryRegion to be used across AMD drivers like the
XDNA driver.

Change-Id: Ib6a2a9e5e1a15e61644d2592beb3a8e6578c3010
Adds support for initialzing the XDNA driver so that
a hardware context can be created for an AIE queue.

Right now this initializes the device heap in the driver,
gets the relevant tile parameters for the AIE agent,
and creates a hardware context that backs the AIE queue.

Change-Id: Ib90e1bc67a8637f6db3ff2bebe34677843796417
Adds support for the packet interface for interacting with
the Embedded Runtime (ERT) on AIE agents. The ERT is what
interprets command packets send to the AIE agent work
queues.

Change-Id: Id28fb98056b2c046354c446bdc9568d74385bea1
Change-Id: If180bdbcb3eb659f0d05a710526864494316d7a9
Change-Id: I799a8223d695ec5c0ea2eaea012bc1b5d877e103
This adds an AMD extension API for configuring a queue's
hardware context. For AIEs the embedded runtime (ERT)
creates a hardware context for a queue that has various
configurable parameters, notably CUs can be configured.

This API could also be used for future GPU HW context
configuration (e.g., it could be used as a general way
to set the CU masks).

Change-Id: I7d1ce36d7ad6830f1b0c867bb2646e6e09cf4845
Adds support for AllocateMemoryOnly inside XDNA driver.

Move the IsLocalMemory() check inside the KFD driver
since the XDNA driver can, and needs to, create handles
on system memory buffer objects.

Changed handle variable name from thunk_handle to user_mode_driver_handle,
which is more representative if we support non-GPU drivers.

Change-Id: I95db9d575afd1ab0ff2de74cea5175d9a12a721b
Storing the correct dev heap size in the memory region.

Change-Id: I14b053330c187da1d7d0213256625e50795b9902
* Add missing info cases to AIEAgent

* Following the single value set from GPUAgent

* AIEs have no caches, no cacheline is reported
* Adding a sideband interface to get a handle from a virtual address. This is just temporary and should be removed when we move to the vmem API

* Removing unused queue structure

* Removing the queue from the arguments of hsa_amd_get_handle_from_vaddr

* Free XDNA BOs

---------

Co-authored-by: Yiannis Papadopoulos <[email protected]>
@makslevental makslevental changed the title [NO MERGE] [NO MERGE] AIE Aug 30, 2024
@makslevental makslevental changed the base branch from amd-staging to makslevental/aie-tests August 30, 2024 22:19
@makslevental makslevental changed the base branch from makslevental/aie-tests to amd-staging August 30, 2024 22:20
@makslevental makslevental changed the base branch from amd-staging to makslevental/aie-tests August 30, 2024 22:21
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants