Cooperative Thread Array Context Switch During Trap Handling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In parallel processing systems, context switches triggered by a trap in one thread unnecessarily consume resources and slow down other threads, as existing trap handling routines affect all executing threads simultaneously.

Innovation Solution

A method is introduced where a data structure is updated to indicate a trap occurrence, allowing threads to execute a trap handling routine with a context switch for the affected thread while enabling other threads to exit the routine before the context switch, thereby minimizing resource consumption and maintaining efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a context switch is performed for all executing threads when a trap occurs in one thread, then the trap handling is complete and consistent, but resource consumption increases and execution speed decreases for non-trapping threads

Engineering Contradiction:
Improvetrap handling consistencyVSAvoidthread execution speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the trap handling process into two distinct phases: (1) a common handling phase that can be executed by all threads including the trapping thread, and (2) a context switch phase that is isolated to only the trapping thread. This segmentation allows non-trapping threads to exit early after completing the common handling phase, avoiding the performance penalty of unnecessary context switches while still maintaining consistent trap handling across all threads.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts the context switch operation from the common trap handling routine and isolates it to be performed only by the trapping thread. By taking out the context switch from the shared routine and placing it in a thread-specific execution path, non-trapping threads can complete their trap handling without undergoing the expensive context switch operation, thus resolving the contradiction between handling consistency and execution speed.

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If a context switch is performed for all executing threads when a trap occurs in one thread, then the trap is handled properly, but computer resources are consumed unnecessarily by non-trapping threads

Engineering Contradiction:
Improvetrap handling completenessVSAvoidresource consumption
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The trap handling routine is segmented into a resource-light common handling portion and a resource-intensive context switch portion. Non-trapping threads execute only the common handling portion and exit early, avoiding the resource consumption of the context switch. This segmentation ensures complete and consistent trap handling while minimizing resource usage by threads that did not cause the trap.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Non-trapping threads perform a partial version of the trap handling routine - they execute the common handling phase but skip the full context switch operation. This partial action is sufficient to maintain trap handling consistency and resource management, while avoiding the excessive resource consumption that would result from forcing all threads to complete the entire trap handling routine including the context switch.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10289418B2Cooperative thread array granularity context switch during trap handling
Publication Date: 2019.05.14 NVIDIA CORP
  • US10289418B2 patent drawing
  • US10289418B2 patent drawing
  • US10289418B2 patent drawing

AI summary

Techniques are provided for handling a trap encountered in a thread that is part of a thread array that is being executed in a plurality of execution units. In these techniques, a data structure with an identifier associated with the thread is updated to indicate that the trap occurred during the execution of the thread array. Also in these techniques, the execution units execute a trap handling routine that includes a context switch. The execution units perform this context switch for at least one of the execution units as part of the trap handling routine while allowing the remaining execution units to exit the trap handling routine before the context switch. One advantage of the disclosed techniques is that the trap handling routine operates efficiently in parallel processors.