AI Engine configuration can be accomplished through two methods: using programmable device image (PDI) or by directly employing the AI Engine driver APIs. Opting for direct API calls offers more extensive control during runtime, allowing for fine-grained adjustments. This approach also streamlines resource management during runtime. However, it necessitates careful access control to privileged AI Engine registers, including AI Engine NPI registers, AI Engine interface tiles reset registers, and interrupt configuration registers. Access control mechanisms need to be implemented across different layers of the software stack, spanning from unsecure to secure environments.
On the other hand, the PDI configuration method allows the AI Engine configuration either during boot time or through a processing system (PS) application at runtime. It provides the flexibility to use AI Engine with or without PS control applications and supports signed and encrypted AI Engine configurations. In contrast, the PDI configuration method offers the capability to configure the AI Engine either during boot time or via a processing system (PS) application at runtime. This approach provides the flexibility to use the AI Engine with or without PS control applications and supports signed and encrypted AI Engine configurations. AMD system software stack supports the use of the PDI flow for the AI Engine configuration. While the direct AI Engine driver calls offer greater flexibility and faster updates, they are generally employed for verification purposes.
In the case of the PDI flow, because the configuration is not handled by the AI Engine driver, the driver remains unaware of the specific configuration details. To ensure that the application aligns with the AI Engine's configuration, two essential pieces of information are required: the AI Engine partition node ID, which identifies the AI Engine partition within the system, and the image UID, which identifies the loaded configuration within the partition. When requesting a configured AI Engine partition, the application must provide the image UID and AI Engine partition node ID to enable the AI Engine driver to perform the necessary verification.
The following diagram illustrates a high-level view of the AI Engine array and its configuration interface, including the registers connecting to the PS and the platform management controller (PMC) through the network-on-chip (NoC).