Workgroup Limiter for FPGA Kernel Resource Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Integrated circuits, particularly field-programmable gate arrays (FPGAs), face resource overuse and depletion due to the lack of efficient handling of workgroups and threads exchanging data, leading to potential system instability and resource exhaustion.

Innovation Solution

Implementing a workgroup limiter that tracks and limits the number of active workgroups and threads within a kernel, preventing resource overuse by generating a stall signal when the maximum threshold is reached, thus conserving memory and functional block area.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If workgroups and threads are allowed to enter the kernel without limits, then processing capability and throughput are improved, but resource overuse and depletion occur leading to system instability

Engineering Contradiction:
Improveprocessing capabilityVSAvoidsystem stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The workgroup limiter implements a feedback mechanism by tracking the number of active workgroups and threads entering the kernel. When the count approaches the maximum threshold, the limiter generates a stall signal to prevent further entry, thereby maintaining system stability while allowing high processing capability through controlled resource allocation.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system dynamically adjusts the effective resource allocation parameter by implementing a configurable maximum threshold for workgroup and thread entry. This parameter change enables the system to scale processing capability up to a safe limit while preventing resource exhaustion that would compromise system stability.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If the number of active workgroups is increased to improve processing throughput, then productivity increases, but onboard memory and functional block area are exceeded

Engineering Contradiction:
Improveprocessing throughputVSAvoidmemory and functional block area
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The workgroup limiter performs preliminary tracking and counting of workgroups and threads before they enter the kernel. By preparing and validating the entry conditions in advance, the system allows maximum processing throughput while preventing memory and functional block area exhaustion through preemptive resource management.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The workgroup limiter acts as an intermediary between the workgroup/thread entry requests and the kernel execution. It mediates the resource allocation by enforcing the maximum threshold, thereby enabling high processing throughput while protecting onboard memory and functional block area from being exceeded.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If workgroup tracking and limiting mechanisms are implemented, then resource management and system reliability are improved, but device complexity increases

Engineering Contradiction:
Improveresource managementVSAvoidworkgroup limiter structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The workgroup limiter is segmented into distinct functional components: a tracking mechanism to count active workgroups, a comparison mechanism to evaluate against the maximum threshold, and a stall signal generation mechanism. This segmentation simplifies the overall implementation while maintaining reliable resource management through modular design.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9135087B1Workgroup handling in pipelined circuits
Publication Date: 2015.09.15 ALTERA CORP
  • US9135087B1 patent drawing
  • US9135087B1 patent drawing
  • US9135087B1 patent drawing

AI summary

Systems and methods for limiting resource usage of a kernel of an integrated circuit are provided. For example, in one embodiment a method for limiting a number of workgroups that may simultaneously access a kernel of an integrated circuit (IC) includes determining a threshold number of workgroups that may access the kernel simultaneously. A thread of execution is received. The thread of execution is allowed to access the kernel when the threshold number of workgroups would not be exceeded by the thread of execution accessing the kernel.