Workgroup Batch Circuitry for Single-Cycle Coordinate Determination

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processing units (GPUs) face challenges in efficiently dispatching compute workgroups across multiple dimensions to maximize performance, as existing methods often require multiple cycles to determine coordinates for the next batch of workgroups, limiting the number of workgroups that can be processed per cycle.

Innovation Solution

The implementation of circuitry that determines coordinates for the next batch of workgroups in multiple dimensions, such as x, y, and z, in a single cycle, using increment circuit blocks and multiplexers to select appropriate increment amounts and rollover values, allowing for parallel determination of coordinates and efficient dispatching of batches with multiple workgroups across dimensions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If existing methods are used to determine coordinates for the next batch of workgroups, then the implementation is simpler, but multiple cycles are required to determine coordinates, reducing the number of workgroups processed per cycle

Engineering Contradiction:
Improvenumber of workgroups processed per cycleVSAvoidcycles required to determine coordinates
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent pre-calculates and stores increment amounts and rollover values for all possible coordinate values in lookup tables before execution. During runtime, the circuitry simply retrieves these pre-computed values based on current coordinates, eliminating the need for complex real-time calculations and enabling single-cycle coordinate determination for the next batch of workgroups.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent divides the coordinate determination process into separate dimension handling (x, y, z dimensions processed independently via separate increment circuit blocks). Each dimension's coordinate determination is segmented and can proceed in parallel, allowing the system to determine coordinates for multiple dimensions simultaneously within a single cycle.

Inventive Principle:
Principle #1Segmentation

2Productivity

If parallel determination of coordinates in multiple dimensions is implemented, then more workgroups can be dispatched per cycle, but the device complexity increases

Engineering Contradiction:
Improveworkgroups dispatched per cycleVSAvoidcircuitry structure for coordinate determination
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent uses identical increment circuit blocks for each dimension (x, y, z), where each block is a copy of the same hardware structure. This modular copying approach allows parallel processing across dimensions while reusing the same circuit design, thereby managing complexity through replication rather than creating entirely unique circuitry for each dimension.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The increment circuit blocks and multiplexers are designed to be universal across all dimensions, handling x, y, and z coordinates with the same hardware structures. This multi-functional design reduces overall complexity compared to having separate dedicated circuits for each dimension, as the same components serve multiple purposes across different spatial dimensions.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10467724B1Fast determination of workgroup batches from multi-dimensional kernels
Publication Date: 2019.11.05 APPLE INC
  • US10467724B1 patent drawing
  • US10467724B1 patent drawing
  • US10467724B1 patent drawing

AI summary

Techniques are disclosed relating to dispatching compute work from a compute stream. In some embodiments, workgroup batch circuitry is configured to select (e.g., in a single clock cycle) multiple workgroups to be distributed to different shader circuitry. In some embodiments, iterator circuitry is configured to determine next positions in different dimensions at least partially in parallel. For example, in some embodiments, first circuitry is configured to determine a next position in a first dimension and an increment amount for a second dimension. In some embodiments, second circuitry is configured to determine at least partially in parallel with the determination of the next position in the first dimension, next positions in the second dimension for multiple possible increment amounts in the second dimension. In some embodiments, this may facilitate a configurable number of workgroups per batch and may increase performance, e.g., by increasing the overall number of workgroups dispatched per clock cycle.