Indirect Command Buffer Chaining via Dynamic Table

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional indirect command buffer chaining restricts flexibility and efficiency in utilizing GPU processing power, particularly in general-purpose computations, as it requires copying and additional memory usage for buffer reuse, limiting the ability to fully leverage increased GPU processing capabilities.

Innovation Solution

Implementing a chaining table data structure that allows processors to dynamically link and reuse command buffers without the need for explicit copying, enabling efficient processing and memory management by specifying addresses and processing orders within the table.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional indirect command buffer chaining is used, then command buffers can be processed in sequence, but flexibility and efficiency in utilizing GPU processing power are restricted due to required copying and additional memory usage

Engineering Contradiction:
ImproveGPU processing efficiencyVSAvoidmemory management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

A chaining table is introduced as an intermediary data structure between the CPU and GPU command buffers. The chaining table stores pointers to command buffers and enables the GPU to dynamically select and process buffers without requiring explicit copying operations. This mediator structure resolves the contradiction by simplifying memory management while enhancing processing efficiency through indirect addressing and dynamic buffer selection.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Quantity of substance

If command buffers are reused without copying, then memory overhead is reduced, but conventional chaining mechanisms require additional memory structures and CPU operations

Engineering Contradiction:
Improvememory usageVSAvoidbuffer management operations
Core Design Contradiction:
Quantity of substanceVSEase of operation

Solution Approach 1:

The patent eliminates the need for copying command buffers by implementing a reference-counted pointer system in the chaining table. Instead of copying buffer data, the system copies only the pointers and reference counts, which are much smaller data structures. This approach reduces memory usage significantly while maintaining ease of operation through automated buffer management handled by the chaining table infrastructure.

Inventive Principle:
Principle #26Copying

3Power

If multiple independent processing units are utilized in GPU, then processing power increases, but flexibility to handle diverse compute workloads is limited by conventional chaining restrictions

Engineering Contradiction:
ImproveGPU processing powerVSAvoidworkload flexibility
Core Design Contradiction:
PowerVSAdaptability or versatility

Solution Approach 1:

The chaining table implements dynamic buffer selection where the GPU can freely choose which command buffer to process next based on current workload requirements, rather than following a fixed sequential chain. This dynamic mechanism allows the system to adapt to diverse compute workloads by selecting appropriate buffers, thereby enhancing versatility while leveraging the increased processing power of multiple independent units.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS20220058767A1Indirect chaining of command buffers
Publication Date: 2022.02.24 ADVANCED MICRO DEVICES INC
  • US20220058767A1 patent drawing
  • US20220058767A1 patent drawing
  • US20220058767A1 patent drawing

AI summary

Systems, apparatuses, and methods for enabling indirect chaining of command buffers are disclosed. A system includes at least first and second processors and a memory. The first processor generates a plurality of command buffers and stores the plurality of command buffers in the memory. The first processor also generates and stores, in the memory, a table with entries specifying addresses of the plurality of command buffers and an order in which to process the command buffers. The first processor conveys an indirect buffer packet to the second processor, where the indirect buffer packet specifies a location and a size of the table in the memory. The second processor retrieves an initial entry from the table, processes a first command buffer at the address specified in the initial entry, and then returns to the table for the next entry upon completing processing of the first command buffer.